Skip to content

Take the next step to join Ad Hoc.

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


Complete one assignment to start off. We will 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 some other language, but let us know how we can set up our environment to run your code.

View assignments

Evaluation process

Your homework will be reviewed by multiple engineers on our team. We assign submissions a random number when they are received so our team does not know whose homework they are grading. This lets us grade without any preconceived notions of abilities and ensures the first evaluation of a candidate is based solely on the solution delivered.

Read about why we use homework for recruiting on our blog.

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.