The Roadmap to Landing Your Next Job as a Software Engineer

yagnik
11 min readNov 21, 2020

After 6 years of both interviewing hundreds of developers and also going through the job hunt as a candidate myself, I’ve honed the formula for landing software engineering jobs. I’ve seen the entire process from both sides countless times and understand the steps required to land the role you’ve been looking for.

The formula I use started when I found my first software engineering job, and since then I’ve continued to improve on it. By following this roadmap, I was able to:

  1. Land a six-figure job at a Silicon Valley startup (GrubMarket) coming out of a coding bootcamp (and they even increased my salary 10% above what I asked for. This wasn’t me playing hardball for more money, this was them negotiating against themselves and offering me a higher salary above my asking to get me on board).
  2. After 1 year of experience, on my next job hunt, I landed a job offer from Google, went through an on-site at Facebook, interviewed with startups of all sizes, and eventually decided to accept a job at Postmates (sorry Google…) who was recently acquired by Uber.
  3. I’ve helped numerous friends from all backgrounds — from self-taught to senior engineers with CS degrees — land jobs, negotiate better salaries, and equip them to feel confident going into their coding interviews and taking the plunge to start looking for a job.

You are the one who has the valuable skill set that companies need, and you’re the one in control.

To be upfront, getting prepared for interviews is going to take time and effort. There isn’t any magic to it. What this roadmap does is show you where to focus your time and make sure you handle all the essential steps that will allow you to stand out when you apply for jobs (or even more likely, cause companies to reach out to you), and have all the essential knowledge and intuition to be successful in your interviews.

https://carepropertyinvest.be/property/bro-v-A-01.html
https://carepropertyinvest.be/property/bro-v-A-02.html
https://carepropertyinvest.be/property/bro-v-A-03.html
https://carepropertyinvest.be/property/bro-v-A-04.html
https://carepropertyinvest.be/property/bro-v-A-05.html
https://carepropertyinvest.be/property/bro-v-A-06.html
https://www.ausy.fr/usy/bro-v-A-01.html
https://www.ausy.fr/usy/bro-v-A-02.html
https://www.ausy.fr/usy/bro-v-A-03.html
https://www.ausy.fr/usy/bro-v-A-04.html
https://www.ausy.fr/usy/bro-v-A-05.html
https://www.ausy.fr/usy/bro-v-A-06.html
https://leeuwinestate.com.au/state/bro-v-A-01.html
https://leeuwinestate.com.au/state/bro-v-A-02.html
https://leeuwinestate.com.au/state/bro-v-A-03.html
https://leeuwinestate.com.au/state/bro-v-A-04.html
https://leeuwinestate.com.au/state/bro-v-A-05.html
https://leeuwinestate.com.au/state/bro-v-A-06.html
https://www.uvirtual.edu.co/wordpress/uvirtual/bro-v-A-01.html
https://www.uvirtual.edu.co/wordpress/uvirtual/bro-v-A-02.html
https://www.uvirtual.edu.co/wordpress/uvirtual/bro-v-A-03.html
https://www.uvirtual.edu.co/wordpress/uvirtual/bro-v-A-04.html
https://www.uvirtual.edu.co/wordpress/uvirtual/bro-v-A-05.html
https://www.uvirtual.edu.co/wordpress/uvirtual/bro-v-A-06.html
https://aopa.com.au/aopa/bro-v-A-01.html
https://aopa.com.au/aopa/bro-v-A-02.html
https://aopa.com.au/aopa/bro-v-A-03.html
https://aopa.com.au/aopa/bro-v-A-04.html
https://aopa.com.au/aopa/bro-v-A-05.html
https://aopa.com.au/aopa/bro-v-A-06.html
https://www.cojob.fr/cojob/bro-v-A-01.html
https://www.cojob.fr/cojob/bro-v-A-02.html
https://www.cojob.fr/cojob/bro-v-A-03.html
https://www.cojob.fr/cojob/bro-v-A-04.html
https://www.cojob.fr/cojob/bro-v-A-05.html
https://www.cojob.fr/cojob/bro-v-A-06.html
https://carepropertyinvest.be/careon/e-1/Chel-v-Newc-liv-epl-01.html
https://carepropertyinvest.be/careon/e-1/Chel-v-Newc-liv-epl-02.html
https://carepropertyinvest.be/careon/e-1/Chel-v-Newc-liv-epl-03.html
https://carepropertyinvest.be/careon/e-1/Chel-v-Newc-liv-epl-04.html
https://carepropertyinvest.be/careon/e-1/Chel-v-Newc-liv-epl-05.html
https://carepropertyinvest.be/careon/e-1/Chel-v-Newc-liv-epl-06.html
https://carepropertyinvest.be/careon/e-1/Chel-v-Newc-liv-epl-07.html
https://carepropertyinvest.be/careon/e-1/Chel-v-Newc-liv-epl-08.html
https://carepropertyinvest.be/careon/e-1/Chel-v-Newc-liv-epl-09.html
https://www.ausy.fr/alena/e-1/Chel-v-Newc-liv-epl-01.html
https://www.ausy.fr/alena/e-1/Chel-v-Newc-liv-epl-02.html
https://www.ausy.fr/alena/e-1/Chel-v-Newc-liv-epl-03.html
https://www.ausy.fr/alena/e-1/Chel-v-Newc-liv-epl-04.html
https://www.ausy.fr/alena/e-1/Chel-v-Newc-liv-epl-05.html
https://www.ausy.fr/alena/e-1/Chel-v-Newc-liv-epl-06.html
https://www.ausy.fr/alena/e-1/Chel-v-Newc-liv-epl-07.html
https://www.ausy.fr/alena/e-1/Chel-v-Newc-liv-epl-08.html
https://www.ausy.fr/alena/e-1/Chel-v-Newc-liv-epl-09.html
https://www.ausy.fr/alena/e-1/New-v-Che-li-Q00.html
https://www.ausy.fr/alena/e-1/New-v-Che-li-Q01.html
https://www.ausy.fr/alena/e-1/New-v-Che-li-Q02.html
https://www.ausy.fr/alena/e-1/New-v-Che-li-Q03.html
https://www.ausy.fr/alena/e-1/New-v-Che-li-Q04.html
https://www.ausy.fr/alena/e-1/New-v-Che-li-Q05.html
https://www.ausy.fr/alena/e-1/New-v-Che-li-Q06.html
https://www.ausy.fr/alena/e-1/New-v-Che-li-Q07.html
https://www.ausy.fr/alena/e-1/New-v-Che-li-Q08.html
https://carepropertyinvest.be/careon/e-1/New-v-Che-li-Q00.html
https://carepropertyinvest.be/careon/e-1/New-v-Che-li-Q01.html
https://carepropertyinvest.be/careon/e-1/New-v-Che-li-Q02.html
https://carepropertyinvest.be/careon/e-1/New-v-Che-li-Q03.html
https://carepropertyinvest.be/careon/e-1/New-v-Che-li-Q04.html
https://carepropertyinvest.be/careon/e-1/New-v-Che-li-Q05.html
https://carepropertyinvest.be/careon/e-1/New-v-Che-li-Q06.html
https://carepropertyinvest.be/careon/e-1/New-v-Che-li-Q07.html
https://carepropertyinvest.be/careon/e-1/New-v-Che-li-Q08.html
https://carepropertyinvest.be/careon/e-1/c-v-ep0000.html
https://carepropertyinvest.be/careon/e-1/c-v-ep0001.html
https://carepropertyinvest.be/careon/e-1/c-v-ep0002.html
https://carepropertyinvest.be/careon/e-1/c-v-ep0003.html
https://carepropertyinvest.be/careon/e-1/c-v-ep0004.html
https://www.ausy.fr/alena/e-1/c-v-ep0000.html
https://www.ausy.fr/alena/e-1/c-v-ep0001.html
https://www.ausy.fr/alena/e-1/c-v-ep0002.html
https://www.ausy.fr/alena/e-1/c-v-ep0003.html
https://www.ausy.fr/alena/e-1/c-v-ep0004.html

Coding Interview Questions + Land Your Dev Job | Skilled.dev

The course to master the coding interview

skilled.dev

(^ if you’re ready to start studying, I also built this course)

The Roadmap 🗺️

The roadmap breaks the job hunt down into 3 phases:

  1. Pre-Hunt
  2. Job Hunt
  3. Interviews

While all 3 phases are essential, the money is earned in the Pre-Hunt. The Pre-Hunt is where you equip yourself with the tools that make you stand out in the Job Hunt and feel completely confident going into your interviews. You are going to do your most important work before you ever even submit your first application.

In fact, if you take nothing else away from this article, remember these two steps:

  1. Build real projects
  2. Practice coding interview questions

…and start on them as early as possible. If you can do these two things, you’ll be well on your way to landing the job you’ve been wanting.

The Pre-Hunt 💪

Have you heard the phrase “make practice harder than the game”? This is exactly what the Pre-Hunt is meant to do.

Step 1: Begin studying for your coding interviews. You should feel completely comfortable with the core data structures and algorithms before you talk to a recruiter. Work questions that will allow you to gain the intuition you need to feel confident that you can crush any interview question.

Also, pick 1–2 programming languages and know them very well (unless you’re a super experienced polyglot programmer). It’s much better to show a depth of knowledge as opposed to having a light introduction to many languages. This also applies to frameworks and libraries. Go deep, not wide.

Step 2: Brush up your resume, LinkedIn, and portfolio website. Make sure to include the phrases that you want recruiters to target you for. This could be anything from “full-stack JavaScript engineer focusing on Node and React” to “Rust developer working on low-level system architecture”. Add descriptions for roles that include the technologies you use, list your projects, and be sure to always highlight the most important things you do.

Note: If you dread updating your resume and portfolio as much as I did, you should check out the free tools I built to help automate the process — a resume generator and an API for your portfolio website.

Be descriptive and show the things you’ve done with the tangible outcome it produced. For example, “Rebuilt the frontend from jQuery to React which decreased page load times to below 1 second, increased conversions by 12%, and improved developer iteration speed dramatically”.

The purpose of Step 2 is to refresh your online presence and start building connections with recruiters and companies. Even if you’re not looking for a job at the moment, this is when you build that network of people to reach out to when you are ready.

Over the past ~1 year I’ve had recruiters from all the FAANG companies (minus Netflix) reach out to me, Twitter, LinkedIn, Uber, Instacart, Coinbase, Twitch, and many others — start building your network now.

Take this step seriously, and it will pay dividends later on.

Step 3: Build projects! Building real projects is how we show companies that we have the skillset that allows us to be a contributor on the job. It also shows our passion for programming and eagerness to learn.

The less experience you have, the more important your projects are. If you have multiple years of experience, at that point your job background can serve as your projects if needed.

Building projects accomplishes 2 things:

  1. We have tangible results to show companies we have the required skillset
  2. We learn a lot more

Knowledge from your projects will help immensely in interviews. You will be empowered to create engaging discussions, learn to write good code for real applications, and have concrete examples to answer interview questions.

Interviews are also incorporating building projects more into the process. Companies give takehome projects, or you may be asked to build some mini-application during the interview. The more experience you have, the more comfortable you will feel.

You need to treat each project as if real people will be using it. It forces you to really dig in deep and thoroughly understand what is happening. It also provides a very powerful data point to companies that you already know what production applications need and can hit the ground running from day 1.

In addition to projects, blogging can be very helpful as well. By blogging, you force yourself to know a topic completely since you will be sharing it publicly. You don’t have to blog about complex or deep topics either — just share what you’re learning.

Did you learn how to make API requests using React hooks? Blog about it.

Did you analyze an interesting data set using Python? Blog about it.

Did you figure out how to deploy a Golang application by using Docker? If you’re wondering if you should blog about it, the answer is yes.

Don’t feel like a lack of experience should prevent you from writing a blog. Often the best teachers are the people who most recently learned a topic because they deeply understand the challenges and mental hurdles required to grasp it.

Blogging helps us learn topics more thoroughly but also provides another positive datapoint to hiring companies. It creates an online presence where you have used your free time to help other developers learn and grow.

Pre-Hunt Timeline: In an ideal world, you would start this phase 1+ year out. However, the absolute minimum time you probably need is 3 months. The actual amount of time you spend will depend on your experience level and how much you’ve learned in the past.

  • Refresh your resume, portfolio, and LinkedIn at least every 6–12 months. These don’t have to be major changes but keep your information up to date.
  • Building projects and writing blogs should hopefully be things you’re able to spend your time doing whether you’re looking for a job or not.
  • The coding interview is the aspect of the job hunt that many developers dread the most. The more time you give yourself to study and absorb the concepts, the better off you’ll be. I recommend finding a very strong course that can teach the intuition you need instead of grinding through problems and hoping you are doing things correctly.

Job Hunt 👀

You’re finally ready to start applying to companies (or finally start accepting the endless LinkedIn requests from recruiters). This phase will likely go very differently depending on the amount of job experience that you have.

At this point, you should do a thorough update of your resume, portfolio website, and LinkedIn. Make sure the story you’re sharing with the world highlights your passion and skill set. Show off your projects and past experience and present yourself as someone who is ready to be a big contributor.

The job hunt can take time, so be prepared to follow the process through. However, once the interviews and offers start coming in, it kicks into hyperdrive.

I’ll treat this as someone who is looking for their first job, and you can decide how much of it makes sense based on your situation.

  • Applying to jobs is a numbers game, especially if it’s your first role. Apply to many, and show the same level of enthusiasm and excitement for each.
  • Build relationships and a network. Recruiters get paid to get people hired, so put in the effort to connect with them and show you’re passionate, enthusiastic, and have been working hard to gain that skill set to land the job.
  • Go to Meetups, hackathons, and other programming events and get involved in your local tech communities. This may or may not directly lead to a job, but it keeps you motivated and surrounded by similar people and allows you to build your network will others in the industry.
  • Reach out to people that work in the companies you want to apply to (but also be respectful of their time, don’t harass them, and understand you may not get a response). Getting a warm introduction from a current employee is one of the best ways to get fast-tracked to an interview. Reach out to internal recruiters, developers with similar backgrounds as you, or software engineers that are in the role you want.

When you reach out to software engineers, don’t just go in saying “Hey can you help me get a job”. Go into it looking to make a connection and build a relationship. Humans typically like to help other people.

I would approach it like:

“Hi Trey,

I’m an aspiring software engineer and realized we have similar backgrounds. I also don’t have a CS degree and was wondering if you could share some advice on breaking into the industry. I would love to buy you a coffee if you have 30 minutes to chat!”

Be genuine and focus first on making the connection.

Interviews 🤓

Interviews are meant to challenge us, and there is no question that software engineers are tested on more than nearly any other profession — but remember there are awesome roles waiting for you on the other side.

The interview process is broken down into a few parts and may vary slightly from company to company, but the general outline is similar.

  1. Recruiter phone screen
  2. 1–2 technical video interviews
  3. Possibly a takehome project
  4. On-site interviews. This usually consists of 3–6 technical interviews with engineers, and 1–2 behavior rounds with managers or non-technical team members.

The recruiter is your main contact. They’ll set up the interview schedule and let you know the decision after you finish. One thing to keep in mind is that recruiters are your ally. It’s their job to find good engineers and get people hired, so they will fight for you. This includes the compensation negotiation. I highly recommend reading this article for an understanding of how to negotiate, it’s simply the best I’ve ever read.

Build a strong connection with the recruiter and treat them well.

And what if you don’t get an offer? That’s okay. No one will land 100% offers from the companies they interview with, but the more you practice and interview, the better you’ll become. You’ll also stop focusing as much on the outcome of a single interview and trust the entire process to work out, which in turn typically makes most people more successful in interviews because they don’t overthink it.

One thing that’s essential to being successful is your attitude. Be enthusiastic, be positive, and be eager to learn.

Remember, you’re being interviewed by other engineers and potentially your future co-workers. Think of the kind of person you would want to work with. Most interviewers want the candidate to succeed, so just make sure you present yourself in a way that would expect your own co-worker to behave.

I’ve seen very technically gifted people not receive an offer because they were incredibly negative and painful to be around, and I’ve seen very junior engineers receive an offer for the same role because they showed that they had the passion and desire to contribute if given the correct training.

Interviews are challenging, that doesn’t mean we should be intimidated. If you’ve put in the time, you’re going to get enough opportunities to feel comfortable. You’ll see many concepts you’ve studied, you’ll feel confident, and the whole process will start to feel more like an opportunity to prove yourself instead of fear over what questions could be asked.

You know what you’re doing, and you deserve an excellent job to match.

It’s all about the preparation though. Study your interview questions and build projects.

I’ll continue to discuss the job hunt process and phases of the roadmap in more depth, so stay tuned for more articles.

— Trey (@treyhuffine)

--

--