Standard Interviews
If you’ve been on either side of a technical interview, you’ve probably heard questions about sorting algorithms, discussed Big O, asked or been asked how that function could be made faster, better, harder, stronger, and you’ve also likely wanted to run out of the room screaming. Or maybe you did run out of the room screaming.
Technical interviews are hard for both interviewer and interviewee. As the interviewer, you are tasked with determining the scope of knowledge possessed by the stranger sitting across the table. Can he navigate common technical hangups? Is she well-versed in cross-browser compatibility issues? Will he lock up or –¡gasp!– delete our entire production database by accident? On top of the technical knowhow, will this person be a pleasant addition to the team, who actively and intelligently contributes to sprint-planning meetings and retros, and helps the team do its collective best work? Oh, and you have 45 minutes to figure all that out. Sure, no problem.
As the interviewee, you need to speak articulately (stifle those ‘ummm’s), answer elaborate technical scenarios or obscure computer science zingers with someone looking over your shoulder and without obviously stumbling, and present yourself as a real human adult person with a personality.
How to Nail it
Preparing for every technical question is impossible. Every company has a different approach, a different tech stack, and will ask you something you haven’t seen before. That’s obviously no excuse to not prepare, and working through a bunch of questions on Project Euler will help you stay sharp, but when the time comes, it’s often not enough to rattle off a technically-correct solution. Adding a little flair will help you stand out from the crowd.
Here’s a question we commonly ask during technical interviews: > Describe what happens when a person types a URL into their browser and hits ‘enter’
This question is great for a number of reasons:
- it’s conversational, so the interviewee doesn’t have to panic at the dreaded white board marker
- the topic is massively practical – anyone interviewing for an engineering role should understand how the modern internet works
- it is language/tech stack-agnostic
- the answer given can lead to follow-up questions and further discussion
A “good” answer to this question doesn’t necessarily need to touch on every detail, but should be able to reason intelligently and draw conclusions from the ensuing discussion. During my technical interviews for the WeWork engineering team, I was asked this question and here’s the answer I gave (kind of):
“When a user types a URL into the browser and hits ‘enter’, the browser fairies sweep up all the magical request dust and use their fairy powers to turn it into a beaaaaauuuuutiful gem. Before embarking on their journey, they first look around the fairy village to see if they already have the ingredients they’re looking for. If they don’t have them, or if the ingredients are stale, the fairies venture out looking for the DNS Fortune Teller, who shows them where to find the Server Wizard. The fairies then bring the request gem to the Server Wizard (along with cookies, because the Server Wizard demands cookies), who sits on a throne of HTML, CSS, and JavaScript. If the Wizard is pleased by the fairies’ request gem, he will bellow to the mountains, ‘200!!!!!!!’ (or possibly some variant of ‘300!!!!!’ if he’s already seen that particular request gem, but is still in a good mood). If he is displeased by the fairies’ cookies or request gem, he will shout angrily ‘400!!!’ (or something in that range), or ‘500!!! if he’s eaten too many cookies and isn’t feeling well.
If the Wizard accepts the fairy cookies and request gem, they get to return to their fairy village with all sorts of magical wonders to share. Once they arrive home, they put together a fancy party for all their friends, with HTML tables and CSS streamers, and JS magicians to entertain.”
So that’s basically how the internet works, and how to pass the technical interview…with some flourish. Stay tuned for a follow up post on how to write any function with Big O(1) while wearing a silly hat!