Despite advances made in recent years, the online interview process isn't always perfect. In a talk at Etsy, Engineering Manager Moishe Lettvin—who has conducted over 250 interviews during his time at Google—claimed the process can be “noisy, inaccurate, and arbitrary.”
While inconsistencies remain, you can still dial into an online interview prepared and brimming with confidence if you take time to learn what your interviewer is looking for. Generally speaking, this boils down to two things:
- Readable, Maintainable, and Extensible Code: Can you write code cleanly and correctly? If not, then it’ll be hard to get you up to speed with the rest of the team.
- Cultural Fit: Are you someone we see positively contributing to not just product, but also to the company culture?
From these two points, you can reverse engineer a plan of attack when preparing for interviews. How can you demonstrate that not only can you write beautiful, functioning code, but that you'll also be a great fit for the team, even when interviewing from afar? Here are three tips to help you crush your online interview:
Tip #1: Participate in coding contests
Technical interviews—and technical online interviews—are skills that can be practiced. And according to a post by Facebook engineer Andrew Rothbart, one of the best ways to practice that skill is through coding contests:
“You’ll learn how to critically analyze your work. Because you don’t get credit for solving a problem until the code you write can generate the correct results for a large input set (and you don’t know what that input set looks like), you’re forced to think about things such as time complexity, memory usage, and nasty corner cases.”
This means that you’ll get better at decomposing problems and writing bug-free code, en route to becoming a faster and more confident programmer. Rothbart wrote that, from his experience, “it turns out that many technical interview questions are interchangeable with the types of questions that show up in programming contests.”
Need somewhere to start? Try the coding challenges and contests on HackerRank. Many of the companies you’ll be interviewing with are the same ones hosting these contests, so it'll give you a leg up in understanding the skills they're looking for.
Tip #2: Justify your choices
As a software developer, you'll like work on a team of people with a diverse array of experiences and assumptions about coding, logic, and design. So as you go through your online interview, it’s thoroughly important that you communicate the “Why” behind your decisions. Why did you take that shortcut? Why did you write it this way?
Getting used to explaining your thought process out loud helps in two ways. First, it forces you to get a grip on complexity by breaking things down to simpler component parts. If you can’t clearly explain the reasoning for each decision you make, you might not actually understand the problem at hand. In an online interview, talking through your decision will show the interviewer your command of the problem. They'll be able to spot the difference between candidates who truly understand the problem, versus those hiding behind technical jargon.
Second, justifying your choices helps the interviewer understand the assumptions you're testing, your approach to problem solving. It's a great chance to show off the unique perspective you bring to the table.
Tip #3: Read employer blogs for company-specific advice
The developer community is amazing at sharing its knowledge. So why not tap into this deep well of knowledge? No listicle is going to be comprehensive enough to cover every case, but there are thousands of engineers out there who want others to learn from their specific experiences.
For example, if interviewing with Airbnb, you should know that they value inventive candidates with an eye for design. A Foursquare interview might have you implement a Foursquare leaderboard in a scripting language. Dropbox especially cares about clean code and side projects.
The key to success at an online interview is practice and preparation. So we recommend you get started on coding challenges on HackerRank, think out loud as you code, and read up on how your favorite companies interview candidates.
Editor's Note: This post was originally published in September 2014. It was updated for freshness in 2020 by the HackerRank editorial team.