The design of a resume, just like its content, is very important because a well-designed resume will improve your chances of getting selected from among hundreds of others. This post will give you a few tips on how to design an effective resume. For general guidance on how to create a good resume, there are plenty online resources that will do it better than me. Here I’ll give you extra tips that may help when you are specifically seeking a job as a software developer.
I believe the objective of a resume is not about getting the job. Not directly. The primary objective of the resume is to get selected from among all the others and get the interview. Getting the interview is a slightly different objective than getting the job. Getting the job offer is the objective of every interview. Then comes the final objective of getting that contract, after the negotiations. That’s a different way to see things and you should design your resume to get you past all the filters between your CV submission and signing your contract.
Getting interviews, getting offers and getting the contract are three steps that will be discussed on this blog in the coming weeks. Today, let’s focus on getting those interviews.
Understanding the process for hiring a programmer
To understand why it is important to have a well-designed CV, you must understand what it is like to hire new developers for a company. When a company identifies a need or position, it is described and then published. They publish it on their website, on specialized job boards, and in many cases, and this is one of the specifics of IT world, they hire a recruitment company specialized in IT.
These professional recruiters are usually wrongly called “head hunters”. Head hunters are generally involved in hiring very high profiles such as CxO. The kind of recruiter we are dealing with are processing a lot more data, talking to many more people and therefore can’t use the same soft methods.
At their level, there are 2 major filters involved. One is simple computer software, usually poorly written. The other involves very busy humans: the recruiters themselves. How those recruiters work is important to know because you must create a resume that will prevent you from being ignored by their system.
First, the recruiters need to process hundreds of requests in the very vast & rich domain which is IT. Recruiters generally don’t have any IT background. If they did, given the actual demand they would be working in an IT company for a better salary. They are usually people with more sales oriented profiles that are willing to learn the high level concepts of their customer’s businesses. This problem, coupled with the fact they have hundreds of thousands of resumes in their database make it almost impossible to avoid the use of a search engine to do a pre-selection based on keywords. That's our first filter.
Hopefully, they don’t blindly export the results and mass mail their customers. They carefully check every occurrence beforehand. Here the level of professionalism varies between recruitment companies. However they all have something in common: they are very busy. A study based on eye tracking technology determined that a resume is read in less than six seconds and they look for six main things: name, current company & title, previous company & title, previous position start and end dates, current position start & end dates, and finally education. The rest of the data was almost completely ignored. Once your CV is picked, the final step usually involves a quick chat with you to assess your availability & confirm their understanding of your skills.
Once your resume passes that second filter, there is at least an additional one. That’s the person responsible for the recruitment for the company that wants to hire someone. If you are lucky, it’s the team leader of your future team, but it’s not uncommon to have one or more intermediates in between depending on the size of the company. Each of them is a human filter you need to pass. In addition to everything that interests the professional recruiters, your future employer will look for additional details that will be discussed later.
When no professional recruiter is involved, you go directly to the company. It's what I call the royal way. The royal way is not necessarily a good thing. It usually involves an HR department you don't want to deal with and/or potentially more documents to be processed by the hiring company.
The overall system you need to pass through, simplified for the purpose of this article, looks like this:
Many of you should now understand why when you send your resume to 50 companies, you receive so few responses (positive or negative).
Let’s go through each filter and see what we can do about it.
The professional recruiter
At this level, we saw that we have 2 filters: the search engine and the actual busy recruiter.
The software is the easiest filter to pass for a developer. Despite that, I see many CVs that seem to have been designed to be stopped by them. As I said earlier, they are based on keywords and without google science. Therefore you must ensure that every single piece of technology you know well is specified on your resume. I’m still receiving offers for ColdFusion gigs despite the fact that word appears a single time on my resume and in a mission from year 2000! Yeah that makes me think, and you should be thinking too, about removing every unwanted keyword that would get CV selected for projects that you are not interested in!
Don’t hesitate to specify a technology multiple times if used at different companies. As a developer we naturally aggregate that in an area called skills. While it would be a good idea to have such section in your resume, it doesn’t help you to get enough visibility. Repeating keywords for every professional experience will put emphasis on your experience in a particular technology and make it more visible to the recruiter. If you have 5 years experience and worked only 1 year as a java developer, it’s like you have only one year of experience in that particular technology. Don’t abuse those keywords. Be sure to specify tools you have actually used. I usually recommend that you put the words in bold for the technology you have mastered particularly well. On the other hand, remove any irrelevant keywords. I know you learn COBOL at school, but it’s already 5 characters too much on your resume.
The number of pages in your resume doesn’t matter much. What matters however is the first page. When you do a search on your favorite search engine, you rarely look at the second page. Ensure that the essential information is there on the first page. Here is a list of things important to the recruiter that need to be there. There are other things that are important to the hiring company that will be added in the next section of this article. Here we focus on what the recruiter will look for:
- Keep contact information short.
- Choose a good title for your resume. Common mistake is to put your education there. I usually recommend putting “Software Developer” which is the perfect description of a software developer
- Start with a short description of your expertise. It should not be more than 2 sentences. Don’t be too precise there. You’ll get into details later.
- List your professional experience first, from the newest to the latest. Be sure that the 2 latest are present on the first page. Each experience should have a start & end date, a position title, the company name, a brief description of the project (3 to 5 sentences, easy to read) and of course the list of technologies you used.
- Don't abuse titles. They are deduced by the description of your mission. They will be discussed in the interview as well.
- Put all languages you speak on the last page. If it’s important for the recruiter, he will look there.
- Avoid including your picture. The average human will unconsciously judge you based on how you look and you want to leave that for the interview. A recruiter will put even more emphasis on it because he will try to anticipate the judgment of his customer.
Gaps & job hopping
All this advice is far from being enough. You have already polished your CV to seduce professional recruiters, now you need to ensure that you don’t have anything in it that will be a blocker. The recruiter is playing his reputation, so he will systematically eliminate any resume that seems too dangerous. Two things indicate you are a potential danger (even if it's not true): gaps and job hopping.
Start & end dates of your experience are very important. Gaps can have many explanations. As a coach for developers seeking for jobs, I see those gaps very often. When I ask what the candidate did in between I get all kinds of answers and surprisingly, the explanations I get from the candidates are actual extra bonus points instead of the expected negative impact. If you took one year out to start a company (even if you failed); put it in your resume. If you took one year to visit Asia with your family; put it in your resume. If you went back to college; put it in your resume. A single sentence explaining the gap is more than enough.
Gaps are not the only disqualifying thing related to dates. Job hopping can be a serious problem too. Having too much job experience in a short period of time can be seen as instability, and therefore a potential problem to deal with in the future. The hiring process, not counting the internal training every newcomer has to do, is a very costly process for the company. Therefore, it's easy to understand why every employer is looking for (very) long term collaboration. The only way to soften how this can be perceived is ensuring that you put lot of visibility on contributions you made for each company your worked for. Make it evident that hiring you will provide value, even if you don't stay there for years. Please note that while job hopping is generally seen as a bad thing for employees, the same is not necessarily true for freelancers.
The hiring company
From multiple hundreds of matching resumes, the employer can still receive dozen of CVs on a daily basis. Believe it or not, many of them match their profile requirement. It doesn’t mean every profile fits the position, it means that there is more work for the hiring company to filter them out (again, since the professional recruiter has already pre-filtered them). He doesn’t want to spend the whole day reading that pile of paperwork, especially when the person recruiting is a different person than the person who is actually in need of that additional resource. Another common situation...
More importantly, nobody has the time to interview dozen of developers. So a massive filtering will occur just for the interview. Your primary objective is to pass that very strict filter and be in the first selection, just like you want to be in the first page of a google search. You want to give your prospective colleague the chance to meet you. In addition to all the tips specified above here are some that are usually overlooked.
You solve problems, you don't create them
First if you have a technological blog, participate in developer communities, wrote a programmer’s book, or all of the above, that’s something you want to specify on the first page of your resume. This will give you extra bonus points and many recruiters, especially if they have an IT background, will give lot of value to that.
Secondly, the company wants to know how you will help them solve their problem. The best way to show you are the guy they need is to write a short description of the problem you solved for each experience listed. Don’t limit yourself to describe what you did, but write why and how.
I developed a new backend system for their e-commerce website using ASP.NET and SQL Server.
How boring! Instead put yourself in the shoes of the recruiter and write something like:
Developed their new backend system allowing agents to process an increased number of orders and provided them with tools to improve communication with their customers. Facing aggressive deadlines & heavy pressure we heavily relied on extreme programming and scrum. We exploited the possibilities of ASP.NET & SQL Server to the limit.
Of course, everything you write must be true. You will have already read on the many other resources about building a great CV that telling the truth is the golden rule.
The texts above have been invented for this article, but having worked on these with dozens of developers, it’s generally possible to get amazing descriptions just by thinking a bit. By extension, be sure to avoid giving unnecessary facts. By removing useless information, you free up some space to put what is relevant to your future employer.
Miscellaneous & hobbies
Knowing what is relevant is difficult and one area that is often overlooked is miscellaneous or hobbies. Too often, it is completely removed for the purpose of a clearer CV. I believe it is a mistake because it is a great opportunity to tell them a bit more about you and influence the decision to get you into an interview. It helps the recruiter to understand how the candidate manages his life but more importantly, it gives information on his soft skills. I will take two real life examples.
The first wrote “sports, computing & movies”. When you talk a bit more with him about that, you discover that he runs intensively and often competes in marathons. Marathons? Yeah, that guy knows what effort is doesn’t he? I also recommended that he mentioned what kind of movies. I bet it is sci-fi ones, and I bet it would interest many other recruiting developers
The second one had “scouting” in the hobbies he listed. After few questions I actually discovered he was a chief scout, managing dozens of kids every weekend and in summer camps. That’s someone I need in my team!
Which aspects of your personality do you need to say more about and which are important points for recruiters? Ask yourself the question “what am I doing when I’m not programming?” and put everything you think would interest the recruiter. Don’t minimize your skills. Instead, put emphasis on them, while staying as humble as possible.
Your resume should demonstrate you are a problem solver and should avoid any indication that you are going to create problems. It’s a document that is supposed to sell yourself so there is no shame on putting emphasis on every good thing in you.
Summary of the tips:
- The first page is the most important one. Polish it.
- Use appropriate keywords, and highlighted when appropriate.
- Fill the gaps with relevant information.
- Anything that differentiates you from the lambda developer should be on the first page.
- Write attractive experience descriptions focused on your problem solving abilities.
- Don’t underestimate what you do outside programming. Use it to tell more about your capabilities and soft skills.
Unless your boss is really a bad guy, you should reconsider the feeling. If it's just that you don't want to work for someone, don't work at all. Because when you have your business you work for a boss much worse than your existing one: yourself. You will eventually work for many other bosses that really don't care much about your feelings: your customers.
If you really love software development, if it's what you are made for in life, creating your own company may be very disappointing. Today you do what you love (developing software) for most of your time. When you are an entrepreneur, you handle many other unpleasant tasks. You have no choice but to increase your work hours to be able to produce valuable lines of code. You will have to do lot of administrative tasks, handle customers (requests, complaints, questions, ...), learn legal & accounting stuff, call people, sell your stuff, handle employees (requests, complaints, questions, ...), think about tons of things at the same time ... all of this increasing your overall anxiety and fatigue.
Here is a quick test to see if you, as a developer, are likely to succeed as an entrepreneur. Answer each question by true or false.
1. I dislike the sales part of the process and prefer to make the product
2. I'm a perfectionist
3. I won't accept to be paid less than my market value for an extended period of time
4. I really like to take care of the details
5. I really dislike being criticized by other people
6. I don't have any savings or personal investments
7. I have never been fired
8. I don't have friends or family that run their own businesses
9. I am afraid of losing all my assets
10. I'm an anxious person
If you answered "True" at least three times you should seriously reconsider creating your company.
If you really want to start your own business, consider creating a consultancy company first, then create your products later. Many successful software companies started like this. It works because the services (much more easy to get money from) pay the bills while you develop your products. If the product fails, it is no big deal.
As a consultant, I worked in various domains such as utility, telecom, aeronautics, finances, insurance, etc and I've faced the problem of not knowing very much about the domain I was entering. With time, I discovered a very simple method that works: being actively curious.
- Request a one to one introductory meeting with your supervisor with the purpose of getting them to explain the business domain (the big picture). It should not last more than 4 hours (or you will get bored and your supervisor exhausted). Prepare your questions in advance. Take notes.
- Ask the supervisor for a field visit. When I worked in the telecom industry, I asked to visit the router and transmission rooms as well as the NOC (Network Operations Center). It helped the team building the software to understand the purpose instead of blindly writing code. We knew why our stuff was useful and more importantly, who will be using it, and how.
- Have frequent lunches with suits. More frequently, I would say, than with fellow programmers. They love to talk about their stuff and if you listen carefully, you will learn lots of amazing things. Be prepared to share some amazing stuff with them too or they will soon find you very boring.
- When you have the chance, visit the departments. Ex: when I had to work with a marketing manager of a big finance institution, I asked how our applications helped them and what was her routine. By actively listening to her, I was able to find out new stuff to automate and make her work life easier. I suggest you make a physical visit rather than a phone call. This means you can see her doing the thing and more importantly, using your application! What is obvious for you may not be so obvious to the rest of the world.
- Buy books on the domain and watch youtube videos. Read your domain's information websites as well. Give priority to higher level literature. Books that are too technical could be boring or impossible to understand in the beginning. What you need is general concepts to fuel conversations and learn more.
- Talk about it to your friends & family often. Talking about your stuff will help you integrate the huge amount of information you must learn. Prepare an elevator pitch and be prepared to give details. Don't hesitate to write it down so it is easy to remember.
- Read all the news your company publishes. Including annual reports. In fact, the first thing to do when you are hired by a new company, is consult their website and publications.
- When you don't understand something, don't hesitate to ask the guy in the company (email preferred) that can answer your question. The worse thing that could happen is being told that (s)he has no time for that.
Remember this: the developer that knows the domain very well is no longer just a simple developer. You are a little more than that. And so is your market value.