There is no reason for engineers, in today's market, to stay in a job they don't want—and they know it.
Engineers know that less than 1% of U.S.-based engineers are unemployed and that if they aren't satisfied with their current company, finding a new one won't be difficult.
The numbers reflect this: Engineers stay in roles, according to AngelList data, for an average of 18 months, which is significantly less than the 4.2-year nationwide, median tenure of salary workers in 2018.
However, as many engineers find out, while switching from one engineering job to another is relatively easy, switching to an engineering job that actually satisfies what you want is much harder.
That's what this guide covers. It isn't a guide to nailing a cover letter or negotiating offers; it's a guide for figuring out where you really want to go next and preparing yourself to make the jump.
To land your dream job, you have to first know what it is. This might sound trite or obvious, but unless you've really interrogated yourself about what you want and why you want it, it isn't. You can do this by asking three questions:
These questions are deceptively simple. For example, one senior engineer we spoke with left an engineering role years ago because they wanted to work on a product with great social impact. He made a move to a healthcare company, thinking this would be an area where he could realize that impact. This move makes intuitive sense—in 2009, a study found that 45,000 Americans die annually due to a lack of health coverage—and so any startup focusing on “fixing healthcare” instantly sounds like a chance at social impact.
However, within a year, he was unsatisfied and looking for a new role. The startup he had joined was profitable, and he felt successful in his work there, but the company's business model—to sell medicine to people with coverage—didn't have the social impact the engineer wanted.
To find the right role, he interrogated why he wanted to work at a company with a social impact. The motivation, at its core, was to spend every day working on something that changed peoples' lives. The companies that offered such an opportunity, as he discovered, weren't necessarily companies with an explicit social mission. Instead, they were companies that offered a service people could use in pivotal moments of their lives, like making a major purchase, pursuing a new job, or meeting a life partner.
The role he transitioned to didn't have the most obvious social mission, but in the role, he was able to see people's lives improve every day because of his work. He described it as the happiest role of his career
Once you have an idea of what you want and a list of potential companies, it's time to start networking. Good networking will give you more information to guide your decision, and it will increase your chances of getting a referral to one of your target companies. While referrals are more essential in early-stage startups than mature companies, they're always a positive.
One of the mistakes people make when networking with a specific goal—like joining a certain company—is they approach it like a LinkedIn recruiter. They search for people who work there and aggressively try to befriend them, hoping one will offer to give them a referral. This is transactional, transparent, and ineffective.
Instead, focus on joining communities that overlap with the companies where you want to work. For example, if you want to work on open source software, and the companies you're looking at all participate in open-source development, then you should attend conferences like O'Reilly's Open Source Convention or the Linux Foundation's Open Source Summit.
To find communities that overlap with your goal, check out:
By participating in these communities, you'll increase your exposure to topics that interest you—potentially discovering new companies to join—and you'll have a chance to establish yourself as a peer to people who work at your target companies, not just another person spamming their inbox.
Finally, before you apply, you need to make sure you're ready to crush the interview, especially if your target companies are well-known brands with competitive talent pools.
The first step here is to figure out what tech stack your target companies are using. The easiest way to do this is to look at their job postings to see what technology they use. Then, analyze what skills you could most easily develop to give you the biggest bump. For instance, if you're a front-end specialist who is familiar with React, but four of your target companies use Vue, you could probably pick up Vue fairly quickly and make yourself that much more attractive as a candidate.
At the same time, it's good to sharpen your whiteboard skills—especially if it's been years since you've had to do any deep algorithmic work. Specifically, make sure you:
You should also practice algorithmic challenges through services like Leetcode in the weeks before your interviews, and if you like, working through the classic book Cracking the Coding Interview. The fresher these skills are, the better you are going to perform in your interview. This is especially crucial if you're years into your career and haven't done algorithm-driven work in a while, as can often be the case with senior engineers.
Unless your workplace is extremely toxic or you otherwise need to leave immediately, take your time with this process. You can afford to be picky—the high demand for engineers isn't going away soon.
Instead of jumping at the first company that offers you a $15,000 pay bump, take some time to figure out what it is you really want. Then, connect with the people who can offer it, and invest time into making yourself the best possible candidate. If you stay patient and follow those steps, the right opportunity will present itself, and you'll be prepared to take advantage when it does.