Julia Evans

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

Most people ask me variations on these questions:

  • Tell me a bit about your background.
  • Tell me a bit about Job X (from my resume)
  • What are you looking for in a job?
  • Do you have any questions for me?

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.

Here are some kinds of questions people have asked me:

  • I saw Rust on your resume! That sounds cool! Tell me about it!
  • Tell me what happens when you go to http://google.com, in as much detail as you can.
  • Write code to solve this [non-tricky but not trivial] algorithm program. (either in a Google doc or write code that will actually run on my computer)
  • Tell me more about your TCP stack! (+ more followup questions)
  • Statistics questions, when applying for jobs that involve data analysis. Bayes’ theorem and things.
  • How would you approach [machine learning problem]?
  • 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.

You should give talks. They will be awesome. Here's why! CUSEC = fun