Skip to main content
U.S. flag

An official website of the United States government

Dot gov

The .gov means it’s official.
Federal government websites often end in .gov or .mil. Before sharing sensitive information, make sure you’re on a federal government site.


The site is secure.
The https:// ensures that you are connecting to the official website and that any information you provide is encrypted and transmitted securely.

Technical pre-work

The goal of technical pre-work is to enable an interviewer to ask thoughtful questions about the kind of code, thought processes, and choices that the candidate will make at 18F.

Candidates have two options: complete a coding exercise, or bring an existing code sample. Interviewers will have read your code, run it, and prepared follow-up questions to ask as described in the interviewer’s guide.

Instructions to candidates

We know that the best way to tell if someone’s a good engineer is to actually look at their code, so before your interview you’ll need to submit a code sample for us to review.

You have two options, explained below. Both options are equivalent in our eyes, so choose the one you think will be easiest and will present yourself in the best light.

18F’s core languages are Python, Ruby, and JavaScript. We may be able to review code in other languages as well, if we have a knowledgeable reviewer — just ask. Choose the language you’re strongest in — we’re looking to have a conversation with you about the decisions you’ve made in your code.

Please let us know right away what language you’ll be using so we can select an appropriate reviewer.

Your code sample is due by {DATE}, and you can submit by replying to this email. Please don’t be late; if you miss the deadline, that’ll jeopardize your application.

One of your interviews will be with someone who has reviewed and run your code, so be prepared to explain your code, walk through it with our interviewer, and answer questions.

Your choices for code samples are:

Option 1: Submit a code sample you’ve written elsewhere to share with us and discuss. This is subject to a few conditions:

Option 2: Complete a short programming assignment. We re-use coding problems developed by Ad Hoc, and add a few extra rules and restrictions of our own:

Please don’t spend more than 3 hours on your exercise. If you reach 3 hours, and haven’t completed work, please contact us and we’ll help you decide what to do next.

Good luck! If you have any questions, please let us know!