It seems like the economic recession caused by the recent pandemic has reached the tech industry too.
Software engineers’ resumes actually matter now, especially if you want to get into a hot tech company.
What filters do they have in place you need to get through?
How do you beat them?
How do you write the best software engineer resume of the century?
Gergely Orosz has done his fair share of hiring at Uber, so he knows the processes, how to increase your chances, and how these processes may be improved. He also recently wrote the book called ‘The Tech Resume Inside Out: What a Good Developer Resume Looks Like’. He shares his tips on episode 31 of the Level-up Engineering podcast hosted by Karolina Toth.
Before COVID-19, resumes were less important for software engineers, especially with a few years of experience. Engineers new to the industry have always needed a resume that represented them fairly. But COVID-19 changed the way we work, and it made resumes more important than before.
The challenge when recruiting engineers, especially with a few years of experience, used to be to get them interested in your company. This was true even for Uber.
Big tech companies use sourcers. Their job is to find people and to convince them to apply for a job. When you get a message on LinkedIn, or an outreach email, it’s usually from a sourcer, and if they’re hitting you up, you don’t need a resume.
COVID-19 unfortunately brought layoffs, even to the tech world, and resulted in fewer companies hiring. Now these people are applying for jobs, and they need to submit a CV.
I helped many of my former colleagues with their resumes, because I have experience as a hiring manager. This made me realize that software developers tend not to know how to write one, because they never had to. This leads to insecurity and to making basic mistakes.
I saw a software engineer with 10 years of experience who didn’t hear back from any company. He listed his positions with the earliest on top, and made a number of other rookie mistakes. This was an outlier though.
You only need a resume if you're applying for jobs. When recruiters are coming to you, a decent LinkedIn profile is enough. Also, some software developers love their jobs and aren’t looking for a change, so they don't need a resume.
I advise everyone to keep a LinkedIn profile anyway. While not everyone is a fan of LinkedIn, I got all my latest positions at Skype, Skyscanner, and Uber through a LinkedIn message, and I wasn’t even looking.
A great resume is situational and very subjective.
When a resume lists experience from well-known tech companies, hiring managers will be more interested. Experience from companies like Google, Facebook, Airbnb or Snowflake stand out. If you’ve managed to get in there, people look at you differently.
What makes a great resume is that it’s a match for the job.
I'll give you an example from Uber.
My team needed senior backend engineers with distributed systems experience. A great resume in this case would include experience with distributed systems, ideally at a comparable scale to ours.
In another example, you may apply to a web development agency contracting out Angular engineers. In this case, contribution to the Angular core would, without doubt make for a standout resume.
You can’t have one resume and send it everywhere. Hiring managers receive many CVs, and they want to fill a specific position. You want your record to tell them that you may be a good fit for their team.
You should tailor your resume for each position. Go through the job advertisement, and consider the problem they need a solution for. For example, if you’re applying for an Angular engineer position, and your resume lists React and Angular too, put emphasis on your expertise with Angular.
Basically, highlight your relevant experience. Do some research to figure out what the company you’re applying at is looking for.
A typical situation is when a fast-growing company is building a new team. The hiring manager gets the headcount to hire five more people, and they’re looking to get a range of people; like one senior, some juniors, etc. In this situation, they’re open to different types of people, but they also want to hire rapidly.
The job advertisement in this case looks more flexible. They tend to list what interests are nice to have, and they specify a wider range of experience. They probably won’t put it in the ad that they’re hiring five people, but if you look closely, you can spot these signs.
Another typical situation for a hiring manager is that someone quit on their team, and they need to backfill. In this situation, they know exactly what they want. They may be somewhat flexible, but they need a replacement for a specific role.
Your resume doesn't need to be perfect; it’s just a filter. A tech recruiter who has done 6,000 interviews over the last 20 years explained it to me this way: your resume is a sales pitch. If we didn't have resumes, it might be a phone call instead where you need to talk about yourself in one minute.
You only need a CV to get your first conversation with the hiring manager. As soon as you have that phone call, you’re inside the pipeline and moving to the next stage. Even if someone comes with a better resume, it won’t matter, because they have to go through the same process.
Your resume will get forwarded for the follow-up interviews, and the hiring manager will read it, but it doesn't really matter at that point. At the resume stage, you’re just one in a pile of documents, and people spend about six seconds on you. At the interview stage, you get 30 minutes to introduce yourself and to talk about your experiences, which has a bigger impact.
When you’re looking for a job, focus on the stage that isn’t working. If you’re not getting callbacks, focus on your resume. If you do, your resume is good enough, and you need to look at other aspects, like how you present yourself at interviews.
If you're working at a well-known company, you’ll probably get interviews more easily. When you're just starting out, the job market is less forgiving.
People often like to list their skills and interests, expecting that to separate them from the others. But on the other side, a hiring manager receives 50 resumes, and many of them have special expertise, while others are excited about the company. Hiring managers prefer when applicants get to the point.
Hiring is a long process. Early on, companies just want to get a sense of who may be a fit for the job. They tend to look at years of relevant experience.
When large tech companies have a job opening, they internally set a level for it, like this is an L62 staff position. This correlates to years of experience in the job ad.
The best option is to write a clear resume that shows the years of relevant experience you have. This makes it easy for the hiring manager to decide if you might be fit. If you get rejected because of the lack of experience, you’d be rejected anyway.
A fancy resume with a lot of details can make it hard to spot the key points, and you end up in the “maybe pile”. Write a clear resume that shows your hard skills, the technologies you’re familiar with, and the impact you had at your company.
Talk about your achievements when applying to a hot tech company, like Google, Facebook, etc.
Showing numbers like this instantly makes you stand out, because only about 15% of software engineer resumes have this. Internal project names without context usually don’t mean anything to the hiring manager, but its impact will. This is more important than your side projects.
For new grads, side projects are a great way to show that you've done something. Focus on sowing impactful side projects. Building a "Hello World” on GitHub can be an item in your resume, but contributing to Angular is far more impressive.
The resume’s focus should be on your hard skills.
Soft skills will be evaluated on the recruiter call. They focus on making sure you’re motivated and that you can communicate. They might probe your experience too, like ask you to explain a complicated system you've built.
In my opinion, you shouldn’t bother highlighting soft skills.
For example, sharing that you completed communications training might backfire, because some people assume that good communicators never need training. Software developers have a lot of hard skills to filter in the resume. Until you talk to a recruiter, everyone assumes your communication skills are fine.
Make sure you do a spell check and grammar check as well. An app like Grammarly should do the trick. If your English isn’t great, it shows that your communication skills are not great either, and you end up rejected or in the “maybe” pile.
If you list your achievements and their impact from your previous company, you show some valuable capabilities. It says that you not only delivered the code, but you cared about how and why it mattered to the business side. This is a valuable approach in software development.
More mature organizations, like banks or some agencies, look for specialists. They want to hire engineers for a specific technology, and they’re hardcore at filtering for it. In this case, you need to make it clear in your resume that you have the experience they want. Programming language certifications can help with this.
Let’s start with what happens at a small company, because big companies just extend the same process. When a company of two people needs to hire, they post a job ad, software developers submit CVs, and they read them. Then they either call them for an interview, send them a rejection email, or forget about it, and never follow up.
At a big company, it starts with opening a requisition. The hiring manager gets a headcount to find X people, and a budget to do it. They talk to the recruiter and put out a job description.
It goes out on the company website, and it’s also posted to internal boards so employees can refer people. The hiring manager is normally too busy to look at all the software engineer resumes coming in. Usually, recruiters read the incoming CVs, or at huge companies, there’s a specialized role for this—the inbound sourcer.
Huge companies need inbound sourcers, because they get a lot of applications. For example, we’ve had positions at Uber where we saw hundreds of applications for just one opening, and many of them didn’t match some key criteria. Well-known companies often receive 20-100 resumes per day for a popular position.
Inbound sourcers quickly scan through all these resumes, and they’re not even necessarily familiar with the tech industry. They’re looking for specific requirements they were given for a position, like years of experience or specific technologies. When someone meets the requirements, they either call them to clarify details or pass the resume to a recruiter.
If your CV gets through the initial screening, you get a call from the recruiter. This means your tech resume achieved its goal.
If you don't get through the initial screening, better companies send you a rejection letter, but you’ll never learn why they rejected you. Many companies won’t send you anything, which may get frustrating.
Most applications are filtered out at the resume screening stage. At that point, a clear and easy-to-read resume already makes you stand out from the crowd. It’s crazy, but it’s true.
Employee referrals are essential for hiring in the software industry. Every tech company uses referrals.
Companies with just a CEO and a CTO tend to hire people they already know, often without interviewing. When my team starts hiring, I let my employees know, so if they know anyone, they can refer them. Referrals work brilliantly; many studies show this.
Hiring through referrals is faster, because a friend will talk to you and consider your offer, but they’re likely to ignore recruiters. Often, even after going through the entire process, an applicant won’t take an offer because of money, relocation, etc. Referred candidates are more likely to take the offer, and they tend to stay in the company longer.
Big tech companies often have a referral program. Employees can internally refer through a portal, and it goes to a priority recruitment queue. If that person is hired, the referring employee gets a reward in the $1,000-$10,000 range.
This often makes employees cold-refer people, which is against the spirit of employee referrals. There are sites selling referrals, which I don't agree with, but it can be a win-win.
Going through a referral is great. You’re likely to get to talk to a recruiter that way, or at least they will properly read your resume, as opposed to being one in hundreds of CVs.
You need a resume anyway, but it’s a good idea to look around in your network and see if you know someone working at the company you want to apply to. You could message them on LinkedIn, and if you end up getting a referral from them, you're already ahead of 95% of the competition. This goes for both big and small companies.
When it comes to smaller tech companies, you can hit up the CEO with a tailored message after checking out their website. It’s even better if you come up with a suggestion to improve their product. Barely anyone does this, but it’s a great way to stand out from the crowd and get a job.
This is the most discouraging part of looking for a job. This will happen to you; it doesn't matter how good you are. Even people who ended up with offers from Google or Facebook told me that they didn’t hear back from many companies.
You may not hear back for different reasons. At times, they have hired someone by the time you applied, and no one was looking at the applications anymore.
Other times, you may apply for a job they’re not actually hiring for. They may only put out a job ad for legal requirements, but they have an internal candidate who will get the job.
It doesn’t matter how much companies care about their applicants; they care about their existing employees more. I was a hiring manager, but when my team needed me, I paused the hiring and stopped reviewing resumes. It’s more important to take care of the people inside the company.
Sometimes a company has a hiring freeze, but they didn't update the website.
When you're looking for a job, submit to multiple places beyond your dream company. You never know what's on the other side. Even if companies want to be transparent, sometimes they can't be.
Don’t get discouraged, just push through this.
Right now is the hardest time to get a job as a software engineer. I think things will get back to normal eventually, but this is what we’re dealing with now.
It’s hard, because there's not enough diversity in tech. Many companies are actively trying to improve diversity in tech through recruitment.
Here are some things you can do about it:
Many companies struggle to hire their first female software engineer. I know female engineers who rejected offers from companies like this, because they didn't want to be the first female engineer at the company.
I talked to a female co-founder of a tech company, and their engineers were 60% female. They had no problem attracting female software engineers. Word of mouth spread, and gave them a huge advantage.
Your company has to be serious about this. Uber put a lot of effort into measuring and improving diversity with different programs. They make sure that diverse candidates get to talk to an existing employee to give them a sense for what it's like working for them.
I believe resumes are terrible ways to filter software engineers. It favors people who are good at writing resumes and who get help to do it right. In an ideal world, we’d get rid of the resume and directly talk to every applicant to figure out what their skills are.
When you don’t even get to filter the resumes as a hiring manager, you're going to have a broken process. I don’t think there’s enough incentive for companies to fix this, but there are things you can do about it.
The best way to go about it is to make sure that you also regularly review the resumes the recruiters rejected. This gives you an opportunity to educate your recruiter and point out great candidates they missed based on their resumes. You're going to find hidden gems.
You can hire third-party services to filter the applicants for you upfront, and take the time to get to know them. They won’t reject them in six seconds. When they pass a candidate on to you, you can go straight to interviewing.
Other services take your rejected resumes, and call most people to have them do a one-hour assessment. They often come back with a bunch of people who meet your requirements. These services cost money, but it saves you a lot, because you don’t have to source more people, just hire more of your existing applicants.
This signals how broken the resume process is.
Coding challenges are another possible option. I don’t personally like it, but it’s a decent way to give a chance to people you’d reject based on their resumes to show their hard skills.
Gergely Orosz loves to learn different things, and he loves to help software engineers get better at what they do. He loves working in different teams and new environments. He has learned a lot by teaching, which has done a lot to advance his career.
This attitude is the reason he talked about mentoring developers in a previous episode of the Level-up Engineering podcast.
👉 If you are serious about becoming a great engineering leader, you should take a deep dive into the State of Engineering Management 2022 report.
🚀 Need developers for your team or project? Hire our experienced Angular, React or Node.js developers! Click here for a FREE consultation.
About the author:
Gabor Zold is a content marketer and tech writer, focusing on software development technologies and engineering management. He has extensive knowledge about engineering management-related topics and has been doing interviews with accomplished tech leaders for years. He is the audio wizard of the Level-up Engineering podcast.