Last year, in a span of about two months, I managed to get interviewed for thirty five different Senior Software Engineer positions without filling out a single application. I made it to the final stages with seven companies, received four offers, and eventually accepted an offer that doubled my previous total compensation! In this post I'll explain how I did it.
The fall of 2021 was an insanely hot job market (and 2022 is just as hot, as of this writing). Between the "Great Resignation", massive shift to remote work, and software continuing to eat the world, the demand for software engineers is sky-high. Senior software engineers have always been in high demand, but with almost every position being 100% remote during COVID and many likely to continue post-pandemic, senior engineers are even more coveted by companies unwilling to put in the work to mentor junior developers (lame). If you have a few years of experience and haven't had a significant pay raise recently, now is the time to explore the market.
I was extremely happy with my previous position, but I felt like I had hit a ceiling for growth. The comfort of my job was a good fallback and so I was only willing to accept an offer that was a dramatic jump in both compensation and career growth opportunity. I wasn't desperate. Without any stress in my day job, I had a higher bandwidth for the stress of interviewing. I wanted to line up multiple offers at once, to ratchet up the leverage and negotiate the best compensation possible. With these goals in mind I set out on my job search.
Avoiding the Job Application Black Hole
The typical job application process is a complete waste of time. You have to submit the same basic form, over and over again, usually without ever getting a response, with the hope that you are lucky enough to stand out among the hundreds of other applicants. Each application takes ten minutes or more because:
- most of the time you have to enter everything manually, despite also uploading your resume
- you can't copy and paste because each line is a separate form field
- you're still supposed to craft unique answers for each job posting, in hope of getting past the initial screen
If you're lucky, you'll get a quick rejection. Most of the time however, you won't hear back until long after you've already accepted an offer somewhere else, if you hear back at all. The entire process is mentally and emotionally draining.
This time I was inspired by the course: How Social Media Can Land You Your Dream Job by Taylor Desseyn. I decided it was time to apply everything that I had learned and flip the job application process on its head. I wanted to have the jobs come to me.
Following Taylor's course, I updated my Twitter and LinkedIn profiles with a good picture, a nice looking banner with some additional info, and tweaked my bios and headlines to match the keywords I knew recruiters would be looking for. My career history was up to date, with fairly decent examples of positive outcomes my work generated. I had over five hundred connections already, probably mostly recruiters, but also anyone I had worked with previously.
Then I turned on "looking for work" on LinkedIn and the flood gates opened. As a software engineer, I have been messaged by recruiters on a regular basis. But nothing like this. I went from a couple of messages per month to 15-20 per day.
Note: my experience may not match yours, even if you follow the same steps. The job market might be different by the time you read this. I had over twelve years of experience in Front End Development, which is particularly in-demand at the moment. I'm a white male with a European last name. All these things likely helped me skip ahead in addition to the proactive steps I took.
Using LinkedIn Messaging As My Job Portal
With so many messages to respond to, I had to get systematic. Initially, I just said yes to everything that wasn't an immediate turn-off (like Amazon). But as I started doing interviews, I had to be more selective with my time. Before I even started, I knew that my ultimate goal would be to work for a public company (something I had never done before). But, considering I didn't have a college degree and I wasn't up to date with LeetCode algorithm trivia, I thought that might be impossible. So I came up with a criteria that could fit both private and public companies:
- $200K base salary
- 25+ days of PTO
- 100% remote now and forever
- 401K with some matching
- maximum 40 hour work week
- minimal travel (less than 10%)
- 100% medical/dental/vision coverage and some dependent coverage
Initially, I kept this to myself. I was following the negotiation strategy of avoiding anchoring yourself too low by naming a number first. Eventually though, I started giving this list to recruiters if A) I hadn't heard of the company they were pitching or B) it didn't sound like a good fit from their initial message. This way, I wasn't completely rejecting potential fits, but I was further streamlining my pipeline by skipping companies that couldn't get anywhere close to matching my criteria. I always responded quickly, even if it was a simple "no". LinkedIn makes this a simple two-click process by automatically generating a polite response for you. I've heard that the time to respond can affect your ranking in LinkedIn search results. Either way, most recruiters appreciated the timely response.
Rolling the Snowball
I was able to build momentum with each interview I accepted. My schedule started to fill up with initial screens and eventually middle and late-stage interviews. I openly shared this info with each recruiter, which led to quicker scheduling going forward. Instead of waiting weeks to go through multiple interview stages, I was able to get it scheduled and completed within a few days.
In the end, I made it to the final stages of interviews with seven different companies. Of those, four gave me formal offers. There were many others along the way that despite being great companies and opportunities I would have died for earlier in my career, I declined to move forward with because I already had great offers.
Getting Multiple Offers
It took me twelve years, but I finally managed to land multiple offers at the same time, including my first offer from a public company (where I now work). It’s partly a culmination of my experience, but also a sign of the times. Never in the past would I have been able to skip so many applications with recruiters. I would have burned out in the process of applying. Instead, I had to turn down many interviews and only really burned out towards the end of multiple half-day “virtual on-sites”. So I only started slowing down when I had multiple final interviews completed.
Having competing offers skyrocketed my total compensation past what I was expecting. My first couple offers were basically my current salary plus twenty percent. However once I had a public company in the mix with an offer that included RSUs, the overall compensation jumped significantly. Two companies competed to seal the deal, I set the bar high, and ultimately the best offer came from what I felt was the best opportunity.
Lessons Learned
I wish I had done more preparation. More interview practice, more studying of algorithm questions, graphs, and big O notation. I failed several interviews for companies that I was really interested in because I just wasn't up to date with this stuff.
Some of the best feedback I received was:
- The first item on your resume is what everyone is going to read. They might go a little further down the list, but not much. So make sure the first couple accomplishments under your most recent job are what you want to talk about. I had listed a WordPress plugin I developed (in React). Several interviewers assumed my focus was on WordPress development, not JavaScript.
- I was told via an external recruiter that one company thought that I didn’t sound technically experienced enough. Despite having twelve years of experience and coding daily, I came across as more of a manager than an individual contributor. This is partially because my previous two positions were in management, so I think people already made assumptions about me and I didn’t do enough to sway their opinion. I realized I needed to go in with more technical details (depending on the audience of course) and show my enthusiasm for coding.
It’s important to be able to craft a narrative about your experience, whether it’s a decade of professional experience or your first job. Considering how little time you have to explain your entire life story, it’s important to be able to condense important details into an arc that is interesting to listen to. Every question you answer should reinforce that story, whatever it is.
Your narrative should also be targeted towards the role you want, not your complete history. It's okay to remove certain technologies from your resume if you haven't used them in years and don't plan to in the future. For example, I don't typically include PHP on my resume anymore, even though I spent the first three years of my career developing with it. I wouldn't want to take a PHP job now, nor would I would be capable of taking about any specifics.
Ultimately, working with recruiters via LinkedIn messaging made this the least stressful job application process I've ever experienced. Instead, I ended up being exhausted by the interview process. But I learned so much from each one. I'm really happy how it all turned out and I hope this helps you in some way.
Follow me on Twitter for more advice on job hunting, interviewing, and salary negotiation.