Created
May 13, 2022 17:50
-
-
Save Hornswoggles/1d12a4782ac0ffc25610d742d6b6fc79 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Instructions | |
During the interview you will open your favorite editor and share your screen. Start by creating a git repository where the initial commit is blank. Commit your work as you go and include a message in each commit. You may search the internet for documentation and use small code snippets off the internet to perform discrete tasks but the implementation as a whole should be your own. You are not expected to complete the application in 30 minutes. This challenge is meant to spark conversation, so you should come prepared to answer questions about how you would approach each task. | |
Problem Statement | |
As a part of a contrived data pipeline we ingest contact information from a third party in CSV format as a file or datastream. We'd like to ingest this data into a basic SQL datastore. Construct the application as if we were going to expand upon its functionality in the future. Think of it as an application and not just a one off script. | |
Input | |
See gist (CSV of contacts) | |
Must | |
Ingest the input into a SQLite database. | |
Structure your code to support multiple data streams (filename, stdin, http) | |
You are only expected to implement ingestion from a file | |
Structure your code to support multiple backends (sql or key/value store) | |
You are only expected to implement the sqlite backend | |
Should | |
Consider all input as untrusted | |
Add at least one unit test | |
Add inline comments and docstrings | |
Consider how the code is organized in the repository | |
Nice To Haves | |
Configure a logger | |
Provide a simple command line interface with at least one command line configuration parameter | |
A Dockerfile to run the code within an container | |
A readme to explain how to run the code | |
Bonus | |
One integration test | |
Run as an http server |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment