How we interview

We interview every candidate before every referral. Here's the details.

How we interview

We interview every candidate before every referral. Here's the details.

How we interview

We interview every candidate before every referral. Here's the details.

Structure

Our interview is a 90-minute video call with one of our engineers. We vet interviewers carefully, and most of our interviewers have either FAANG or unicorn startup experience or both.

We don't require or expect any specific languages, frameworks, or other technologies, except for a couple of JS-specific front-end questions. Candidates can use the tools with which they are most comfortable.

Content

The interview is divided into three sections: live coding, conceptual questions, and system design. Scroll down for more detail on each section.

We use a four point scoring system both internally and externally: strong fail, weak fail, weak pass, strong pass. These scores are a mix of an objective rubric and an interviewer's subjective judgment.

class MinesweeperBoard {

    board : MinesweeperTile[][] = []

    tileByCoordinates(rowIndex : number, colIndex : number) : MinesweeperTile | undefined {
        // off-by-one adjusted in user input, 0-indexed here
        if (rowIndex > this.board.length) {
            console.log("Row index out of bounds!")
            return undefined
        }
        let row = this.board[rowIndex]
        if (colIndex > row.length) {
            console.log("Column index out of bounds!")
            return undefined
        }
        return row[colIndex]
    }

    adjacentTiles(rowIndex : number, colIndex : number) : MinesweeperTile[] {
        // todo
        return []
    }

    numAdjacentMines(row : number, col : number) : number {
        let adjacentTiles = this.adjacentTiles(row, col)
        let numMines = 0
        for (let tile of adjacentTiles) {
            if (tile.hasMine) { numMines++ }
        }
        return numMines
    }
}

Section details

Live coding

30 minutes

Summary

We give candidates a spec for a simple game written in plain English. It doesn't require any specific algorithms or "gotchas": our goal is to test problem-solving in code, not familiarity with any one specific approach.

Candidates can use tools of their choice, but are not allowed to use gen-AI tools (including e.g. copilot).

Example question

See our our practice problem, which is very similar to the real thing.

Positive signals

Completes a large portion of the problem in time

Writes organized code

Shows comfort with major language features

Identifies and unblocks bugs when they occur

Negative signals

Write unidiomatic code

Muddled approach/process

Gets stuck & can't unblock

Breaks language conventions

Live coding

30 minutes

Summary

We give candidates a spec for a simple game written in plain English. It doesn't require any specific algorithms or "gotchas": our goal is to test problem-solving in code, not familiarity with any one specific approach.

Candidates can use tools of their choice, but are not allowed to use gen-AI tools (including e.g. copilot).

Example question

See our our practice problem, which is very similar to the real thing.

Positive signals

Completes a large portion of the problem in time

Writes organized code

Shows comfort with major language features

Identifies and unblocks bugs when they occur

Negative signals

Write unidiomatic code

Muddled approach/process

Gets stuck & can't unblock

Breaks language conventions

Live coding

30 minutes

Summary

We give candidates a spec for a simple game written in plain English. It doesn't require any specific algorithms or "gotchas": our goal is to test problem-solving in code, not familiarity with any one specific approach.

Candidates can use tools of their choice, but are not allowed to use gen-AI tools (including e.g. copilot).

Example question

See our our practice problem, which is very similar to the real thing.

Positive signals

Completes a large portion of the problem in time

Writes organized code

Shows comfort with major language features

Identifies and unblocks bugs when they occur

Negative signals

Write unidiomatic code

Muddled approach/process

Gets stuck & can't unblock

Breaks language conventions

Concepts - Algorithms

Conc. - Algos

Concepts - Algorithms

Concepts - Full-stack

Conc. - Fullstack

Concepts - Full-stack

Concepts - Low-level/security

Conc. - Lowlevel

Concepts - Low-level/security

System design

System design

System design

Scoring

We score candidates on both objective criteria (our interview script contains rubrics for each question) and subjective interviewer impressions.

We normalize these raw scores given on the call for differences in strictness between interviewers.

What we send to you

We boil down the normalized results into a single score for each section. We do not expect candidates to pass every section - our goal is to capture their strengths, and we'll only refer them to you if we think they have the strengths you care about.

Scroll down for an example set of scores for a good (but not extraordinary) candidate.

Coding

Strong pass

Summary

Very rapid progress, clean code, and clear and precise process. Process in particular deserves special note: he avoided a lot of the typical data model pitfalls that trip up candidates who don't make as much progress. He took a minute to think the problem through, saw what problems he'd need to solve later, and wrote correct code the first time.

This was a very solid passing performance, well above our normal bar, and would probably earn a recommendation even if the rest of the interview had been mediocre.

Coding

Strong pass

Summary

Very rapid progress, clean code, and clear and precise process. Process in particular deserves special note: he avoided a lot of the typical data model pitfalls that trip up candidates who don't make as much progress. He took a minute to think the problem through, saw what problems he'd need to solve later, and wrote correct code the first time.

This was a very solid passing performance, well above our normal bar, and would probably earn a recommendation even if the rest of the interview had been mediocre.

Coding

Strong pass

Summary

Very rapid progress, clean code, and clear and precise process. Process in particular deserves special note: he avoided a lot of the typical data model pitfalls that trip up candidates who don't make as much progress. He took a minute to think the problem through, saw what problems he'd need to solve later, and wrote correct code the first time.

This was a very solid passing performance, well above our normal bar, and would probably earn a recommendation even if the rest of the interview had been mediocre.

Example scores

Overall

Pass

Summary

Close to a strong pass thanks to very strong performances on both coding and system design. A little weaker on theoretical knowledge, but a solid pass befitting a working senior engineer with no red flags to speak of.

Overall

Pass

Summary

Close to a strong pass thanks to very strong performances on both coding and system design. A little weaker on theoretical knowledge, but a solid pass befitting a working senior engineer with no red flags to speak of.

Overall

Pass

Summary

Close to a strong pass thanks to very strong performances on both coding and system design. A little weaker on theoretical knowledge, but a solid pass befitting a working senior engineer with no red flags to speak of.

Live coding

Strong pass

Live coding

Strong pass

Live coding

Strong pass

Concepts - Algorithms

Borderline

Conc. - Algos

Borderline

Concepts - Algorithms

Borderline

Concepts - Full-stack

Pass

Conc. - Fullstack

Pass

Concepts - Full-stack

Pass

Concepts - Low-level/security

Low

Conc. - Lowlevel

Low

Concepts - Low-level/security

Low

System design

Strong pass

System design

Strong pass

System design

Strong pass

Technical communication

Strong pass

Tech. Comm.

Strong pass

Technical communication

Strong pass

FAQ

?

How do you handle cheating?

Interviewers can flag suspicious candidate behavior during the interview. When there's doubt, we might review recordings of the interview to check; it is pretty difficult for a candidate to cheat in such a way that it's not obvious on careful review.

In practice, cheating (and candidate quality in general) has not been a complaint among our clients, even those that end up being unhappy with us.

?

How do you handle cheating?

Interviewers can flag suspicious candidate behavior during the interview. When there's doubt, we might review recordings of the interview to check; it is pretty difficult for a candidate to cheat in such a way that it's not obvious on careful review.

In practice, cheating (and candidate quality in general) has not been a complaint among our clients, even those that end up being unhappy with us.

?

How do you handle cheating?

Interviewers can flag suspicious candidate behavior during the interview. When there's doubt, we might review recordings of the interview to check; it is pretty difficult for a candidate to cheat in such a way that it's not obvious on careful review.

In practice, cheating (and candidate quality in general) has not been a complaint among our clients, even those that end up being unhappy with us.

?

Do you vary your interview content for each role?

?

Do you vary your interview content for each role?

?

Do you vary your interview content for each role?

?

Who does your interviews?

?

Who does your interviews?

?

Who does your interviews?

?

Do you publish your exact rubrics?

?

Do you publish your exact rubrics?

?

Do you publish your exact rubrics?

Sound good?

Book a call to get started, or to learn more about how we work.

Sound good?

Book a call to get started, or to learn more about how we work.

Sound good?

Book a call to get started, or to learn more about how we work.