Four months ago, I quit my software engineering job at Redfin.

Over the following months, I interviewed with 20+ companies, completed 12 onsites, and received nine software engineering offers from companies including Google, Dropbox, Amazon, and more:

Companies I received offers from

To be clear--I don't consider myself an exceptional software engineer. Not by a long shot! Rather, I believe technical interviewing is a skill that one can develop, like any other.

In this post, I'll share my learnings and advice from the journey.

A leap of faith

Let's start at the beginning. Why did I quit my job at Redfin then begin my job search, rather than interviewing while working?

The answer is time. While working 40 hours a week, I didn't see how I could fit in the studying, the coding challenges, the phone screens--much less the onsites! For a decision so important, it felt strange to only be able to consider a handful of companies for my next opportunity.

Quitting my job was the single most impactful reason I was able to get the offers that I did and find an opportunity that feels truly special.

Think about it. A typical job is 40 hours a week. We have 15 waking hours in a day, 105 hours in a week. The typical job takes up close to 40% of your time every single week. That's huge. For most, it's the single largest area where we spend time. I wanted to invest significant time and resources into finding the best opportunity. Dedicating only nights and weekends to my job search felt like a disservice.

There were other factors at play, of course. I don't need sponsorship to work, so I was able to be unemployed for some time. I also saved up 1-2 years of expenses, leaving me a safety buffer in case of emergencies. I don't have any dependents or people relying on my income so I could make the decision independently.

Quitting my job was the single most impactful reason I was able to get the offers that I did and find an opportunity that feels truly special.

I thought the most valuable part of quitting would be able to dedicate more time to my studying for interviews.

It wasn't.

The most valuable part was having the time and space to reflect on my life and my goals. The time I had to explore my passion and interests was critical in understanding more about myself. I plan on taking a few months off during future career changes as well.

Pathrise

As most software engineers know, technical interviews are rarely similar to our day-to-day work. It had only been about three years since I had last interviewed, but I wanted to knock my interviews out of the park. The reason was simple: technical interviewing skills are the single most critical element of the software engineer interview process at most companies.

Pathrise helped me improve my technical interviewing skills, negotiate a competitive compensation package, and referred me to other YC companies.

I was going to prepare the typical way--Cracking the Coding Interview, and lots of LeetCode problems, but then I found Pathrise.

Pathrise, a YC startup, is a career accelerator for the tech industry. They provide 1-on-1 behavioral and technical mentoring, eight weeks of interviewing workshops, negotiation help, and more. When one of their employees reached out to me, to be honest, I was dubious. Their primary model is an income share agreement (ISA) of 9% of your first year's base salary.

9% was too much for me to justify. If I had gotten my previous job through Pathrise, I would have paid in the realm of $10k. I was hoping for a salary bump in my next job, so $10k was the lower end of what I'd expect to pay with the ISA.

However, Pathrise also offered an upfront flat fee option of $5500. I found that much more appealing. It might seem a little crazy to consider a program so expensive--but it was a pretty easy decision for me to make.

It's difficult to understate how much my next job mattered to me. If Pathrise helped me get one additional offer, helped me negotiate my salary by 5% more, or helped me find the right opportunity, it would easily be worth it.

To clarify--I don't think most engineers need to go through Pathrise. There are more than enough resources available. However, I believe it was one of the best decisions I made in my job search. Pathrise helped me improve my technical interviewing skills, negotiate a competitive compensation package, and referred me to other YC companies. I'm certain the interviewing skills I've now developed will serve me well throughout my career.

In particular, Derrick, Pathrise's CTO, Brian, my technical mentor, and Olivia, my behavioral mentor, were all committed to my success. I'm very grateful to them!

Interview Overview

So, with that, my applying and interviewing began. First, an overview of my interview processes:

My interview stages and conversions

I left out companies that I applied to but never heard back from. Safe to say, there were plenty of those.

Look at your job search like a funnel. At each stage, you want to maximize converting to the next stage, from recruiter phone screens all the way to the offer.

Look at your job search like a funnel. At each stage, maximize converting to the next stage, from recruiter phone screens all the way to the offer. For example, I converted 100% of my recruiter phone screens to the next round, 96% of my technical screens to onsite, and 75% of my onsites to offers.

These conversion rates surprised me. They were multiples higher than the last time I interviewed a few years back.

I ended up not going onsite with 12 companies after passing their technical interview. On that note, make sure you continually evaluate whether you would work at a company. If the answer is no, let them know as soon as possible. The recruiter won't be mad--you're saving everyone time that would otherwise go to waste.

General Interview Advice

  • Be grateful, genuine, and considerate. Recruiters, engineers, and hiring managers are busy people. Be on time for interviews. Express your gratitude at the beginning or end of the interview. Thank the interviewers for their time.
  • Be enthusiastic. For every company I spoke to, I always mentioned why I was excited about the company. My reasons included being:
    • a user of the product
    • passionate about the problem the company is solving
    • personal connection to the company's mission
  • Carefully evaluate what matters to you, then find companies that exemplify those values. KeyValues is a fantastic resource for this. Lynne, the creator, also made "culture queries." that give you questions to ask companies based on what you value. They're a great resource. If you want an example, here are some questions for the values I care about.

Third-party Recruiters

Some of the jobs I applied through were through third-party recruiters. Third-party recruiters are outside recruiters who partner with companies to find candidates. They usually receive a percentage-based commission (ranging from 15-25%) of the first year's salary if a company hires a candidate they found.

I was skeptical of third-party recruiters. They reach out to me on LinkedIn often. However, like any other occupation, there are good ones and bad ones. On the one hand, there's a third-party recruiting company that won't stop trying to contact me, even though I asked them to stop months ago (Grr!). On the other hand, the offer I ended up accepting was through a third-party recruiter, so they are certainly worth talking to.

I will recommend one third-party recruiting company: Triplebyte.
Triplebyte is amazing. If you pass their comprehensive interview process, they match you with companies on their platform. After a 30 minute chat with the companies you match with, you can go straight to onsite with those companies. Furthermore, they give you detailed feedback after the interview, whether you pass or fail. It's invaluable. Some positive feedback I received:

Positive Triplebyte Feedback

And constructive:

Constructive Triplebyte Feedback

This feedback showed me I needed to focus on my system design skills. I put in the work, and it showed. When I interviewed a couple of weeks later at Flexport, the system design interview was my strongest one.

Triplebyte has a lot of companies on its platform, but they skew towards the smaller end. Facebook, Stripe, Dropbox, etc. are all on Triplebyte, but most of the matches I received were from smaller, lesser-known companies. That's not to say they aren't compelling opportunities! For example, Triplebyte connected me to rocketship.vc, which is a pretty interesting VC firm that hires software engineers.

Even better, Triplebyte assigns you a "Talent Manager" who helps guide you through their process. My talent manager, Krista, was outstanding. For example, when I was talking through my offers with her, she gave valuable, unbiased feedback and advice--even though I was leaning towards a company that I didn't find on Triplebyte.

Technical Interview Advice

Many of these are paid courses. Some were available to me through Pathrise, but I do think they're worth the price. If you're willing to spend more time studying and searching, I'm sure you can find similar content at no cost.

  • Practice as many interviews as possible. There are some fantastic resources for practicing. My favorite is interviewing.io. Their platform connects you to senior software engineers who interview you and then immediately provide honest feedback about how you did. You can also interview with real companies on the platform, and if you do well, go onsite. Aline, the founder, has been doing some amazing work--her blogposts are illuminating. Also, she gave me an invite to the platform when I cold-emailed her a few years ago, and I've been grateful to her ever since!
  • Pramp is another option; however, it connects with you with other job-seekers who don't necessarily have a lot of interviewing experience.
  • For the technical question, don't rush to coding. Take your time to understand the question, work through some examples with your interviewer. When you think you're ready to code, confirm with your interviewer, give them an overview of your plan, and then proceed.
  • Over-communicate. Just talk through your thought process out loud. Not only does this help the interviewer understand your thinking, but it also helps them keep you from getting too far off track.

Recruiter Screen Advice

The recruiter screen is usually the most straightforward to pass. As noted above, I was able to convert every single recruiter screen to a technical screen. You should:

  • Research the company. Spend at least 15 minutes understanding the company's mission, work, and recent initiatives. This is crucial! For example, when I was talking to my Dropbox recruiter, I mentioned the various companies I was in the process with. Reasonably, the next question he asked was, why Dropbox? Since I had done my research and identified why I thought Dropbox would be an interesting opportunity, I was able to answer this with ease.
  • Practice your elevator pitch. A 2-minute overview of (a) your background and experience, (b) what you're looking for in your next role, and (c) why you're interested in the company. Continually refine it based on questions recruiters ask you. In one pitch, the recruiter said that I had covered practically everything she needed to know--success!
  • Share your timeline and any notable companies you're interviewing with or have offers from. Interviewing with prominent companies provides positive signal for your competence. For example, when I told my Google recruiter my timeline and other companies I was interviewing for, she had me skip the phone screen and go straight to onsite.
The technical screen is a critical stage. With onsites, you can get an offer even if you don't perform well in one or two interviews. With technical screens, if you don't do well enough in one, you usually won't get a second chance.

Technical Screen Advice

The technical screen is a critical stage. With onsites, you can get an offer even if you don't perform well in one or two interviews. With technical screens, if you don't do well enough in one, you usually won't get a second chance.

  • If you know who is interviewing you, look them up on LinkedIn. Check out their website and blog posts, if available. These are a great way to connect with your interviewers.
  • Research the company on Glassdoor so you know what to prepare for.
  • Have one or two questions prepared at the end of the interview. Remember, just as much as the company is evaluating you, you should be evaluating the company. For example, I only moved forward with half of the companies I could have for the onsite stage. I chose which companies to continue in the process with based on my interview experience and perceived fit with the company.
I spoke to a company's CTO and mentioned I had listened to a podcast he had spoken on. He was immediately impressed. More importantly, it gave us a common starting point and led to a more in-depth, more interesting conversation.

Onsite Advice

If you've made it this far, you should be proud! It's a significant investment for the company. In most companies, this is the last stage before an offer! Tips:

  • Schedule these in reverse order of how excited you are about the company. Also, try to schedule larger companies earlier--they usually take more time to get back to you.
  • Schedule onsites over as small of a period as you can--it helps with offer deadlines. There was one week I had four onsites back-to-back. It was exhausting but worth it.
  • Ask to use a laptop, rather than the whiteboard. I don't know about you, but I have terrible handwriting. Not to mention, I just don't enjoy coding on a whiteboard. I brought my laptop and used it in just about every technical interview, and I honestly think I would have done worse had I used the whiteboard. Using a laptop also makes it quicker to write code, and managing time is a critical component of interviewing.
  • Relax! It's easier said then done, and it helps if you've already received an offer to take the edge off. As I picked up steam, I became more and more confident in my skills, and this was undeniably a factor in converting onsites to offers.
  • Come with questions for your interviewers. You can refer to the KeyValues link above for a good starting point.
  • Use the company's product if you can! Try to think of ideas to improve it. One company even gave me a demo account to use.
  • The smaller the company, the more important it is to spend time researching them. This is important because these companies care about your passion and interest. I looked up the companies, their founders, and my interviewers on Youtube, a podcast search engine, and (of course) Google. I spoke to a company's CTO and mentioned I had listened to a podcast he had spoken on. He was immediately impressed. More importantly, it gave us a common starting point and led to a more in-depth, more interesting conversation.

Results

So, you've interviewed with some companies, gone onsite, and heard back from them. Now what?

First, I want to mention something important. Your job as in interviewee is to do your best. After that, the decision is out of your control.

There was one company I was particularly excited about. I interviewed with them over 2+ months, conducting no less than 11 (seriously, 11!) interviews with various employees. The recruiter even told me I had done well throughout the process.

But I didn't get an offer.

They had reduced their planned headcount for 2020, and they couldn't hire me.

I won't lie--it hurt! I was truly excited for the role and company.

If this happens to you, recognize this: there's nobody to blame. Especially not yourself. The best thing to do is move on; there's an abundance of opportunities out there, and any one of them could be the ideal one for you.

What's Next

At this point, I had finished up my interviews, received 9 offers, and gotten the compensation details for each. It was an exciting time, and my favorite step of the process–I needed to negotiate, decide on the best opportunity, and sign!

This post is continued here.