A software job search in 2020
I spent 3 months prepping, interviewing, and negotiating. Was it worth it?
The Process
I recently found myself back on the job market after the startup I was working for gave up the ghost.
My previous job search consisted of about 2 hours of my good friend convincing me to abandon my sabbatical earlier than planned to join his new company. That worked out great, and I have no regrets. But I decided this time around I wanted to be more rigorous and deliberate about the process.
I made a job search guide for myself to help stay organized through the process. Check out the guide for specifics, but in general I broke it down into:
Make a career plan
Build a clear picture of what I’m looking for in my next jobPrep for interviewing
Software interviews at many companies don’t map perfectly to professional software skills. Practice whiteboard coding, system design, and behavioral questionsGet in the pipeline
Find and apply to jobs I’m excited about. Emphasis on in-network referrals.Interview
Negotiate & decide
“Decision making is a two-step process: 1. gather information, 2. decide”. Hence: 1. complete the interview process at all companies, negotiate best offers, chat with teams, 2. decide
My numbers
Time spent
I spent ~250 hours over 3 months. Here’s how it broke down:
Research & planning: 30 hours
Researching companies I might be interested in, meta-planning workPreparatory studying: 100 hours
77 leetcode problems, system design problems, general reading, mock interviewsGetting in the funnel: 40 hrs
Updating resume, applying, informational chatsInterviewing: 60 hours
Phone screens, technical screens, (virtual) onsite interviewsPost-offer chats: 20 hours
Negotiations and meet-the-teams
Dollars spent
I spent ~$650 on the process, with most of that going towards a negotiation coaching service.
Negotiation coach withralph: $500 retainer (plus % of negotiated increase)
Value: mixed. Absolutely valuable in coaching me how to negotiate, and I’m fairly certain I achieved higher offers than I would have otherwise. In retrospect, I’m not sure the additional stress and anxiety this process caused me was worth the outcome. YMMV.LinkedIn Premium, 2 months: $60
Value: low. I think I turned on premium just so I could see who was looking at my profile. I don’t think this information turned out to be particularly useful or surprising.Leetcode Premium, 1 month: $30
Value: high. Worth it to get solutions to every problem and to rank problems by frequency in real interviews. Also, considering how much I benefited from leetcode, I was happy to pay them for a month of premium.Big whiteboard: $30
Value: high. Worth it to practice the real whiteboard coding experience.Code Complete book: $30
Value: low. Not particularly useful for interview prepping, but a great book in general.Ace the Programming Interview book: $0 (borrowed from library)
Value: medium. Nice outline of topics. I had previously used Cracking the Coding Interview, and this seemed similar (it had the benefit of being available from the library).interviewing.io mock interviews: $0
Value: medium. In theory it was nice to get free mock interview practice, but I was really turned off the platform by one patronizing interviewer who really brought down my self-confidence.Triplebyte interviews: $0
Value: medium. Helpful interview practice, not particularly useful in finding a job.Peer mock interviews: $0
Value: high. As it happened, my partner is also a software engineer and was also searching for a job at the same time, and we did a few practice interviews of various styles with each other. This was particularly useful with behavioral questions, which are harder to self-assess, but was also helpful in simulating more realistic pressure in coding and system design interviews.
Results
Interview results
12 info chats
9 technical screens
6 “onsite” loops
5 offers
28 post-offer negotiation & “meet the team” chats
Negotiation results
Company A: 9% base salary increase, $5k signing bonus
Company B: 9% base salary increase, 44% equity increase, $100k signing bonus
Company C: $20k signing bonus
Company D: No change
Company E: No change (declined w/o negotiating)
End result
1 job :)
A final note on the crap-shoot
Throughout this process I tried to remind myself that to some extent it is a lottery. Companies bias towards turning away good candidates over possibly accepting a bad one. Interviewers are imperfect human beings like the rest of us, and whether your interview is before or after lunch might have greater bearing than your actual performance.
With one company I felt demeaned by multiple interviewers and came out of the loop a frustrated wreck (this company doesn’t have a great cultural reputation in any case, and incidentally was also the employer of that one jerk mock interviewer I encountered on interviewing.io). With other companies I genuinely enjoyed the interview process.
With some companies I sailed through the pipeline and was told I was the top candidate they’d seen. At Microsoft, where I had previously been employed, I didn’t make it past the technical screen. Multiple companies rejected my cold application but were later more than happy to talk to me (and ultimately give me an offer) after I got an in-network referral.
All this to say: try not to take things personally.
And if you figure out how to do that, let me know :).