I've been fortunate to work for multiple top technology companies in my career, including AWS/Amazon, Oracle, and Facebook. There are classes of problems you can only tackle at companies like these, where billions of dollars of business flows through systems that you design and build. It's fulfilling knowing something you've created has touched thousands, millions, or in some cases of billions of people.
But I didn't start my career in big tech. I'm just a simple kid from Montana—and a college dropout at that. My entry into the world of software started with freelancing, contract gigs, and startups. While landing that work without a "proper education" certainly wasn't easy, the level of scrutiny that smaller companies apply in their interview process tended to be considerably lower than most Bay Area and Seattle technology companies.
I remember my first interview at one of these giants. It was for a Software Development Engineer (SDE) position at AWS. I didn't pass the interview loop. But did well enough that they invited me back for a Web Development Engineer (WDE) loop, which I cleared. I converted to SDE roughly six months later.
After joining, I remember thinking how poorly I prepared for the interview process, and how much time I wasted by not preparing. I could clearly do the job, or else they wouldn't have let me convert so quickly. I wished I knew how different it was compared to anything I had done before. In total, I had to clear nine interviews to get that WDE offer. It was intense.
That was a decade ago. Since then, I've been been in many similar interviews, and have been on the other side of the table hundreds of times—as interviewer, interview lead, and hiring manager.
There are dozens of great books on technical interviewing. But I'd like to offer three tips that I think are most easily overlooked while preparing for a technical interview. These tips are overlooked because they acknowledge that technical interviewing is a fundamentally broken process at most large companies.
Yes, they ask you to solve problems that you'll rarely have to tackle day-to-day. This is well-known and discussed often in tech circles. But more importantly, interviewers are biased and often poorly trained. Corporate cross-breeding spawns interview behaviors that are poor imitations of their original, more effective versions. These things—more than anything technical—have the greatest potential to tank your interview.
Here are three tips to help you survive this mess.
1: Assess your interviewer.
Technical interviewing is a distinct skill from software development.
But... tech interviewing is broken. So your meta-job as an interviewee is to understand what kind what kind of broken—what kind of company you're interviewing at, what kind of process they have, what kind of cultural background has informed their evaluation processes. You need to quickly understand how proficient your interviewer is, what their biases are, and whether or not he or she will do a faithful job representing you, the candidate.
Your job during an interview is to 1) convince that person they like you, and 2) arm that person with all the evidence they need to support you—preferably in that order.
2: Keep talking. Interviewers fill silences with their own biases.
Silence can be deadly in an interview, so keep information flowing. If you truly need quiet to think, explicitly say this to your interviewer: "I need a few moments to collect my thoughts. I'll explain my thinking in a minute, before I begin."
Your interviewer's job is to evaluate not just your skills, but your working method and clarity of thought. Does this person get along with his/her peers? Do they have a structured way of breaking down problems? Would I enjoy working with this person?
They're in evaluation mode, trying to understand what's going through your head. But they're also human. If they don't know what you're thinking, they'll almost inevitably fill in the blanks with whatever biases they've formed so far.
I've seen 3 minutes of silence by one candidate reported as, "They thoughtfully considered the problem before trying to put code on the board."
I've seen those same 3 minutes described as, "They struggled to get traction on the problem, and didn't start writing code without repeated prompting."
Messed up, huh? I'm not saying it's right. I'm saying you have to assume it will happen, and prepare for it.
3: Create a conspiracy. Interviewers are more likely to recommend someone they feel an affinity with.
While #1 and #2 are about overcoming unfair flaws in the interview process, #3 is about exploiting them for your own gain.
Your tech interviewer is probably a mostly-normal person. It's easy to forget that when they're grilling you about compression algorithms and time complexities. But underneath that piercing glare is a meat-sack of hopes, fears, insecurities, and desires—just like anyone else.
In an interview setting, the desire for belonging is the easiest to exploit. We all want to feel like we're part of the group—safe, powerful.
The maneuver for this is simple enough:
- Briefly discuss something you know your interview would like to strongly associate with, but may not actually be. Maybe it's being the most senior engineer in the org. Maybe it's working on the hardest problems in the industry.
- Associate yourself with that thing. Humbly imply that you were associated with these things in the past (without lying), and that you're excited to see what kind of similar opportunities are available here, at this company.
- Imply that the interviewer is obviously also associated with that thing. Imply that they obviously understand what you're talking about—that you're part of the same club.
With these three steps, you've created a co-conspirator—someone who shares a special, secret connection. If it sticks, they can't help but start to like you, because they've associated themselves with you, and the natural bias to to favor themselves—and thus you.
You may not want to participate in such a broken process. You may think that by playing to the process, you're somehow reinforcing it. To some extent, you are. But shy of instigating an industry-wide boycott or starting your own company, if you want to work at one of these big tech companies, you take the good—the ability to create value for millions of people, to develop and empower your teammates, to create cool things—with the bad. Your options are to ignore these realities, or plan for them.
And once you've made it, gosh darnit, make it your mission to improve things! Lobby to change the interview process, focusing on ownership, effective cross-functional collaboration (including so-called "soft skills"), and customer obsession. Take or help create interview training, especially around unconscious bias. Fix inefficiencies. Focus on candidate experience, and on align it with the outcomes you want.
But until then, tuck these tips in your back pocket, and don't be afraid to use them.