How to write a good resume for a software developer

March 08, 2022

Recently I happen to take part in the review process of tons of CVs for a position that was requested by my team. This experience was very interesting.

Even though I did read some “how to write a CV” articles, it changed how I perceive this process completely.

I’ll try to share my thoughts here, I hope this will help someone finding the right position and getting through the process that can and probably usually is not entirely fair. Not because someone wants to do bad, because we’re all humans and want to do our tasks in the best way possible given the time we can spend on this task.

Make it through the HR

In big companies, it’s unlikely that your application will be initially reviewed by a technical person or even a person that wrote the job offer.

There might be hundreds of applications waiting to be reviewed, and most probably, the first reviewer would be someone from HR with or without technical background or knowledge.

Getting through this pre-stage should not be a problem if you make sure your resume consists of all or most of the things that are listed in the job offer.

If you have similar experience, that’s not listed, but technically is really similar, write it, explicitly, or risk rejection.

Imagine you write your application for both types of personas: someone who has no idea what a developer does, and someone who might know much more than you.

For example:

Job offer says they’re looking for a full stack with experience with Angular (or similar), MongoDB (or similar) and Java (or similar).

You spent last two years working on a stack with VueJS, AWS RDS and some Kotlin framework.

You never used Angular, MongoDB and Java.

If your application does not mention any of the above, there’s a chance that your application will be rejected by someone who doesn’t know that Angular is yet another js framework, MongoDB is pretty easy to learn and Kotlin is just a nicer Java.

Since you don’t know Angular, Mongo and didn’t use Java for a long time, you can’t claim you’re the expert in your CV. But don’t forget to mention it in the cover letter. Tell that it’s no brainer for you to jump to this stack since it’s pretty similar to what you already know.

This might make the non-technical reviewer pass it through to someone who has the experience and is able to verify it.

You might even state it directly in a CV like in „Made 5 projects in VueJS that shares some concepts with Angular”.

Boom, you got the keyword in your CV.

Tell what you did, where

One thing I noticed that seems pretty obvious but I never thought about, is explaining in the experience section what the company a person worked for actually does.

I never really add those short descriptions on my resumes, but once I was the reader, it was super nice to read that company X is a small sized company that makes a Y app for Z customers. That triggers my brain and it’s getting easier to imagine what the position was actually like based on my previous experiences.

Make sure I can see relations

Browsing through 5 pages Curriculum Vitae, trying to guess where did that person used Angular exactly is not an easy task.

Some people will try to be nice and find it, some won’t have that time and will put your application on the “for later or never” shelf.

If your story is huge, maybe try to group it to highlight what you think is relevant for the position you’re applying.

And don’t make that CV too big. No one will read it if it’s too long. People start scanning and if they won’t find relevant information, the battle might be lost.

I know it’s hard to pick the right items in your CV. But don’t forget. CV is just an opening item, like an ad on instagram. Try to tease me so we can talk more later.

Show your latest experience first

Maybe it’s a cultural thing, but I’ve seen a lot of CVs with experience section sorted by date… ascending. So, oldest first.

People (like me) scan those CVs first. They don’t read word by word, especially if time is a significant factor.

If I see “senior developer” in the title, then I see first experience item “junior CMS specialist”, then my brain goes wut?.

I do care what you did in the beginning of your career, but first I need to know what you do now.

Send a cover letter

When reviewing the resume, reviewer makes some image of you based on what they read, plus all the clichés that person has in their head.

Cover letter is your only opportunity to answer all the possible concerns a reviewer might have.

Have some gaps in employment? Write about it.

Joined last company just 3 months ago? Write about it.

You don’t meet all must-have requirements? Write why you think you can do it. Especially when the offer says something like „if you don’t meet requirements but think you can make it, convince us!”.

Plus, if you send a cover letter, you show that this application is not just one of the many you sent. It’s something you took some time to make and yes, it’s important.

Also it doesn’t have to be full, official cover letter. A nice email along with your resume will do just fine.

Try to make an appointment

The goal of sending the application is not to get a job, but to get an appointment.

Make it clear that you might be a good fit. Don’t make an autobiography. At this stage the person who reads it has to make a decision whether to invite that person to an interview or click that “thank you, no” button.

People usually try to not do any harm, they try not to make a mistake and hire the best out of that pool of people, so they won’t make any final decisions at this point.

They only need to know if it’s worth spending one or two hours talking to that person. In some companies, two hours of someone’s time is a big opportunity cost.

Don’t feel bad when rejected

There are many reasons why you didn’t make it. Most of them don’t mean you are any bad.

Could be trivial reasons, like UI of the app for recruiters is really bad and browsing through applications is a pain so they didn’t even check all of them.

Or, the reviewer had really busy week. It’s important to hire, but it’s importanter to deliver work in progress. Maybe they just scan the application list once a week and try to figure out who’s most promising in a shortest amount of time?

Maybe the HR rejected you because of lack of experience, or miscommunication between the hiring manager and HR person?

Or maybe it was an honest mistake made by some intern doing a first round filtering?

In any case, if you really, really want to join the company, and you’re sure you’re the right person for them, apply again, ideally using a different channel. But not more than twice, having 4 same or worse, totally different applications in a system from the same person in one month is odd.

Talk to humans, fight the system

There is always a person on the other end. You can always send your application (again?) using a different channel.

There’s a „technical person” mentioned in the job offer? With e-mail? Send an application directly. Maybe figure out some smart question, so it doesn’t look like you want to bypass HR.

The „technical person” responded with „hey, let’s meet”?

Congrats, you just skipped the make it through the HR level.

It’s a date

Some additional thoughts on recruiting in general.

If you’re just shopping around, looking for something better, and not fighting to get a job to make a living, the whole process is like a date.

Both parties need to know they want to spend a lot of time together in the future.

The person who hires must know you’re a good fit. You must be convinced you want to work for them.

If there’s anything that lights a warning light in your head, you’re probably right. Trust your instincts. Don’t be afraid of telling them „no, I pass”.

I’ve made this mistake once in my life that even thought I had some warning lights in my head I still quit my job and jump ships just to figure out in the very first day in the new company that it’s a hell hole on many levels.

The previous company was nice to hire me right back, to this day I have good relations with them.

Then how do you really know it’s a right fit?

Ask them to join a standup, or a sprint review of a team you’d be potentially member of.

Something that will show you how they really work, what’s the culture there, are they all stressed out? Are they super official or do they share memes in a retrospective board?

If you like memes you might not enjoy working in a team of people who would rather spend hours analysing last 4 sprints velocity.

Be brave and know your worth

Something I learned from one manager in the very beginning of my career was that skills I considered useless can be precious.

He told me „You can do some stuff in Corel Draw? Amazing, most people don’t, but you can, meaning you have a skill that can be valuable”.

This was something that completely changed how I thought about myself back then, giving that sense of self-esteem that many people, especially in the beginning need.

If you can do stuff, even if you think it’s not that uncommon like aligning boxes using display:flex, please always remember: most people on the planet don’t know what flex is. You know it and that makes a difference.