Skip to content

How to write a good job application as software developer

I've had the privilege to participate in recruitment in two companies. I've seen a hundred CVs, read dozens of cover letters, and interviewed many applicants. Based on this experience, I can share a few learnings on how to write a good job application.

The views expressed below are my own. They do not represent the views of my past or current employer(s). Every company has their own policy for reviewing applications and deciding who to hire.

Target your cover letter

A common problem in cover letters is to make it so generic that it could be (and is?) sent to ten different companies. Don't do that. Target your cover letter at the company and the job you're applying to. Explain why the company should be interested in hiring you. Explain why your skills fit the job description and how your values align with the company (don't lie, of course). Convince the reader that you honestly want to work at this company and not some other company.

It's a common mistake to only talk about yourself in the letter. Yes, as someone reading the cover letter I need to understand who you are and what you can do, but at the end of the day, I'm not particularly interested in reading a full A4 about you. I need to find the best colleagues to join my company. Tell what I and my company can gain by considering you.

Don't just say it, prove it

Let's say the job ad says that it's important to exhibit continuous learning, an attitude where every day is a grand opportunity to learn something new. It may come as a surprise, but it doesn't really help you to write "I always want to learn more" in the application. It's likely that every other applicant says the same thing in their application.

What you need to do to stand out is to prove that you're a continuous learner. Maybe you've taken courses and have certificates to show it. Maybe you have a blog where you have written about everything you've learned. Maybe you're active in Twitter. Maybe you've read five technical books and written book reviews about them. Maybe your GitHub account continuously fills with new repositories when you learn and try new things. Maybe you started as a front-end developer but then shifted to backend development only to become better at your job. Maybe you've participated in conferences. There are many ways to prove that what you say is true. Find a way that convinces the reader. If you can't think of any, maybe you need to spend some time investing on that.

This applies to other skills than learning as well. If the job ad says we need someone who can code in Java and Python, it's not really enough to have Java and Python appear in your CV under the "Programming languages" section. Everyone else has them there too. You should find a way to prove that your Java and Python skills are particularly good for the job at hand because of reason X.

Finally, if the job ad says that skill X is highly valued but you don't have that skill (yet), one of the worst mistakes you can do is to say "I never needed that in my job so I don't have the skill" and then leave it at that. Instead, honestly admit that you've never needed it before but you're eager to learn it and you've already found some resources where to learn it (again, don't lie of course). Take responsibility for your skills, don't make excuses.

Take care of your GitHub repos

It's quite common nowadays to add a link to GitHub account in the application. That's a great thing: I get to see what kind of software the applicant has written in the past. A good collection of quality repositories can really make you stand out.

However, many job seekers seem to think that it's enough to create a GitHub account, add lots of starter projects there, and then add a link in the CV. That doesn't help. Instead, you should focus on quality over quantity.

Think carefully what kind of projects you're interested in and how they can support your career. Learn about clean code. Write clean code. Add good technical documentation. Write tests. Enable GitHub actions, run tests for every commit and add badges to prove it. Dockerize your application. Deploy it to cloud and write instructions how to deploy it. Write a that shows how high quality your repository is. Add a GitHub profile that shows how active you are. Pin the repositories you're proud about. If one of your repositories is a total mess of throw-away code, maybe consider keeping it private?

Miscellaneous tips

Remember that so-called "soft" skills are very important. Soft skills dictate how nice it is to work with you and how well you can lead others. Maybe you can read a few books about teamwork and how to get along with people, or find some other way to hone and prove your soft skills?

Demonstrate your growth and potential. Hard skills stagnate fast. Show how you strive for long-term growth instead of settling with status quo.

Make your passion shine through. By passion, I don't mean mean working long hours and weekends. I mean that you're not only after the money but you deeply care about your work and want to get better at it. If you have a passion, companies will fight to get you.


What did you think about the article? Are there some other things that are important in a job application? Please leave a comment, and thanks for reading!