Reflecting on my recent job search
Last year, after finishing my Master’s degree in early August, I spent several months looking for a software engineering job. It was a grueling process, and I have some thoughts that I’d like to remember next time I throw my hat in the ring.
Background
I started my job search with about 2 years of full-time industry software development experience, plus another 1.5 years of part-time industry experience, some modest personal projects, and two computer science degrees (Bachelor’s and Master’s). I had spent much of my Master’s degree as the lead software developer for an Android app that was not yet in production use but was intended to be.
I initially had my sights set on a senior software engineer role because I’d worked as a software engineer II in the past and had since finished a graduate degree. I wasn’t sure if companies would consider me experienced enough for senior-level roles – how much is a Master’s degree really worth to them? – but I figured I’d try. As the rejections piled up, I shifted to applying to more software engineer II positions and seemed to have a bit more success. Funnily enough, the employer I landed with started interviewing me for software engineer II, realized I was doing well in their interviews, and hired me as a senior software engineer after all.
For the first month or two I applied exclusively to remote roles. Eventually I relaxed my expectations and started applying to hybrid roles in my metro area. In the end, I once again got what I’d wanted from the start and landed a fully remote job.
I was most interested in working for a small company and spent lots of time browsing wellfound.com, topstartups.io, and startup.jobs for listings. I also used LinkedIn, and I tried to search for jobs on Indeed but never actually found anything worth applying to there. For most jobs I found the posting on a third-party site, then found it on the company’s jobs page and applied there directly. (In this case, I did have to settle for working for a big, albeit not massive, company. You win some, you lose some.)
Cold, hard data
Let’s start with some numbers to get a detailed view of what my job search was like. (If this kind of analysis bores you, feel free to skip straight to my more qualitative reflections at the end.)
Throughout my job search, I kept track of the jobs I had applied to and what their status was in a simple text file. At some point, tired of submitting applications, I used a bit of Python to turn this text file into a graph showing how many applications were in each of the following categories:
- accepted: they made me an offer, and I accepted it
- declined: they made me an offer or invited me to interview, and I declined
- offered: they made me an offer, and I had not yet made a decision
- interviewing: they invited me to interview
- rejected: they rejected me
- expired: they hadn’t responded to my application after 60 days
- pending: they hadn’t responded to my application, and I had applied less than 60 days prior
Here’s the chart:
As you can see, I began applying to a few jobs as early as April but didn’t really get started in earnest until mid-August, after completing my Master’s program. Over the next 10 weeks, I applied to over 10 jobs per week on average, eventually reaching a total of 119 applications. The vast majority of those applications – over 90% – rejected me without an interview or simply ignored my application. Eight employers offered me an interview; three of the interview processes ended in rejection, three in an offer, and I declined two before reaching the offer stage.
Of those who explicitly rejected me without an interview, the following chart makes it clear that most did so within a week or two. There’s also a long tail of employers who took longer – two, even three months – to let me know that they weren’t interested.
What about the eight employers who invited me to interview? Again, most did so within a week or two, and then there’s another tail extending out to two months.
A few more tidbits that aren’t immediately obvious from the above charts:
Each of the three employers that offered me an interview and subsequently rejected me did so after a single interview (and a take-home coding assessment in one case).
The eight applications that resulted in an invitation to interview came from a mix of employee referrals (one), cold applications (five), and personal connections (two). Both personal connections and one cold application ended in job offers.
Of the four referrals and two personal connections that I took advantage of in the process, three resulted in interviews. The other three referrals were both with companies that were large and lacking in much of a formal referral process.
Reflections on the data
So what do we learn from this of data? Obviously the sample size is way too small to draw any real conclusions, but I’ll make some general observations anyway. Basically, my experience confirms much of the conventional wisdom about the job search process:
Most applications will be rejected. Maybe I’m not a great candidate, or I didn’t prepare my resume well, or it was just a tough job market, but I think this conclusion will hold true in the majority of cases.
If an employer is going to respond to an application, they’ll probably do it within a few weeks. I put my cutoff for marking an application as “expired” at 60 days, but 30 days seems more realistic in most cases.
The interview process is likely to either end early in rejection or proceed all the way to an offer. I do fairly well in technical interviews, so perhaps others would experience more mid-process rejections.
Who you know matters. I did get one offer from a cold application, but the applications that came with referrals or personal connections almost always moved more quickly and had more favorable results.
Like planting a tree, the best time to apply for a job was yesterday. The whole process is just slow. Even the fastest offer that I got took 17 days from application to offer, and the earliest start date they could offer me was more than two weeks later. That’s over a month from applying to starting, probably six-plus weeks from applying to getting paid (assuming bi-monthly paychecks). And I didn’t apply to that job until seven or eight weeks into getting serious about submitting applications. I should have started putting in lots of applications at least two to three months before finishing grad school to avoid a gap.
Qualitative reflections
Of course I have some thoughts that come from my qualitative experience as a job seeker, too. These are perhaps the most worth remembering in the future.
Being jobless when you don’t want to be jobless is hard. I was fortunate not to have any financial pressure during my job search, and the fact that I wanted to get a job but just kept getting rejected was emotionally difficult anyway. On good days, I’d brush off rejections as part of the process and accept that it was largely a numbers game. But on bad days, I’d feel down on myself and wonder if I actually had the skills and experience to land a decent software engineering job. I now have a new level of sympathy for folks who struggle for months or years to find decent work.
Unpaid take-home assessments that require more than an hour or two are not worth doing. One of the companies I was interviewing with asked me to build a web app to showcase my skills after the first interview. I was jobless, and therefore had time and motivation, so I spent around 20 hours on it. I emailed them a link to the code, and then heard nothing… for a month. Eventually they sent me a generic “thanks for applying but you weren’t the right fit” rejection email. Maybe a better developer would have finished the assignment in just a few hours, but it felt too big. I won’t be putting that kind of time into a single job application again; it’s too much investment for what is likely to be zero return.
Very few jobs look appealing from reading the job posting. I struggle to push myself to keep applying to jobs because I just don’t get excited about them. As I progress through the interview process, the excitement builds a bit more. I’m not sure if my feelings shift because I’m meeting people from the company and getting a better picture of what they do, or if I just react to the fact that they’re showing interest in me, or if I just get excited that I might actually be able to stop looking for jobs. Whatever the reason, I had to keep reminding myself that not loving the job description didn’t mean I would hate the job.