Engineering a New Job: Part 1 - Search & Preparation
A practical guide on finding & thriving on a new engineering role
I’ve been working as a Software Engineer for 10 years. I’ve had 7 full time jobs (plus a few more role changes), contributed to 12+ companies, and interviewed for many many more. Anecdotally, this is a higher-than-average rate of job changes, even for the software industry. As a result, I’ve acquired a good amount of experience finding, starting, and thriving in a new role.
In this 3-part series - Engineering a New Job, I share my personal approach to job changes - not only finding a new role, but making it a success.
This first part focuses on preparation - what I do before the first conversation with a new potential employer. The rest of the series will focus on the hiring process (Part 2), and onboarding (Part 3), respectively.
Set Goals, Expectations & Timelines
There have been times when I was just browsing jobs, or someone reached out with a very interesting opportunity. However, I’ve had better results when my job search was planned, for a few reasons:
I can develop a coherent search strategy that allows me to focus on the most promising companies
The process goes more smoothly with recruiters and companies when they know I’m more committed to actually making a change
I can line up the timelines, so potential offers arrive around the same time, which makes a big difference for comp negotiation
Therefore, even before I update my resume, I make sure to have a good sense of:
Why I’m looking for a new opportunity in the first place
What are the top 2-3 most important things I’m looking for in my next opportunity
What type of companies I’m looking for - e.g. size, funding stage, industry, vibe, etc.
What type of role I’m looking for - e.g. technology, responsibilities, type of project, etc.
What is absolutely non-negotiable - e.g. minimum comp, location, certain policy etc.
When I’m looking to make a decision
It feels uncomfortable to pass up seemingly great opportunities, just because they don’t quite fit my target profile. But just like dating, this is probably for the better, as it avoids spending time on something that is unlikely to work out in the end.
Resume & Preparation
As I nail down the type of role I’m looking for, I try to get myself in the best shape to fit the role.
Resume
In my opinion, the resume is one of these paradoxical things that have an asymmetric payoff. A good one can barely make you stand out, but a bad one can definitely fail you straight away. Therefore, even though recruiters or hiring managers usually don’t spend more than a minute looking at it, it’s still important to have a clean and professional one.
There is no shortage of resume templates or advice, so I won’t delve into the details here. My general approach is to have a solid baseline, with a few impressive-looking highlights here and there. That is usually sufficient.
Personal Introduction
I’ll be introducing myself many times throughout the hiring process, so I tend to have it ready early.
I prepare a longer (~5-7 minutes) introduction that is typical of the first part of a recruiter call. This covers a brief overview of my work history, why I’m looking, what’s important for me, and the highlights of one or two recent projects. This usually hits most of the points for a recruiter.
I also prepare a 1-2 minute intro that I use at the beginning of every other interview. This may have a few variations depending on the interviewer, but the main goal here is to have something memorable or relatable to the interviewer, so it's easier for them to remember me among all the candidates.
Technical Interview Prep
There’s no magic here. I read technical books & blogs for system design questions, and use Leetcode for coding questions.
Search
Personally, I’ve found it more effective to curate opportunities on a continuous basis, rather than trying to find them when I’m ready to move.
For example, I periodically check LinkedIn to get a sense of the hiring market, I try to maintain somewhat of an ongoing relationship with the recruiters who’ve reached out to me, especially the ones I’ve worked with before, and I definitely try to stay in touch with the hiring managers who seemed to have liked me in interviews. This way, I can start with already warm leads when I’m ready to interview.
In addition, I will also try to expand the opportunities through the following channels.
Referrals
Referrals are by far the best channel to enter a hiring process, especially for smaller companies. If I’m interested in a company, I always ask around to see if I can get a referral. I almost always get to talk to someone from the company when being referred.
Agency Recruiter
I’ve found agency recruiters to be very helpful for a number of reasons:
They have access to many more opportunities that aren’t well publicized, for example, some companies do virtually all their hiring through recruiters, and don’t even look at direct applicants
They will advocate my candidacy to the company and prep me for interviews, which can be quite helpful
They also tend to help negotiate better offers, as many are paid based on a percentage of the first year base salary
The hard lesson I learned here is to not get pressured into taking offers that I’m not very comfortable with. Closing a candidate is a big deal for recruiters, so they tend to be somewhat pushy in the last mile. But if I insist on being rigorous in my process, it is generally respected.
Job sites
Of course, there are the typical job sites, where I can directly apply. I’ve found the following useful:
YC’s work at a startup is great for start-ups
LinkedIn has a very large collection of jobs
Wellfound (formerly AngelList) has some good ones too
Research the companies
The final step before I enter myself in a company’s hiring process is to do some research on them. Typically, I’d look at:
The industry/market they’re in
Their funding stage and size
The general vibe, e.g. by talking to an employee if I have connections, or read press or social media about them (e.g. TechCrunch, or Blind)
Their engineering blog if they have one
Their self-stated culture & values, i.e. at a high level, how do they operate, what do they care the most about
Their engineering comp/level structure (e.g. levels.fyi)
And most importantly to me, I look at a company’s leadership team and their experience. This could be their founders for start-ups, or their org leaders (if known) for bigger companies. Here, I try to get a sense of founder/market fit and make a superficial assessment about their chance of success. Additionally, I would also contemplate potentially working with them and see if I have a chance of building a strong relationship with them.
Summary
To summarize, before I start entering hiring processes, I would:
Make sure I have a plan for my job search in terms of target roles and timelines
Spend time getting my “marketing” materials ready, and technical chops brushed up
Curate a list of promising opportunities, and
Do some research on what each of these opportunities entails
For Part 2, I will share my approach to the hiring process.