SWE Interviews: Introduction
This is the introduction article for a six part blog series detailing my software engineer (SWE) job search experiences, reflections, and data in 2020.
- About this blog
- About me (and why you should trust me)
- Background and goals
1. About this blog
- To share my story with friends & family
- To consolidate my interview preparation advice
- To summarize interesting data trends I collected while interviewing
- Anyone in a software related role (SWE, SRE, PM, TPM, QA, UX, etc.) interested in making a change
- Anyone who hasn’t played the interview game in a few years
What to expect in this blog
Part 1 — Getting Started is a starter kit with the blog’s most important resources.
Part 2 — Preparation details my interview preparation strategies and recommendations.
Part 3 — Applications explains my job tiering system and reinforces the importance of referrals.
Part 4 — Interviews summarizes spreadsheets of data I collected throughout my interviews.
Part 5 — Negotiation illustrates the power of competing offers.
Part 6 — Time and ROI wraps up the series with some back-of-the-envelope calculations on the time I invested. Spoiler alert… it was worth it.
How to read this blog
If you are targeting a SWE role, or if you are just curious about the whole thing, I recommend reading all 6 articles in order.
2. About me (and why you should trust me)
When someone says they are happy at their job, that usually means they are either 1) genuinely happy, or 2) content enough to stay put.
I had been with the same employer since I was an intern in 2013, and I was content enough to stay put. My coworkers were great, the job was alright, the pay seemed decent (or so I thought). I was dangerously comfortable and the thought of interviewing sounded like a lot of work.
My original new grad offer was decent at the time, but over the last 6 years my earning potential as a SWE had increased much more significantly than what I was actually achieving. My modest internal promotion increases and annual comp adjustments were nothing compared to how much other companies were willing to pay an experienced SWE today.
I had done one interview ever, which was 7 years ago. I didn’t know where to begin with studying for interviews. I didn’t have a computer science degree, I couldn’t reverse a linked list, and I had never heard of FAANG — why would anyone hire me? The uphill battle of preparation appeared so insurmountable that for years it held me back from even getting started.
Three steps to success
Step one was to square up and face the elephant in the room: I had a long way to go, and it was going to take time to get myself in interview shape. Like learning any new skill, progress might be slow at first.
Step two was to build a plan (detailed in Part 2). I started by reading interview experience articles to learn what I needed to do. I took an honest look at myself and profiled my current interview readiness state, and I built a detailed plan to improve each dimension of my interview readiness profile until I reached my desired interview readiness state.
Step three was to stop making excuses and get started.
My preparation helped take me from zero interview experience to landing 13 offers, including 4 offers that were more than double my current total comp!
These results may look miraculous, but I assure you they are reproducible. As of April 2021, I have already seen several friends achieve similar outcomes by follow my prep plan. I wouldn’t have spent all this time writing up an 8,000 word blog if I didn’t fully believe it could benefit even more people… and I don’t think you can call going from zero interview experience to 13 offers a fluke.
A personal note
I truly hope this blog does not make readers feel poorly about themselves or what they have achieved so far. Instead, I hope this blog will be used as an inspirational tool to accomplish the seemingly-impossible.
3. Background and goals
This blog is solely based on my own experiences, and my intention is not to preach a one-size-fits-all model especially in terms of preparation and outcome. Your situation will have somewhere between 0% and 100% overlap with my situation, so take my advice with a grain of salt and create your own plan tailored to your background and your goals.
Specifically, we may have more overlap if our situations share the following similarities:
- 5+ years of experience (YOE). If <5 YOE, system design may not be required — refer to the table in Part 1 for a detailed breakdown of interview types.
- Looking in Seattle (or similar market). Big market means more opportunities.
- Strong local professional network. Referrals are a huge asset, though not required.
- Native English speaker. All interviews may be significantly more challenging otherwise.
- Interviewing in Java. Other languages work too, but Leetcode’s discussions and solutions are most commonly Java. If interviewing in another language you may need to find some supplemental language-specific online resources.
- Targeting mid/senior level. This is a pretty broad range, think Google L4/L5 or Microsoft 62/63.
- Targeting backend or full-stack individual contributor (IC) SWE roles. Your prep strategy may look somewhat different if targeting frontend or non-IC roles, and will almost certainly look significantly different if targeting non-SWE roles.
- Seeking a new job that gives high satisfaction in the areas most important to me. My top 5 decision factors (in order): overall happiness, team/role fit, career growth potential, total comp, and company culture.
Continued: Part 1 — Getting Started