What my technical interviews have looked like

In the last month I’ve done what feels like 100 interviews. It’s
easier than I thought it would be. I’m getting much better at talking
about myself to strangers on the phone, which is an awesome thing to
be able to practice. It’s also interesting to see different approaches
to interviewing and get a feel for the culture at the companies.

I feel like at some point someone’s going to ask me what kind of
questions get asked in technical interviews. So here are some
anecdotes. This is probably from 15-30 technical interviews / phone
screens, across a bunch of tech companies of different sizes. (the
number depends on how you count interviews)

Questions about my background

I was originally pretty intimidated by all these questions, but I
think they’re actually a gift (if initially a difficult gift).

“Tell me about your background” gives you a chance to tell a story
about your career so far and explain where you’re coming from a
little bit. I find it useful enough that now if somebody doesn’t
ask, I’ll often say “alright, let me tell you a bit about where I’m
coming from” at the beginning of a first phone interview with a
company. I probably talk for 2-5 minutes.

For me this looks like “I went to school and I did X, and then I
wanted to change it up a bit so I did a job doing Y, but I wanted a
bit more Q in my career so I switched to industry Z”. It’s good to
talk about your accomplishments here.

For “Tell me a bit about [Job X]”, I make sure I can talk about
projects I worked on at each of my previous jobs in an engaging way.
I’ve also had people ask me about my master’s thesis, so I make sure I
can explain that.

Some good things to talk about would be

What was the goal of the project?

What was interesting about the project?

What did you accomplish? Why was it a success?

What are you looking for in a job? is a bit tough to give pithy
answers to, but good! It’s also a good thing to think about for
myself, so preparing for a question like this is definitely a good
use of time.

Do you have any questions for me? is something I’ve thought about
a lot, and wrote about in
Questions I’m asking in interviews.
I may write more about this later because it’s really important and
I find it pretty hard to get right.

Technical questions

I’ve been asked exactly zero tricky math questions or questions like
“How many bingo balls could fit in the Empire State Building”.
Hopefully the tech industry has gotten over these.

Tell me about some performance problems you’ve dealt with and what
you did.

Algorithm question, and

Tell me an algorithm for this.

Talk about the complexity.

How long do you think this would actually take to run, on a
billion numbers? (seconds/minutes/hours?)

What do you know about distributed systems / concurrency? (+ some
followup)

What databases have you used? (+ some questions about database
design and query runtime)

What does D3 do? What have you used it for?
Would you recommend using it for X?

Tell me about a project you did with
[specific technology from my resume]

Build a small class that does [thing].

Let’s pair and fix a bug in a library!

Let’s pair and write a simple classifier and evaluate it!

Bring some code you’ve written and explain it to someone.

Write down code to do [thing] on a whiteboard. (only in one
interview, so far).

Some C-specific questions

Talk about a project you did where something was hard.

Mostly nobody has asked me

whiteboard coding

specific questions about how a programming language works

I think people are replacing “how many golf balls can fit in the
Empire State Building” with more concrete questions about estimating
program runtime and space requirements. I am very happy about this.

One takeaway from all this is that having weird things like Rust and
Julia on my resume has been a fun time – people ask about Rust a lot,
and I get to have good conversations about it. They are in a short
“things I know a little bit about” section on my resume and it is
great.