Note. This article is the last installment in a three-part series on software engineering interviews. Read part 1, which describes the anatomy of a technical question, and part 2, which talks about phone screens, before continuing.
If you’re reading this article, you’re probably interviewing at a tech company and have made it to an on-site interview after passing some phone screens. This is a roadmap for how you should prepare for a grueling day of back-to-back interviews to test your aptitude in software engineering and your fit with a company’s culture.
The layout of the onsite interview
The Morning
- Once you arrive, you will check in at a reception desk. You may or may not be provided breakfast.
- You will do 2-4 back-to-back technical interviews, each of which is similar in style to a phone interview.
Lunch
- You’ll usually eat with someone in the position you’re interviewing for.
- This portion of the interview day is generally informal, but you should still present a positive and semi-formal impression as the company may be assessing you for a culture fit at this time.
The Afternoon
- You will do anywhere between 0-3 technical interviews, again in the same style as a phone interview.
- You may speak with your recruiter between these interviews as well.
The Wrap-Up
You will meet with your recruiter to finalize the day and discuss what next steps are.
A week before the onsite interview
Check your paperwork.
Confirm your itinerary with your recruiter, and make sure you have any requisite paperwork that you need to bring with you.
Practice coding on a whiteboard.
The whiteboard is the main difference between onsite interviews and phone interviews. Take some time before the visit to do a couple of simple practice problems which you can confidently implement on a whiteboard so you can see what the experience is like.
Pick the clothes you will bring to the interview.
Dress code is a point of pride for many tech companies. Many companies in Silicon Valley emphasize casual attire, but other companies may prefer a more formal presentation, especially when interviewing. Check with your recruiter beforehand; if you’re afforded flexibility, wear something that best expresses who you are.
The night before the onsite interview
Gather essential items.
You shouldn’t need to take much to your interview. To err on the side of caution, here’s a list of things you would generally need:
- Phone
- Wallet (with valid photo ID)
- Pen
- Required paperwork
- Resume (5+ copies)
Plan on waking up early.
This will allow you some buffer time to get some food in the morning and to be fully coherent before the interview begins.
Sleep early.
You will perform much better when fully rested.
The morning of the onsite interview
Get there 30 minutes early.
The day will be a blur once interviews start as you’ll be rushing around. You can settle in with much less pressure if you get there early.
Get a sense of what the office culture is like.
(This is made much easier by getting there early). Is it playful? Is it serious? What amenities are provided? Do the employees seem generally happy?
Assess the quality and accessibility of the surrounding area.
Is the commute feasible? Are there restaurants, pharmacies, banks, housing options, and other useful resources nearby?
Throughout the onsite interview
Smile and keep a friendly demeanor.
It’s really easy to get anxious and anti-social during these interviews, but you’re also going to be judged on how you interact with other people. Consequently, it’s very important to put yourself out there and make sure that you’re engaging with people. It will also lighten up the interview process for you because you won’t be thinking so much about how you did.
If you have questions, ask someone.
The on-site interview is a HUGE opportunity for you. Get as much information as you can about the company while you’re there. Make the most of your time!
Talk to employees to get their perspective on the company.
If you approach the conversation in a casual way (and not just as a prospective employee who’s sizing up the company), other people are more likely to give you honest feedback about their work experience.
Keep a beverage on hand at all times.
It’s surprising how easily your throat gets dry when you’re moving around, interviewing, and talking to a ton of people. I keep a water bottle with me constantly when I’m doing on-site interviews.
Use the restroom when you can.
Although it might seem silly, the restroom will provide a much-needed break from the constant mental pressure that on-site interviews enforce. Take advantage of it!
The technical interviews
Part 1 of this series talks about the how to approach technical questions. However, here are some principles which apply especially to on-site interviews:
Pace yourself for the long haul.
On-site visits generally involve 3-6 back-to-back interviews. Although each interview will be 20-45 minutes, the cumulative mental toll is significant. Plan accordingly!
When you are sitting, take up space.
This gives the impression that you are credible and confident, and will project positively to your interviewer.
Talk to the interviewer, not the whiteboard.
It’s easy to get caught up in your code and recite it verbatim as you’re writing it. I usually like to summarize my approach before touching the whiteboard and then cursorily walk through the implementation as I am writing.
Leave whitespace between lines.
This will allow you to go back and add more code. You don’t want to erase everything and rewrite or draw arrows for lines of code in the middle of the interview. Simple is better.
After the on-site interview
Follow up.
A quick thank you email to your recruiter and other contacts is an easy gesture to reinforce your interest in the company.
Decide if you would want to work there.
Do this independent of how you think the interview went. They’re deliberating over you; why can’t you do the same?
Note key observations about the company.
This is mainly a matter of personal taste, but will come in handy when you compare offers.
Move on.
Most companies will get back to you within a couple of weeks. If you don’t get the offer, take the visit as a learning and enrichment experience! On-site interviews will only get better with experience.
Special thanks to Waseem Ahmad, Nathan Alison, Satej Soman, and Toshi Noguchi for feedback on early versions of this series.
Have any thoughts on software engineering on-site interviews? Tell me!