If you are a candidate with a lot of experience your resume needs to be really bad to reduce your chances to get noticed. On the opposite, if you are 0-3 years into a career in IT, the resume will play the main role in you getting the first interview.
Nevertheless, even for candidates with experience having a good polished CV can help to create a positive first impression. Because in most of the cases, your interviewers down the pipeline are going to check it out as well. Likely spending less than 1 minute, but that is totally enough to create the impression - better a good one, right?
After helping dozens of people, mostly recent graduates either universities or tech courses with improving their CVs, I've decided to write down the tips and notes I usually give. Why? Because they seem to work very well. However, I highlight that what I am going to recommend is very opinionated, A/B tested only in Germany, and may not always apply.
I will talk about:
- personal information
- tech skills
- work experience
- ... and some extra tips.
Let's dive into it!
Is there any structure to adhere in my resume?
Let's think about what does the recruiter or someone filtering the resume is looking for. They want to answer these main questions:
- Does the person have the required technical skills? (e.g. Python, SQL, Postgres, AWS, etc)
- Do they work at the moment? Does it look like they have enough experience for the role?
- Where is the person now? Will they be able to join quickly?
So the structure of your resume needs to help the person to answer the most of questions above with Yes/Maybe quickly.
Since German IT companies are not spoiled with thousands of applicants for a specific role, it's very likely the first reviewer of the resume will be a real person. Therefore, the reviewer will also appreciate a clean, readable resume where the positive answers to the main questions can be found right away.
Here is an example:
Clean, short, and friendly. As you can see the format is very different that you will find online for the US market and other multiple columns templates.
How many pages?
The rule is simple: if you have 1 or less work experience -> 1 page, otherwise maximum 2 pages.
It's very likely that no one is going to look beyond the first page, so if you have minimum relevant experience - you need to use everything to your advantage like university courses and projects, languages, and certification if any.
What do I need to write there?
- Your address or location: this may help the viewer to figure out if you can start quickly. E.g. if you are not in Germany, but looking to relocate just write so: Minsk, Belarus (open to relocate).
- Email (professional, not email@example.com) and phone number (with the international code)
- (optional) LinkedIn
Things not to write, basically anything else, but most importantly:
- marital/parental status
- date of birth
- gender etc
Is the photo required?
Not at all. At the same time, it is not prohibited in Germany to add a photo to the resume. So if you have a relatively fresh photo on which you look friendly and professional - use it. If you do not have it, get one.
You may be worried that this may add some bias against you - please do not. If the person reviewing your resume will judge you by your descent or skin color, you do not need to spend your time on such a company. I think about it this way - they will see my non-Western-European name anyway, so my friendly photo may defuse some of the unfortunate biases.
And the last, make sure if there is no explicit request in the job description not to add the photo. Some companies start asking this.
List the technologies you are comfortable to reason about. When listing skills I split them into rows by their "class", like:
- programming languages and the most common libraries used with its
- databases (e.g. Postgres, MongoDB, etc)
- infrastructure (e.g. docker, terraform, cloud providers)
- tooling (e.g. CI/CD, monitoring, etc)
The list might be very short if you just getting started in IT, however, there are some fundamental things you need to have in our toolbox: some programming language you can actually write code with, SQL (yes, the domain language itself), some databases, at least understanding of the public cloud providers and the tooling we, developers use for building our software. If you see the gaps - fill them.
No, please do not lie :) If you have some work experience - great, let's discuss how to present it. If you do not, scroll down a bit.
1. Dates: if you worked there longer than 1 year, you can help the reviewer with the estimation of the duration, something like:
05-2019 / present
2. Your role is more important than your company name.
Junior Software Engineer, Some Company GmbH
is better than:
Some Company GmbH, Junior Software Engineer
3. It's all about accomplishments! Compare:
- Writing software.
- Testing and releasing applications to customers.
- Communication and helping with other teams.
- Designed and wrote the customer facing API of the customer management system.
- Became a go-to person for unit and integration testing in the team.
- Shared best practices across other teams.
As you see - it's always "-ed", something completed in the past. If you have some numbers like "Reduced 99p response time of the Web API from 300ms to 120ms." etc.
What if you have work experience but are not relevant? Try to find something that might be actually relevant in the role that you are currently in. Otherwise, keep it brief or leave it out completely.
If you do not have work experience it's simple - start with the projects you did or courses took. Expand it with the technologies you learned and used + list what exactly you accomplished there.
If you have work experience - keep it brief, if you do not then add details about the relevant courses you took. Since the GPA is calculated differently in different countries (in Germany "1.0" is the best mark), write the percentile you are in like "top 10%", if it's worse - leave it out, no one usually cares.
If you know more than 1 language - it's awesome! However, it is also important to put them in order of priority for the job, e.g.:
- English (fluent)
- German (intermediate)
- Greek (native)
- Russian (intermediate)
This way you highlight that you know the language that is required for the job - English, and others that may not be relevant do not hide it from the viewer. Alternatively, you can write the official levels like A2, B1, etc, but then make sure that the main job language is at least B2.
I guess you like traveling, reading and sports, don't you? Do not write these, please :)
Of course, no one will make a decision to invite you to the interview based on the hobbies you have. However, if they decided to invite you and they also notice that you wrote something fun in hobbies, this may help the first impression about you. Maybe you play curling or have a video blog on YouTube about electronics, or you are really into economics or history - find whatever is interesting about you and write it down, otherwise save the typing.
Some other extra points to consider:
- Keep it consistent: low/upper case; line ending with "." or without.
- Keep it clean: do not overload the resume with text, remember the 3 main questions that the reviewer wants to answer quickly.
- A/B test: send out 10 applications of version 1, then change the structure and try again - iterate and improve 🚀
Hope you found something useful for yourself in this blog post. If you have any feedback, please reach out!