Skip to content

Instantly share code, notes, and snippets.

@mmanske3D
Last active March 18, 2022 16:41
Show Gist options
  • Save mmanske3D/0774dac4329b61085fe2033cf1b2bb29 to your computer and use it in GitHub Desktop.
Save mmanske3D/0774dac4329b61085fe2033cf1b2bb29 to your computer and use it in GitHub Desktop.
Divergent 3D Data Engineer Coding Exercise

Instructions

For this exercise, any code samples should be written in SQL. The candidate can assume that there is already a database setup with the appropriate connections, etc. We’re simply asking for the schema definitions and some SQL queries.

If you have any questions or clarification about the prompt, please make your best educated guess about what the business case might be asking for and make note of those assumptions. The exercise is intended to be open to interpritation, so there is no one correct solution to strive for. Follow-up conversations around your decisions & assumptions will be more valuable than the code itself, so feel free to be describe your thoughts as you're going along.

Prompt

Company X runs a factory producing customizable widgets. There are four variations of widgets that can be ordered. Each widget, regardless of variation, must go through the same three processing steps. Each processing step is done by hand by a variety of operators on the factory floor. For the purposes of this exercise, you can assume that widgets are produced upon order received (ie. no batching or prioritization)

The company wants to build an application that can track the real-time status of the factory floor, as well as track incoming orders and completed widget inventory.

  1. Design a database schema to support the models described above.

  2. Using the schema above, write a query that could detect any anomalies in the processing time for a given step. Anomalies can be defined as anything in the 0.95 quantile.

  3. A company director wants to optimize production time by batching and/or prioritizing orders based on variation. Describe some metrics you might be able to derive from the data to help inform that decision. Describe any schema changes that might be necessary to support this change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment