SWE Interviews: Introduction

Real offer data from my job search, including 4 offers that were more than double my current comp.

This is the introduction article for a six part blog series detailing my software engineer (SWE) job search experiences, reflections, and data in 2020.


  1. About this blog
  2. About me (and why you should trust me)
  3. 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

Target audience

  • 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 non-SWE role I recommend reading at least the articles for getting started (Part 1), applications (Part 3), and negotiation (Part 5).

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.

Starting point

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.

Interview results

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:

My background

  • 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.

My goals

  • 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




Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

5 Low Cost Quick-Start Teams for Defina

How to use Post Processing in Unity

Self-sizing Cell Using Auto Layout and Storyboard

Models in Django

5GC deployment on AWS Cloud

The trend of deploying core network on cloud

Getting Started with Ruby on Rails: build a web app with Ruby

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Anonymous Dingo

Anonymous Dingo

More from Medium

CDC Chronicles

Peer Interview

Your Personal Brand -Eassy Week 18

Inside The Internships: Rubrik