Skip to content

Take the next step to join Ad Hoc

Once you've applied for an open position, try one of our homework assignments.


Start with one assignment. We'll ask you for more if your first submission passes our review. Read each assignment carefully for important information on completing each problem.

This is an open-book test, so feel free to use search engines, but don't copy your work from pre-existing solutions you might 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 familiar with Go, Ruby, Javascript, and Python. You may submit in another language, but let us know how we can set up our environment to run your code.

View assignments

Evaluation process

Multiple engineers will review your homework. We assign submissions a random number so our team doesn't know whose homework they're grading. This lets us grade without any preconceived notions of abilities and ensures the first evaluation is based solely on the solution you deliver.

Read about why we use homework for recruiting.

Getting help

Use the chat button in the lower right to contact us if you get stuck or have a question. We'll reply as soon as we can. If you submit the question outside the hours of 9 a.m. - 5 p.m. (ET), visit this page later to check for a reply.

We think a good developer asks questions sooner rather than later. We are happy to help guide you to the right solution.

Quick tips

We want to see how you approach the problem, understand what's being asked, and solve it.

  • Submit the homework as if you were giving it to a coworker for code review.
  • Aim for a clear and concise MVP and avoid over-engineering the solution.
  • Follow directions and solve just the problem in front of you.