# Pimp Up Your Resume

Source: https://www.yegor256.com/2016/03/08/pimp-up-your-resume.html

There are tons of articles about resume writing. Literally,
[tons of them](https://www.google.com/search?q=how+to+write+resume).
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]({% pst 2017/jan/2017-01-24-career-advice %}) and face no hesitation
from your clients in paying.


{% jb_picture_body %}

## 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.

## Don't Lie

{% quote You can tell half of the truth, you can hide some information, and you can rephrase the truth, but never lie %}

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.

If you're saying that you're an "expert in JavaScript,"
be ready to explain what the key new features of
ECMAScript version 6 are. If you can't, don't use the word "expert." The point
is that you have to be ready to prove every word.

## 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.

{% quote If there are too many skills, it's a sign of a "jack of all trades" who is almost always a "master of none." %}

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](http://stackoverflow.com/users/22656/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.

## Stack Overflow Profile

No matter what anyone [says]({% pst 2014/oct/2014-10-29-how-much-do-you-cost %}),
[Stack Overflow]({% pst 2017/feb/2017-02-14-stackoverflow-is-your-tool %})
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 Stack Overflow profile now, create one.
Spend one hour on it every day for a few months, answering
[new questions](http://stackoverflow.com/?tab=interesting).
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 Profile

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]({% pst 2015/dec/2015-12-22-why-dont-you-contribute-to-open-source %})
to some open source. You have to be visible in the open source world if you
want to sell yourself high.

{% quote You don't have to spend all your time on open source projects, just contribute to the ones you're using already %}

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.

## Certificates

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](https://en.wikipedia.org/wiki/Oracle_Certification_Program) 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.

## Blog

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](https://www.wordpress.com), [Blogger](https://www.blogger.com),
or [Tumblr](https://www.tumblr.com). Instead,
I would recommend you think about static site generators like
[Jekyll](https://jekyllrb.com/) and host
it all on [GitHub Pages](https://pages.github.com/). 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.

## Ambitions

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.

## Education

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.

## Conferences

Every year, you must give a few presentations at [JavaOne](https://www.oracle.com/javaone/index.html).
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](http://lanyrd.com) (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.

## Career History

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]({% pst 2015/oct/2015-10-06-how-to-be-good-office-slave %}) (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]({% pst 2015/jul/2015-07-21-hourly-pay-modern-slavery %})?

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.

## Mention Hobbies

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.

## Layout/Graphics

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.

<hr/>

Want free advice on your resume? Send it to
[cv@yegor256.com](mailto:cv@yegor256.com), 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.

You may also want to join our Telegram group [@resumania](https://t.me/resumania),
where you can publish you CV and receive free feedback from the community.

Look at these samples (they are good):
[`@dozortsev`](/pdf/resumes/anton-dozortsev.pdf),
[`@leventov`](/pdf/resumes/roman-leventov.pdf).

Here is [mine](https://latexonline.cc/compile?git=https%3A%2F%2Fgithub.com%2Fyegor256%2Fblog&target=_latex%2Fresume.tex&command=pdflatex&trackId=1520158941887)
and its longer and [boring version](https://latexonline.cc/compile?git=https%3A%2F%2Fgithub.com%2Fyegor256%2Fblog&target=_latex%2Fboring.tex&command=pdflatex&trackId=1520166474432).
