Hi, I’m Brian, a former senior software engineer and now software engineering mentor at Pathrise. I have worked with hundreds of software engineers to help them land their dream job. Check out this step-by-step guide to teach you how to get a software engineering job.
Updated in 2021
You know the saying, “the first step is always the hardest” is especially when you are trying to find a job. One of the reasons it is so difficult is because a lot of people don’t know how to start and that can be very discouraging.
We have helped hundreds of software engineers land their first job, transition into new careers, or get better positions than their current role. That is why we put together this step-by-step guide to help make that first (and second and third!) step easier. Now you, too, can get a software engineering job that you love.
Step 1: Make sure your resume, LinkedIn, and GitHub are strong
Before you even start looking for jobs, you should make sure that your resume and LinkedIn are as strong as possible. They should tell the story of why you are a good candidate. In fact, they need to be so impressive that the recruiter moves you forward and not one of the hundreds or thousands of other people.
We see a lot of very talented software engineers who struggle to find jobs because they are not showing their skills accurately in their online profiles. Often this boils down to statements that don’t show the impact of their work and don’t quantify the results. We call statements like this grunt statements because they focus on the grunt work.
For example, this is a statement that only shows grunt work:
- Developed a map app for the Facebook campus.
Instead, this statement can be updated to show the impact and quantify the results:
- Led development of a map app for the Facebook Mountain View campus, highlighting all entrances to each building, resulting in a 60% decrease in late attendees to meetings.
The formatting for your resume should also be clean, professional, and tech-centered. Use sans serif fonts (fonts without feet) and a maximum of 1 cool color (blue, green, purple) to make your resume look more modern. Include a section that highlights your skills, like languages and tools, but do not include proficiency for each. Try to match as closely as possible to the keywords on the job description. This is because both recruiters and applicant tracking systems will be looking for exactly those words.
For even more tips on how to make your software engineering resume as strong as possible, check out this article.
LinkedIn and GitHub
To optimize your LinkedIn, make sure you have a professional photo, contact information, and a short bio about your experience and the types of roles you are interested in. Include all of the experience from your resume. But, feel free to elaborate a little more on your responsibilities on LinkedIn, since you do not have a space limit.
To create a strong GitHub profile, include background information about yourself, add your projects, and contribute to open source projects so that you build up a streak.
Step 2: Find the right opportunities for you
Now that you have perfected your resume and online profile, it is time to find the right types of jobs. We often recommend that candidates think about the types of companies they would thrive in before beginning their job search.
- Do you prefer a big company or a small one?
- Does the idea of “wearing many hats” appeal to you?
- Are you better on a large team or working independently?
The way you respond to these questions can help you decide if you want to work at a well-established company or a new startup or maybe even on a remote team. When you get a sense of the types of companies that are best for you, you can narrow down the job boards that you use.
- For big companies, try LinkedIn and Google Jobs.
- AngelList and VentureLoop are best for startups
- GitHub and Stack Overflow have job boards specifically for software engineering
- If you are looking for remote work, try Working Nomads and Remote.co
We ranked and rated even more software engineering job boards, too, so you won’t run out.
Step 3. Don’t rely solely on the application
A lot of people think that it’s a waiting game after they send in their application online. Well, those people almost never hear back from the job.
After you apply for a position, you should send an email to someone at the company to let them know who you are and why you are a good fit. We call this reverse recruiting because you reach out to the recruiter instead of waiting for them to reach out to you. According to our data, sending an email along with your applications will increase the likelihood of a response by an average of 3x. This is a huge benefit, especially since sending an email can take less than 5 minutes per application.
In order to do this, find the recruiter, hiring manager, or a senior team member on LinkedIn. Then, find their email address through a free service like Clearbit or LeadFinder. You can also try to guess their email addresses using these likely combinations:
You can test your guesses in email address verification services like Hunter and Email Checker. In addition, we’ve created a guide to teach you how to reach out to recruiters, which includes a downloadable list of recruiter email addresses. Now you can reach out to Facebook recruiters, Twitter recruiters, Apple recruiters, and more!
Once you have their email address, write a compelling and concise cold email. Let them know you have just applied for the position and you would love to learn more about the company and the role by jumping on a quick call. Make sure that you give them specific times to choose from so that it is as easy as possible for them to say yes.
Here is an example of a template you can use for this cold email:
I hope you’re doing well! My name is [your name] and I’m reaching out because I recently applied for the [position] position I saw on [platform] and noticed you are a [role] at [company].
While I am not sure if you are the right person to contact, I wanted to reach out to you specifically because I was interested in the work you are doing, specifically [something from their LinkedIn or something the company is working on]. I am a skilled developer who writes clean, people-friendly code and I believe I would hit the ground running and be a great fit for your team.
I would appreciate the opportunity to learn more about you and the company. Would you be free for a 15-minute call, either at [timeframe 1] or [timeframe 2]? In advance, I have attached my resume for your review. I really appreciate your consideration and look forward to hearing from you.
All the best,
Step 4: Prepare to ace your technical interviews
To do well in your technical interviews, practice the type of questions you will see in those sessions. There are a lot of ways you can find these questions online. We compiled a list of resources to practice software engineer interview questions and 90+ software engineering technical interview questions from top tech companies. Start by using these to practice. We also created a step-by-step guide to solving a technical interview question, often asked by Google, and many other tech companies.
Remember to read the question thoroughly before you start coding. Ask clarifying questions before diving in, like “Are repetitions allowed?” or “Do you want to return permutations or combinations?” As you code, explain what you are doing to give the interviewer a sense of your reasoning. That way, even if you make a mistake, they will know that you have the right idea. Just make sure that you are actually confident in these comments, so that you are not hurting yourself.
Remember that almost all of your questions will require understanding of one of the following:
- Hash tables
- Linked lists
- Breadth-first search
- Depth-first search
- Merge sort
- Binary search
- 2D arrays
- Dynamic arrays
- Binary search trees
- Dynamic programming
- Big-O analysis
So study them hard and commit each of these fundamentals to memory.
Step 5: Research the company and nail your behavioral interviews
People often forget to prepare for their behavioral interview, but it can be just as important as the technical interviews. The goal of these questions to determine how you would react in certain situations and whether or not you are a good fit for the culture and team.
The first behavioral interview you will have will be your phone screen. This is often short and more casual, but that does not mean you shouldn’t prepare. Read our guide on how to prepare for a phone interview here.
The first step to behavioral interview preparation is research. Review the company’s About page to learn about their mission and history. Then, check out their Culture page to learn about their values.
The Jobs or Careers page often also includes good information on what an ideal candidate and teammate looks like. Take a look at their Products page to ensure you are able to speak knowledgeably about them. We’ve created a guide showing you how to research a company to prepare for your interviews, which you can review for more tips.
Insert this information into your prepared responses to these behavioral interview questions from top tech companies. Your responses should be specific and succinct. Don’t ramble – instead, offer to “go into more detail” if the interviewer is interested. Write your responses down and practice them in front of a mirror or a friend so that you feel comfortable.
You know you will be asked to introduce yourself, so prepare your elevator pitch in advance.
The structure should look something like this:
- Education: Introduce yourself, your major, and your class or year of graduation, which is really important for the recruiter to understand so they know what type of position you will fit in.
- Experience: Talk about the past work that you have done in previous internships or even student organizations and activities. Show that you don’t just learn in the classroom – you make use of your skills elsewhere.
- Projects (optional): If you don’t have much experience, or if you have very impressive projects, supplement your elevator pitch be mentioning 1 or 2.
- Conclusion: Make sure to end strong. Don’t just trail off when describing yourself. End with a preview of your response to “why this company” by adding how you fit with their mission.
Check out our guide to writing a strong elevator pitch with a template you can adapt for your own use.
Prepare the questions you will ask at the end of the interview, as well. We’ve compiled the 10 best questions to ask in a software engineering job interview, which you can use as a jumping off point.
Step 6: Negotiate while maintaining a positive impression
Negotiation actually starts from the moment you speak with the recruiter for the first time. Everything you say and do throughout all of your interviews are a part of your negotiation, so make sure you are careful. Never give out a number or even a range, if you can help it, because that can pigeon-hole you when you get to the offer stage.
After receiving an offer, just thank the recruiter and tell them how excited you are about the opportunity. Don’t say yes or no! Wait until you get off the phone so that you can take a moment and do some research.
According to Glassdoor, average compensation for new grad software engineers is $96. The low end of the spectrum is around $66k and the highest reported is $1137k. On AngelList, the average salary for a developer is also $95k.
Depending on the type of company you have received an offer from, you can figure out what the best areas to negotiate are. For example, if you are in the offer stage with big tech companies like Facebook, Google, and Amazon, they might not move the needle much on actual salary, since they are usually giving good salary offers. Give it a shot, but also be prepared to ask for changes to equity, signing bonuses, and other benefits.
With smaller startups, your salary might be lower in the first offer, so you should try to negotiate that higher unless they explicitly mentioned that they cannot go higher. In that case, look at bonuses, equity, and benefits so that you can increase your total compensation. Use this negotiation email template, which we annotated, so that make sure you hit the right points and highlight your value to the company.
Step 7: Celebrate!
It might take some time, but using these tips and templates can help you expedite your job search and help you land your dream software engineering job.
If you are looking for more help, Pathrise is a career accelerator that works with students and professionals 1-on-1 so they can land their first, or next, great job in tech. With these tips and guidance, we’ve seen 3x as many responses to applications, interview scores that double, and a 10-20% increase in salary.
If you want to work with any of our mentors 1-on-1 to get help with any aspect of your software engineering job search, join Pathrise.