My journey through a full-time SWE job search
Last week, I finished my 2+ month full-time job search. It wasn’t easy. But it also wasn’t particularly hard. It did however take lots of time, lots of effort, and lots of thought. Here I want to walk through my process for both posterity and the optimistic thought that it might help you, reader, in a future search of your own.
My name is Hamilton and I make money as a software engineer. This is my story.
Right-clicking on the chart and opening in a new tab might make it a bit easier to read
My search consisted of ~2 months of active search and perhaps a month or so of passive / irregular thought / actions before that. This is a lot of time to spend on one thing and is roughly consistent with data I got from my peers about their own searches.
Knowing this (and looking back now I can confirm) I thought it was a good idea to list out the things I cared about / wanted to focus on in the next step of my career. These can then be used to compare opportunities against what you actually want / value as well as compare against the opportunities at your current company to vet whether incurring the moving cost is even worthwhile. I found that having these goals readily available helped to focus my search as well as remind myself why I was going through this effort (very useful during the frequent weeknight study sessions).
Your own goals will likely be different, but here are mine for posterity.
So I had some goals that I wanted to pursue in the next step of my career but you’ll notice that most of them are really around problems areas and don’t really prescribe any qualities about an org that would be able to furnish them. This was good in that there were a ton of places that could give me these opportunities. This was bad in that there were a ton of places that could give me these opportunities.
So I kinda just started looking everywhere using some basic filtering to weed out deal-breakers. Those deal breakers for me were 1) if I couldn’t stay in NY and 2) if they were known for having a bad culture / bad tech. Tbh this didn’t get rid of that many cos but it was a start.
One benefit of casting such a wide net was that I could hedge my bets against opportunities and leverage all the prep work I was doing across them to effectively increase the value of the average worst case scenario and simultaneously increase the average best case scenario. A win-win at the cost of marginal additional load for each additional opportunity I decided to pursue (as most everyone interviews in approximately the same way).
I went about this opportunity search in a few ways:
Tbh, if we were doing this post chronologically, this section would’ve come before finding opportunities but we’re not. I think prepping should start before finding opportunities (or at least before reaching out) because 1) prep work can take a lot of time, especially when you have to do it on top of other responsibilities / priorities and 2) many cos will have a pretty quick turnaround which means starting your search before your preparation can lead to being caught off guard.
I’ve already written a post on my preparation process so I won’t rehash it here. It’s got all the deets though so go read my SWE interview guide if you’re curious.
My guesstimates are that I spent ~53 days and ~1.5 hours each of those days studying. There were definitely some days where I didn’t study at all but others I was studying 6+. So, in total, I’d say I spent about 79.5 hours just studying for interviews.
The interview process itself takes a lot of time and energy. There are generally 3 kinds of interviews 1) online phone / code challenges, 2) on-sites, 3) take-home tests. Take-home tests are kinda just homework so we’ll focus on 1) and 2) going forward. In addition to the actual interviews, there’s a good amount of planning that goes into the scheduling and matching process, tons of emails and phone chats.
Here’s the breakdown from my process by type:
And roughly the amount of hours spent on those, in aggregate:
So I spent around 15.5 hours on chats, 15 hours in interviews, 40 hours in onsite interviews, and about 3 on takehomes. In total, this means I spent ~73.5 hours in interviews or in the process of scheduling interviews.
Most processes will have you first go through 1) in order to screen candidates and then if you pass that section go to 2) which usually consists of 3-5 interviews on various subjects - data structures and algorithms, system architecture, and behavioral. Each interview runs ~1 hour and you’re going to use that entire time either problem solving or talking. So it’s very active and there’s really not that much time to zone out. As such, I think it’s important to know that these days aren’t going to be easy and to do whatever prep works for you beforehand so that you put yourself in the best place to do well.
For me, good prep is just sticking to my normal routine.
That being said, even with good prep and staying healthy, it’s still possible to burn out.
My rule of thumb was
There were definitely times where it wasn’t possible to stick to these rules but I found it helped to keep my schedule manageable and to prevent burn out from one interview to the next.
After doing this process for several weeks, I finally started getting some offers. This posed the dilemma of how I choose between them. A good problem to have to be sure, but not a particularly easy one.
Of course I’d made my goals at the beginning of this process and I was able to use that to distance a few from the pack but at some point there were still options that checked all the boxes. From there, I felt I had to go deeper to better differentiate. I did this in a few ways:
Last Friday, I came to a decision and thus concluded my 2019 job search.
Woo, yeah! I’m done, finally! AHHHHHHH! I can read other books, do other things, stop dreaming in DS&A…
Well that’s it, the end of my search and my funemployment (which I’m kind of glad to be done with). It was an interesting process and I learned a lot but I’m excited to (hopefully) not go through it for another few years.
In the end, you can’t know if you’ve made the absolute best decision. But that’s life. What you can do coming out of the process is know that you made the best decision for you with the knowledge at hand. That’s enough. It must be, because no one can do better.
In total, I spent about 153 hours in my interview process. I did some things that certainly bloated it a bit like casting a wide net and taking that vacation right in the middle, but I think it’s still pretty average in the industry. For reference, I spent ~157 hours on my first job search which younger me calculated as approximately equivalent to the number of hours you’d be in lecture taking a full 12 hour course-load over a semester (at 156 hours). I think I’m smarter than younger me, but he probably got those numbers ~right.
If you’ve got any questions / comments, you can add them here or ping me on LinkedIn or use another way to get in touch. If you just want to see what I’m up to, you can read about it now or subscribe to get periodic email blasts containing just that. If not, that’s cool too and thanks for reading!
Hi I'm Hamilton and I wrote / built this! I like doing lots of things, but mostly I like to build (and then share those buildings). Some things I'm currently building: art, software, and prose. To stay up-to-date with my latest buildings, subscribe to my email list or follow one of my many other accounts. #buildit #shipit #justhamit