---
title: "Technical interview"
source: 18F Guides
source_url: https://github.com/18F/guides
licence: CC0-1.0
domain: engineering
subdomain: 18f-guides
date_added: 2026-04-25
---

The goal of the technical interview is to assess the candidate’s technical skills and thought processes when solving technical problems.

{% include 'eng-hiring/unconscious-bias-warning.html' %}

## Purpose

The technical interview accomplishes two purposes:

1. **Determine if a candidate can break down complex technical problems into sensible pieces.** We’re often asked to solve abstract and complex problems which require breaking apart and understanding a larger system.

2. **Communicate and teach technical concepts effectively to people who many not have technical experience.** We need to communicate in an understandable way about all aspects of modern software development without getting lost in technical jargon. For our partners to trust us, we need to be transparent about what‘s in our wheelhouse and what isn’t — no faking of experience or speaking about topics which aren’t understood.

The interview should last roughly one hour, and include some segments in which the interviewers provide more detail about 18F to the candidate and openly share their experiences working at 18F — remember, interviewing is a two-way street!

{% include 'eng-hiring/interview-reminders.md' %}

## Before the interview

Take a few minutes to familiarize yourself with the candidate’s resume and review [the good and bad signs](https://docs.google.com/document/d/1oYmx_93-mq2QrqICCo8SNk8hHmnPPonPA1kg0vhy540/edit) for the questions you’ll be asking.

You will receive a copy of the notes template prior to the interview. 

[View the notes template](https://docs.google.com/document/d/1-OUt37PCx-VZfO8pa6d5ge-jIp15ur8biywHyxOSyfY/edit#heading=h.ee6z4qfrw31q)

## Conversation outline

{% include 'eng-hiring/notes-reminder.html' %}

Begin by introducing yourself by saying this or something similar to it:

> Hello! My name is \_\_\_, my pronouns are \_\_\_, and my role at 18F is \_\_\_.
>
> Thanks for interviewing with me today. This will be a behavioral interview, which means I’ll ask a series of questions about experiences you’ve had and how you handled them. There are no “right” answers; I’m interested in talking through these situations with you. I’ve got about [4-5 questions], and this will take us about an hour, perhaps a bit less. Don’t be surprised if others ask the same questions in other interviews; that’s normal. Feel free to think for a moment before answering if that's your style - you won't be judged for it.
>
> There will be times when I ask for more information, or want to dig deeper into your answers. That’s normal: I want to make sure I understand what you did and why. I’ll be taking notes, please don’t let that distract you.
>
> My questions will take about 40 to 45 minutes or so, and then we’ll have the remaining time to answer any questions that you may have.
>
> I’m excited that you’re here — any questions before we get started?


### Problem solving

These questions probe for the ability to design, analyze, synthesize and/or evaluate information
to produce and defend a desired solution. Preface by saying there’s no right answer, that we’re just looking to talk through the problem with the candidate.

Help guide the candidate to the right line of thinking, don’t allow them to get too bogged down in the wrong line of thinking — help them get back on track.

* "Let’s say your team is working for the Public Building Service, an arm of the GSA that is responsible for the maintenance and upkeep of all government buildings. They’ve asked you to create a feature where a building inspector can upload photos of their building inspection findings so they can document them visually and ensure issues are fixed. How would you approach the design and build for this?"

* "Tell me about a difficult technical problem that you helped solve: what was the problem, and how was it solved?"

### Agile orientation

* "Whether or not you’ve had direct experience with agile, in an agile environment, how do you analyze trade-offs between technical approaches to problems you face?"

### Position-specific questions

If the candidate is applying for a specific technical role, ask the relevant position-specific questions.

#### Communication

* "Pick a foundational web development concept or technology and explain it at two levels: first as you would to a colleague who's not a software developer, like a designer or product manager; next, as you would to an engineer."

#### Testing and refactoring

* "Tell me about your approach to software testing. Why is it important and when have you done it? Where does it belong in the process?"
* "What does refactoring mean to you? Why is it important and when have you done it? Where does it belong in the process?"

#### Production readiness

* Thinking both technically and non-technically, what do you consider when getting an application or system ready for production?
* You're tasked with writing a guide for developers about ensuring high reliability for a web application. What topics would you cover?

#### Security and stability

* Tell me about an infrastructure problem that you helped solve — for example, slow performance, unexpected downtime, a security breach, etc. What was the problem and how did you solve it?
* Tell me about a time that you worked with a team to remediate a security issue.

### Conclusion

Make sure to leave time for the candidate to ask you any questions they might have — remember, interviewing is a two-way street!

## After the interview

**Thank you for your focus!** Use your notes to fill out the feedback form linked in the calendar invitation, which will prepare you for the [debrief meeting]({{ '../../debrief/' | url }}).
