Note: Don’t feel constrained by the time limits.
Consider the following scenario:
You have 2 scheduled roasts of Hayes Valley Espresso totaling 50lbs. (For simplicity, assume that all batches are maximum of 30lbs for physical reasons).
Roast A, 20lbs available.
Roast B, 30lbs available.
You have 50 total lbs of coffee demand that needs to be assigned to roasts A and B. The demand is divided into the following subsets as 1lb bags. Note: It is okay to split a subset into smaller sets but this should be minimized.
Subset C: 10lbs
Subset D: 17lbs
Subset E: 12lbs
Subset F: 7lbs
Subset G: 4lbs
Below is an example of the desired outcome (one of many possible combinations).
Roast A - 20lbs
Subset C: 10lbs
Subset F: 7lbs
Subset G: 3lbs (3 out of 4lbs)
Roast B - 30lbs
Subset D: 17lbs
Subset E: 12lbs
Subset G: 1lbs (1 out of 4lbs)
Below are some other examples that might be helpful.
We wish to design web-app that solves this problem on a much larger scale, and effectively.
-
Design an implementation plan for this app, some things to consider: (allot at least 1-3hrs)
- software architecture
- language/frameworks
- hosting/deployment strategies
- necessary integrations (storage/error-handling)
- API spec (endpoints, how to query, responses)
- presentations of this plan for various audiences (outline a briefs for engineers, another for execs)
- be prepared to describe the development cycle; what are the logical parts that could be split into separate stories.
-
Understand and implement a solution to this problem in code: (allot at least 1hrs)
- Implement the above algorithm(JUST THIS ALGORITHM IS NECESSARY) in either Ruby or Python(certain other languages admitted upon request) to conform with your spec
- Be prepared to present—with explanation—the algorithm you used for solving the above problem.
Please submit a document with these materials—md, txt, pdf, doc
are all accepted
During a potential on-site, we will ask for a 35 minute presentation(with 10 minutes additional for questions) on the above material. We'd like you to present the above as if you were outlining the project as an engineering effort for coming sprints.