Each directory contains a homework problem, four in total. Please complete one--or more--of the four before submitting. Make sure to read the README in each directory, it will give you important information on completing each problem.
We're on the honor system here. Don't get help from, or give help to, another person or a resource on the internet. Do the work yourself. It's okay if you need to consult language docs or the MDN or similar.
Well, that depends on the position you're applying for! Here are some suggestions:
- Front-end Developer: hhbuilder
- Software Engineer (Full-stack): hhbuilder and slcsp
- DevOps Engineer (Site Reliability): proto and middleware
These are just suggestions; if you really want to give all four problems a shot, go for it!
If you get stuck, have a question, or want to clarify any aspect of the homework, you can contact members of our development team by joining our public Slack channel.
We think a sign of a good developer is one who asks questions sooner, rather than later. We are happy to help guide you to the right solution.
To submit your homework, zip up the contents of your git repo in a .zip file. Please remove the .git directory, and anything else that might identify you. If you want to include any comments with your submission, add them to the COMMENTS file. If there's anything important for us to know about how to run your code, please include that information in the COMMENTS file. We use Go, Ruby, and Python on a daily basis, so 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. Feel free to include any other information relevant to your submission in the COMMENTS as well. Then visit our homework app, sign up for an account, and follow the instructions to upload your homework there!
In addition to submitting the homework, make sure to complete the application for the job you're applying for on our jobs page.
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.
A note about what we're looking for: we tend to favor solutions that clearly and concisely solve the problem at hand. We're not looking for an over-engineered solution. We want to see how you approach the problem, understand what's being asked, and solve it. We tend to favor solutions that are simple, elegant, and efficient.
Good luck! We look forward to reviewing your submission.