There are tons of articles about resume writing. Literally, tons of them. And here's yet another one? Well, maybe ... but I don't think so. I'll try to give you a few practical hints for how to make your resume look "sexier," and how to position yourself beyond the "good programmer" category and into the superstar zone. It may take a few years to truly pimp up your CV, but when it's done, you will charge $100-plus per hour and face no hesitation from your clients in paying.
One Page, No Exceptions
I think it's obvious, but only one out of 10 resumes I've been getting each day fits onto one page. All the others take three or more pages, and this looks very unprofessional. If you can't explain yourself in one page, there will be doubts about your skills in scope management, which are very important for a software engineer. It shows you simply can't filter out what's non-important and focus on what really matters. Besides, it's just boring to read three pages.
Thus, strictly limit yourself to one page, no exceptions. Your resume is an "executive summary" of the product you're trying to sell. It's a marketing brochure. A sales flyer. A sticker on my refrigerator, if you wish. It has to be short and straightforward. Employers will either buy it or throw it away. They don't want to read it; they want to buy you. Or throw your brochure away. Four-page brochures have far fewer chances than one-pagers.
No matter what you do with your resume, never lie about a single word. You can tell half of the truth, you can hide some information, and you can rephrase the truth, but never lie. You don't know who is reading your CV and which desk it will end up on. Be ready to answer for every word you have on it.
Sexy Photo on the Top
You want them to work with you, right? They want to see you. So a photo is a mandatory component of a CV. And try to make it look artistic. Ask your graphic designer friend to style it. Maybe even pay for this work. Just pay attention to the photo; it's very important.
Do I have to say that you must smile on that photo? Well, yes, you must. And make it casual, with a T-shirt and funny background. You must look relaxed and successful. You don't want to get hired; they want to hire you—this is the message your photo should send, just like in online dating.
Skip "Objective" and "Title"
"Senior Software Developer," "Seasoned Java Programmer," "Talented IT Professional," etc. It's boring and doesn't sell you at all. They know what you are, because they are reading your resume.
Besides that, you're limiting yourself with that title. Maybe they are looking for a VP of engineering while your resume says "Software Architect." That's immediately a mismatch for them. It's a strike against you. Your name is the title of your resume. That's it.
A Dozen Skills
This section of your resume actually tells them about your "tech focus." It must have a very short list of skills, definitely under 12. You simply can't be an expert in MySQL, PostgreSQL, Oracle, and MS SQL at the same time. If there are too many skills, it's a sign of a "jack of all trades" who is almost always a "master of none." Don't do that.
Find the most important skills in your profile and put them there. Just a few. And make sure the skills are all on the same level of abstraction. Java and AngularJS must not be present together. Java is a few levels higher than AngularJS. Thus, it's either "Java, SQL, and HTTP" or "AngularJS, Spring Framework, and Web Sockets." I would recommend you stay at the lowest level you can until you become a serious market figure. For example, "Java" as a skill would look good in Jon Skeet's resume, because he definitely knows the entire Java world, and the market has recognized that. But if you're a programmer with just three years of experience, how can you "know Java?" You barely know a few hundred classes from it. That's why it's better to state specifically which parts of Java you definitely know. Like I said, be as low-level and specific in your skills as possible.
No matter what anyone says, StackOverflow is the de-facto standard platform for asking and answering technical questions. Your presence there and your high rating send a clear message to your potential employer that you're a superstar (or a rising one). No so many people have 100K or more reputation points there. You must be one of them.
So even if you don't have a StackOverflow profile now, create one. Spend one hour on it every day for a few months, answering new questions. You will earn 1,000 or more reputation points. Well, provided you have something to say. That's enough for a start. Post a link to your profile right in your resume.
Even if you don't have much to say, be there. Read answers made by others, comment on them, try to help them, and correct them. Become an active part of the community.
GitHub is the de-facto standard platform for open-source code. There are others like BitBucket, but—I hope—they will die sooner or later. As a modern software developer, you must be on GitHub. You have to contribute to some open source. You have to be visible in the open-source world if you want to sell yourself high.
Your potential employer wants to see what the market is thinking about your code and about you. They are afraid of making a mistake by hiring you. Your presence in the open-source world is a guarantee for them. Someone has already seen your code, and someone has already given some kudos to your projects. Someone virtually vouches for you. As a result, they will feel more comfortable in hiring you.
To be in the "elite," you don't have to spend all your time on open-source projects. Just contribute to the ones you're using already. You're using Sinatra at work? Check its source code. You will find a lot of places that need improvement. Offer them your help and simply submit small pull requests here and there. Besides that, create your own products and market them. You will be surprised by how many users and followers you will attract in just a few years of such activity.
Some may say they are not important. Maybe so. But your resume must have them. Some of them are not so difficult to get. With just a few weeks of study and a few hundred dollars, you are not just a Java programmer but a certified one. And there are not so many of those out there. There are millions of Java coders in the world, but only a few percent of them are certified. Regardless of whether you think it's important or not, get those certifications.
As many as you like. But stay away from BrainBench and similar sites. Well, you can get certified there, but don't put them into your resume. That will only demonstrate that you are proud of a very questionable achievement. It's not a good sign.
Sound Names and Numbers
It's a dangerous trick, so be careful. Here is how it works. You have to go through your entire professional history and find well-known names or big numbers. For example, 10 years ago I was helping a startup create software that had IBM as a subscriber. They managed to get some tracking, and in two months, IBM decided not to use them anymore. It's a true (and sad) story, but I can put something like this into my resume: "wrote software for IBM." Am I lying? Not really. If they ask me what exactly I did for IBM, I will explain. In most cases, they won't ask. They will just buy this big name and put my resume on top of others.
You can do the same with numbers. Here is another true story. A few years ago, I was helping a company configure a continuous integration pipeline. It was not a big deal, but the company was serving more than 5 million hits per day on its website. That's a big number. I had nothing to do with this substantial web traffic, but I was in that company for a few months. So I may say in my resume: "configured the delivery pipeline for a 5M-hits-per-day web store." If they ask me for details, I will be able to give them. I'm not lying.
Use this technique carefully, and never lie. But do it. Don't be scared. Your resume needs big names and numbers.
Create your own blog. Start writing. About what? About your everyday achievements. About the code you write and read. About what you observe in the office. About your thoughts and your plans. About the books you read. You absolutely need to have a blog if you want to position yourself as an expensive software engineer.
It doesn't need to be a very popular blog; don't focus on numbers. But it has to be properly created, designed, and hosted. Don't use WordPress, Blogger, or Tumblr. Instead, I would recommend you think about static site generators like Jekyll and host it all on GitHub Pages. That's what I'm doing.
Besides being a valuable addition to your resume, systematic and regular writing will help you structure your thoughts, plans, and decisions. Well, that's what I'm getting from my blog.
If you're young and your resume is not full of bright achievements yet, you can add "ambitions" section to it. There you say what you're planning to achieve, to impress your future employer. For example: "learn Go," "create a new open source CSS framework," "write a book," or "earn Oracle Java certification next year". This will demonstrate that even though you're young, you do care about your career and professional growth.
I would limit yourself to a few letters in this area. Just "MSc" or "BSc" is enough. There's no need to say when you graduated and from which school. You can give those details later. Well, there are just two exceptions to this rule.
First, if you're a PhD, put that on top of your CV. It's important, and it's valuable, simply because there are not so many of them among programmers. Second is if your school is Stanford, MIT, or something similar. If that's the case, also put it on top of your CV.
In all other situations, just write "BSc" and that's it.
Every year, you must give a few presentations at JavaOne. I'm kidding. About the JavaOne part, anyway. But the "every year" part is very true. You must regularly make some speeches somewhere, preferably at JavaOne. But until you get there, speak where you can. Well, where they accept you. Create a profile at lanyrd (or something similar) and regularly check which conferences are looking for speakers. Submit there and you will be surprised to see that a few of them will actually accept some of your ideas.
The easiest subjects to start with are stories about your practical experience with some modern technologies and tools, something like "How Docker Helps Us Optimize Delivery" or "Five Apache Spark Installation Issues." Just describe what you've done on a recent project. It doesn't really matter what you talk about. What matters is that you're visible. If the market accepts you, the employer will trust you more. That's exactly what you need in order to request a higher rate.
I'll be speaking for myself here. As an employer, I don't really care about your history at all. Moreover, if you have never worked anywhere full-time, I would probably be more interested in working with you. But that's just me, because I truly believe that modern offices and full-time jobs turn programmers into slaves (and not only programmers).
Other employers may think differently. Well, they most likely think differently. That's why you have to demonstrate with which offices you've spent 10 recent years of your life. I would recommend you keep this list short. Even if you've changed eight companies over the last two years, don't say that. Just three places is enough. That will show them you're a good slave—very loyal to previous masters. That's what they want to see, because they are planning to buy you and become your next master. Right? Sounds harsh? Isn't it true?
Also, your experience section must mention your achievements, not your duties. Instead of "managing 300+ AWS nodes" or "building mobile apps" it's better to say "created 300+ AWS nodes infrastructure" or "built a few mobile apps".
ACM, IEEE, JUG, and Other Memberships
These memberships mean literally nothing but will demonstrate that you are part of those communities. Just like with most other things mentioned above, employers will trust you more if the market already trusts you. These memberships don't really mean that anyone has recognized you, since you get them just by paying annual fees. But still, you're paying those fees, and most other applicants aren't. You're definitely more reliable than many others.
I think information about hobbies is important. Some say it's not, but I believe that a personal "click" between you and your potential employer plays an important role. There is a human on that side. He or she is reading your CV, and he or she wants to like you—mostly in order to be comfortable making a hiring decision. Help him or her like you faster. Mention that you enjoy skiing, monkey-feeding in the zoo, and Jimmy Kimmel. Be creative, not boring. Just like you do in online dating.
How should your one page look? Stand out! It must express your personality. Don't use the "resume templates" downloadable for free. Create your own layout and design. If you're not a designer, ask your Photoshop friend to do it for you. Actually, there is not much to do; just select the right font and add a few colors here and there.
This CV is your product. You made it. It's your baby. If it's just a Word document in a standard template, they will feel you didn't pay attention to it. You didn't even care to create that small but very important product nicely. How will you create their software? With the same attitude. Don't ruin the whole show with a careless design. That's the key word here—"careless." It doesn't need to be complex. It may be very simple. But it must be yours, made with care and love.
Want free advice on your resume? Send it to firstname.lastname@example.org, and I'll let you know what I think. I will reply to all emails, but be ready to hear mostly what's wrong. What's right you will know without me, when they pay you $200 per hour.