Hi, I’m Brian, a former senior software engineer and now software engineering advisor at Pathrise. I work with hundreds of software engineers to help them land their dream job.
The first step is always the hardest, 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 or transition into new careers and we put together this step-by-step guide to help make that first (and second and third!) step easier so that you, too, can get a software engineering job that you love.
Step 1: Make sure your resume and LinkedIn are strong
Before you even start looking for jobs, you should make sure that your resume and LinkedIn are as strong as possible. Your resume and LinkedIn should tell the story of why you are a good candidate and give the recruiter a reason to move you forward.
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.
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, including languages and tools, but do not include proficiency for each. Try to match as closely as possible to the keywords on the job description 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. 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.
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 on the team at the company to let them know you have applied. 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, which 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 and 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:
Once you have their email address, write a compelling and concise cold email that lets 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, the best advice we can give is to 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 real tech companies, which you can use 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, which 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 as well as 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 common behavioral interview questions. 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 $108k. The low end of the spectrum is around $85k and the highest reported is just under $150k. On AngelList, the average salary for a developer is $95k. This is likely a more well-rounded salary average because it includes startups.
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 dream job in tech. With these tips and guidance, we’ve seen 3x as many responses to applications, interview performance scores that double, and a 5-20% increase in salary.
If you want to work with any of our industry mentors and career coaches 1-on-1 to get help with any aspect of your software engineering job search, join Pathrise.