diff --git a/README.md b/README.md index d0e76b0..ffe9694 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,22 @@ Ad Hoc homework problems ======================== -Each directory contains a homework problem, seven in total. Please complete at least one--but not more than three--of the problems before submitting. Make sure to read the README in each directory, +Each directory contains a homework problem, seven in total. Please complete one problem to start off, we will ask for more if your first submission passes blinded review. Make sure to read the README in each directory, it will give you important information on completing each problem. This is an open-book test, so Google away, but please don't copy your work from pre-existing solutions you may find or ask others to help you complete the exercises. Solutions should be able to be run on a UNIX command line (Linux/Mac). We're quite familiar with Go, Ruby, Javascript, and Python, but if your submission is in some other language (which is OK), please let us know how we can set up our environment to run your code. -Which problems should I try? +Which problems should I start with? ------------ Well, that depends on the position you're applying for! Here are some suggestions: - - Front-end Developer: [hhbuilder](https://github.com/adhocteam/homework/tree/master/hhbuilder) and [fetch](https://github.com/adhocteam/homework/tree/master/fetch) - - Software Engineer (Full-stack): [hhbuilder](https://github.com/adhocteam/homework/tree/master/hhbuilder) and [slcsp](https://github.com/adhocteam/homework/tree/master/slcsp) - - DevOps Engineer (Site Reliability): [provision](https://github.com/adhocteam/homework/tree/master/provision) and [proto](https://github.com/adhocteam/homework/tree/master/proto) + - Front-end Developer: [hhbuilder](https://github.com/adhocteam/homework/tree/master/hhbuilder) or [fetch](https://github.com/adhocteam/homework/tree/master/fetch) + - Software Engineer (Full-stack): [hhbuilder](https://github.com/adhocteam/homework/tree/master/hhbuilder) or [slcsp](https://github.com/adhocteam/homework/tree/master/slcsp) + - DevOps Engineer (Site Reliability): [provision](https://github.com/adhocteam/homework/tree/master/provision) or [proto](https://github.com/adhocteam/homework/tree/master/proto) - UX Design: [ux-design](https://github.com/adhocteam/homework/tree/master/ux-design) - -These are just suggestions; if you really want to give other problems a shot, go for it, but don't do more than three of them before hearing back from us. + - Engineering Lead: Pick two from hhbuilder, fetch, provision, middleware, proto, and SLCSP. Getting help ------------ @@ -49,7 +48,7 @@ Evaluation process When we receive your homework, we'll assign it a random number, so that our team does not know whose submission they are reviewing. Your homework will be -reviewed by at least three senior engineers on our team. +reviewed by multiple engineers on our team. A quick tip ----------- diff --git a/dog_license/README.md b/dog_license/README.md new file mode 100644 index 0000000..36f4d14 --- /dev/null +++ b/dog_license/README.md @@ -0,0 +1,12 @@ +Dog License +================= + +### Scenario: + +You’ve been asked by your client, a municipality, to put their dog license application form online. What questions do you ask? + +#### Submission + +Answer the questions in under 600 words, and store as a plain text file. + +When you are done, create a zip file containing that file, [create a candidate account on our recruiting site](https://people.adhoc.team/candidates/sign_up) and upload your solution. diff --git a/fetch/README.md b/fetch/README.md index 95ba2e0..1f4ff5f 100644 --- a/fetch/README.md +++ b/fetch/README.md @@ -74,7 +74,7 @@ In `api/managed-records.js`, write a function named `retrieve` that requests dat - Do not use any `for` or `while` loops in your solution. - Do not add any additional libraries or edit any files other than `api/managed-records.js` - A suite of unit tests is provided. Your solution should pass all tests. -- Please delete the `node_modules` directory before submitting your completed homework. +- Please delete the `node_modules` directory before submitting your completed homework. ## Setup diff --git a/slow_widgets/README.md b/slow_widgets/README.md new file mode 100644 index 0000000..2a69218 --- /dev/null +++ b/slow_widgets/README.md @@ -0,0 +1,40 @@ +Slow Widgets +================= + +### Instructions: + +Create a technical improvement plan given limited information + +### Scenario: + +An application that you have just assumed complete responsibility for is used for finding locations that sell widgets near a given user. This application has an integration with an external system that lets users filter the results by their favorite widgets. User complaints have come in, saying the system: + +* Is slow looking up nearby widgets +* Does not provide user feedback when importing favorite widgets + +The metrics below are all that are currently captured for this application. Given that provided context, how would you approach planning technical improvement for this application? + +### Appendix A + +| Web Transactions | App server time | +|------------------|----------------------| +| IntegrationController#update | 1235 ms | +| IntegrationController#lookup | 1145 ms | +| LocationController#find | 645 ms | +| HomeController#index | 126.9 ms | + +### Appendix B + +| Category | Segment | % Time | Avg calls (per txn) | Avg time (ms) | +|----------------|------------------------------------|--------|---------------------|---------------| +| WebTransaction | /location/find | 100 | 1 | 645 | +| Database | Postgres DBRepo.FindByZip Query | 41.9 | 6 | 45 | +| Database | Postgres DBRepo.LookupZip QueryRow | 7.9 | 12 | 4.24 | +| Database | Postgres DBRepo.FindUser Query | 0.62 | 0.997 | 4.05 | + + +#### Submission + +Answer the questions in under 600 words, and store as a plain text file. + +When you are done, create a zip file containing that file, [create a candidate account on our recruiting site](https://people.adhoc.team/candidates/sign_up) and upload your solution. diff --git a/ux-design/README.md b/ux-design/README.md index 5bda84f..afc8cab 100644 --- a/ux-design/README.md +++ b/ux-design/README.md @@ -11,6 +11,6 @@ Describe a unique UX problem you've worked on recently, and provide a few paragr #### Submission -Your content should be added to the provided changes.md file. You may attach any sketches, screenshots, or other artifacts you think would be helpful documenting explaining your process in the parent ux-design folder as well. +Create a folder and write your answer into a markdown or text file. You may include any sketches, screenshots, or other artifacts you think would be helpful in documenting and explaining your process in this folder as well. When you are done, create a zip file containing all your work, [create a candidate account on our recruiting site](https://people.adhoc.team/candidates/sign_up) and upload your solution. diff --git a/ux-design/changes.md b/ux-design/changes.md deleted file mode 100644 index 9bc4860..0000000 --- a/ux-design/changes.md +++ /dev/null @@ -1,3 +0,0 @@ -// Your recommended changes go here - -## Content (1-2 paragraphs)