Skip to content

singlestone/data_python_exercise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SingleStone Python Data Exercises

These exercises are designed to show us how you approach writing software that will be used and maintained by others. They are to be written in Python, but aren't intended to demonstrate a deep knowledge of that language or any particular tooling.

General Instructions

When completing an exercise, please focus on the following:

  • Write code for other people. What will happen when (not if) you rotate off this project and someone else has to maintain your code?
  • Make the code easy to deploy anywhere. Assume the person grading this has no more than 5 minutes to get your code running.
  • Embrace constraints, but assume they are not static. Use design patterns that make your code easy to change.

In particular, we would like to see:

  1. A README that explains to a non-programmer what the software does and how to use it. (It's OK to assume they will install Docker locally and run the app from the command line.)
  2. Strong, consistent coding style.
  3. A modular architecture.
  4. Well-named classes, modules, methods, and variables.
  5. Complete docstrings that contain enough information for a user to call the code.
  6. A __main__.py file that follows Python conventions.
  7. Unit and integration tests that convey intent.
  8. Containerization of your app using Docker.
  9. Use of appropriate off-the-shelf libraries for the tasks at hand.
  10. NO notebooks.

Suggested Strategy

  • The exercises aren't intended to be difficult, and you shouldn't spend more than 10 hours.
  • Start with a complete but minimal implementation (e.g., a walking skeleton), and fill in the details. Focus on the non-trivial parts first.
  • You'll do better if you submit an incomplete solution that touches on each of these guidelines than if you submit working code that doesn't.
  • One good docstring or unit test is better than complete coverage with perfunctory ones.

Role-specific Exercises

This repository has two separate exercises depending on the role:

  1. Data Engineer
  2. Data Tech lead

Your recruiter should have told you which one to complete. If you are unsure about anything, please ask!

Good luck!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published