I wrote this blog post back in February, shortly after I started my new job at Alto Pharmacy. (It’s going great btw—and we’re hiring!)

At the time, I wanted to share what I had experienced during my job search, thinking it would be helpful to other developers who are looking for work. But I didn’t get around to publishing, and then COVID lockdowns started, and with so many layoffs and other changes, suddenly my post was a lot less relevant. With fewer job openings and more people looking for work, nobody should expect to see similar results to what I experienced in the fall of 2019.

But I’m gonna post this anyway. Some information is still relevant, and if nothing else, it can be a time capsule of what if was like to look for work as a software engineer in San Francisco in 2019.


The original draft of this post said, “The more similar you are, the more you can expect your experience to be similar to mine.” Now, even if you are very similar to me, your experience will probably be quite different, but I’ll leave the details here anyway.

  • I’m a backend-leaning full-stack web developer with about 4 years of professional experience (closer to 3.5 at the time when I was looking).
  • I live in the Bay Area and was looking for jobs in San Francisco and Oakland.
  • Most of my experience is with Ruby on Rails and JavaScript.
  • I was mainly applying to product companies that would be considered “mature startups”. I wasn’t seeking out startups specifically, but I wanted to work for a small-to-medium sized company, and in San Francisco those tend to be startups.
  • I’m a career changer, with an Art History degree and a code bootcamp on my resume.
  • I had been laid off, so I was looking full-time.
  • I wanted to be picky and find a company I loved, rather than get a job as fast as possible.

Application funnel

Here’s a quick breakdown of all the companies I applied to, and how far I got in the process. These numbers reflect me exiting the interview process for any reason: sometimes they didn’t want to move forward, and sometimes I didn’t.

  • Applications: 16
  • Phone screens: 9 (56%)
  • Tech screens: 7 (78%)
  • Onsites: 4 (57%)
  • Offers: 2 (50%)
  • Offers accepted: 1

Which stages were the most important filters?

As you can see, phone screens were not a significant filter—most phone screens led to tech screens. Applications and tech screens, on the other hand, were a significant filter.

This experience is in line with what most people say about phone screens: they’re not a big deal. Assuming that the company wrote an informative job description and you read it, and that you know what’s on your resume and can talk about it coherently, they’re mostly a formality.

Regarding the onsite stage, I was very close to getting three offers—the third company wanted to make an offer, but got delayed for some internal reason, and they weren’t able to get their offer to me by the time I wanted to make a decision. So, back when I was expecting three offers, or a 75% success rate, I concluded that by the time a company invites you to an onsite, they have a strong feeling they want to hire you. They’d have to, since full-day onsites are expensive for companies!

But I didn’t get 3 offers. That was a good reminder that there are a lot of reasons a company might not make an offer, even if they want to hire you.

Which applications led to phone screens?

I noticed a really interesting pattern here:

Years of experience was not a strong predictor of whether I moved forward with a company. Of the companies that listed a desired number of years of experience, out of the ones who moved me forward to the phone screen stage, 50% asked for more experience than I had. Out of the companies that rejected me, only 20% asked for more experience than I had!

On the other hand, tech stack was a strong predictor of success. Of the companies I moved forward with, 75% were a very good match for my technical experience, meaning that their primary frameworks were Ruby on Rails and React. The others were consultancies who work with a variety of languages but have a strong Ruby focus. Of the companies who rejected me, only 29% were a very good fit technically.

How long did it take?

In total, there were 16 weeks between my last day at Redbubble and my first day at Alto. That includes some downtime on either end, and it only took 11 weeks to get from sending my first application to accepting Alto’s offer. It also includes a 2 week break for the winter holidays, so at another time of year, it may have only taken 9 weeks. Now, of course, it would likely take longer.

What would I do differently?

Before COVID, I wrote this:

If I were starting this process over again knowing what I know now, I would aim to roughly replicate the numbers I reported above: around 16 applications, hopefully leading to at least 8 tech screens, 4 onsites, and 2 offers.

Now? Who knows? Probably more than 16. Maybe 24? 32? I’m not that clued in to the landscape right now, I just know it’s worse.

Regardless, one thing I would change is pacing. When I started applying, I chose to apply to 3 companies a week. I did this because it’s what California’s Employment Development Department tells you to do, and it seemed like a reasonable pace to me at the time.

The problem with spreading things out this way is that your various applications’ schedules are not aligned. I had a great onsite with one company while I was at a much earlier stage in the process with some other places I was interested in, and I had to rush things along with them. I think it would have been smarter to apply to all 16 (or however many) companies in one big batch, and try to keep their schedules aligned throughout the process.

Based on what I experienced, I devised this ideal schedule for a hypothetical future job search. I still think the rough outline is valid, though the actual numbers probably aren’t:

  • 2+ weeks to relax
  • 1 week to think about what I’m looking for and update resume
  • 1 week to assemble list of companies to apply to
  • 1 week to apply
  • 1 week for phone screens
  • 1 week for tech screens
  • 2 weeks for onsites
  • 1 week to consider offers
  • 2 weeks vacation before starting

What does this mean for my budget?

Conventional personal finance advice says that your emergency fund should contain 3-6 months’ expenses.

According to my experience, 4 months is the right amount.

According to my hypothetical schedule, 3 months is enough.

Pre-COVID, I decided that 6 months was a good target for my emergency fund, to allow some extra wiggle room just in case. Now, 6 months definitely seems reasonable.

Pro tip: I named my emergency fund category in my budget “Funemployment”, which made it a lot more exciting to stash money there. It helps me think of it as something I expect to enjoy using, rather than something I hope to never need.