In my day job I see lots of CVs and most of them are, frankly, terrible. Some of them are probably OK for applying to companies you don’t want to work at, like banks or large consultancies, but if you want to work in a small startup-like company with really smart people then you need to rethink a lot of what you’ve got on there. Not that I’m necessarily including myself in the really smart category, but I’m doing my best to make sure everybody who works for me is; managing people is easy (or easier, at least) if they’re better than you!
So, if you want to get through the door, this is what you need to do.
Firstly, and most importantly, I want to see prominent links to your GitHub profile, your Stack Overflow profile, your blog, your twitter feed, online courses you’ve completed, the website you made for your cat, etc., etc. In other words, convince me that development isn’t just a job for you, that it’s a passion, and something you’d do even if you didn’t get paid for it. Because if it isn’t, you’re never going to be great. Sorry, but you’re not. And that’s fine; not everybody needs to be great. There are plenty of jobs for people who aren’t. They’re just not on my team.
Of course, these things aren’t just useful for showing you’ve got passion. They’re useful for showing that you can write code. We use Codility to administer coding tests for people who haven’t got enough of a public profile to convince us that they’re worth getting in. These are kinda fun – I sometimes try the questions out in my spare time for a bit of a challenge, and to see if there are new questions I’d like to use – but they’re a massively flawed way to see whether you’re actually a good developer. You might come across a question that doesn’t suit you, or one that you just can’t see a solution to… or you might just have a bad day and do badly. Why take the risk? Show me code or forum answers or anything that proves you’re awesome and we can skip past all that and start talking straight away.
The next thing I want to see is a bit of a personal profile. It doesn’t have to be long – a few sentences is enough – but it should give me an insight into who you are, what you’re looking for in a job, and what you’re not looking for in a job. Tell me what languages and platforms you like, and maybe even a short note about why. Tell me what languages and platforms you don’t like and why; often that’s even more interesting than the positive stuff! Make me want to hire you as a person before I even start looking at your GitHub/SO/etc. profiles (note: at this point I’ve given you plus points for the links being there, but I probably haven’t checked them out yet; make me want to do so!).
An important point when writing your personal profile is not fill it full of buzzwords like “motivated self-starter”, “passionate”, “enthusiastic” and “over-achiever”. Everybody puts that on there so you’re just wasting space. Also, don’t put things on there like “loves learning new technologies” unless you really do love learning new technologies and you can back it up on your CV (e.g. you’ve introduced them at work, you’re put a project using them up on GitHub, you’ve blogged about them) otherwise I’ll just assume you’ve put this down because you think it’s something you should have done when you were actually slumped in front of the TV.
And please, please, don’t write it in the third person because it just makes you come across as a pompous asshole.
If you haven’t got any links to your profiles on the web, and you haven’t got a personal profile, then I’ll probably stop reading at about that point. In many cases, that means I’ll have got about as far as your name before I stop caring.
However, if you’ve got both then I’m probably already getting interested enough to think about setting up a chat, either on the phone or in person, so pretty much all you’ve got to do is not screw it up in the rest of the CV. As such, here are the things that you shouldn’t do.
First, don’t have a skills section listing every single technology you’ve ever heard of. In fact, don’t even have a skills section at all. If it isn’t important enough to highlight in your personal profile, then it isn’t important enough to highlight full stop. The right place for any non-key technical skills is in your employment history which lets me see the context in which they were used. Long lists of technologies might be good for keyword-matching algorithms, but they just make me think you’re spamming your CV out to lots of companies rather than being selective about your next role, which is hardly indicative of a great developer.
However, if you really insist on having a skills section, then here’s a list of things not to put in it:
- JSE, JEE, Java ME, JMX, JAXB, JAX-WS, JAX-RS, JMS, JDBC, JPA, JUnit, TestNG, Spring, Hibernate, Log4J: If you’ve done more than a couple of years of Java then it’s fairly safe to assume that you’ve used most or all of the above. It’s not something that makes you stand out because everybody has done all of those things.
- XML, XSLT, XPath, JSON, UML, SQL, etc.: You’re a developer. I assume you know this stuff well enough to get by. You don’t need to call it out specifically. OK, if you’re unbelievably amazing at SQL then it might be worth calling out, but what you probably mean is that you know how to create, update and delete stuff which is hardly mind blowing.
- SVN, Perforce, CVS, Git, TFS, Jira, BugZilla: Wow! You can use source control and bug tracking systems! Who would have thought any developer in the modern age would be able to do something like that?! If you’re Linus Torvalds and you actually wrote Git then by all means put it on there, otherwise these are just yet more things I’ve already assumed you’re comfortable with.
- Eclipse, IntelliJ, XCode, Visual Studio, Flex Builder: Seriously? You’re telling me that you used IDEs to write code? I honestly cannot imagine what goes through the mind of anybody who thinks that listing the IDEs they’ve used on their CV is going to be in any way beneficial to their chances of getting a job.
- Windows, UNIX, Linux, OS X, Word, Excel, PowerPoint: Now you’re just taking the piss.
Hopefully I’ve discouraged you from having a skills section, so let’s move onto the next section (and it should be the next section after your personal profile) which is your career history. What I want to see for each job are these details, in reverse chronological order:
- Job title
- Company name
- Start and end date (month and year is fine)
- A description of what you did
You don’t need to put a description of the company, a link to their website, or the marketing blurb from the products they made (I’m not kidding, somebody really did once send me a CV with half the brochure for the company’s products under each job). If the company is significant then I’ll recognise it. If I’m interested I’ll look it up. If not, I won’t. In any case, there’s no point in it being on your CV.
The start and end date is important because it lets me see how long you’ve been in each job, and whether there are any gaps. Everybody’s path varies so I try not to read too much into this, but if you’ve got a lot of short jobs or a couple of significant gaps then it’s likely to raise eyebrows. It’s not necessarily going to be a problem, but you should be prepared to explain it in an interview.
In the description of what you did, don’t use bullet points. I know you think they stand out and they’re easy to scan, but in reality they just seem lazy and don’t tell a story. Write in prose. I’m looking for a summary of what you did there and which technologies you used. It should be as short as possible, but no shorter. Don’t miss out important details in the name of terseness, but at the same time don’t make it an essay. If it’s getting much beyond half a page then consider trimming it down. And as the jobs age, the descriptions should get shorter; nobody cares about the finer points of the FORTRAN job you had back in the 80s.
Note that the description should contain what you, specifically, did in the job. Not what you were “involved” in. Not what you “participated” in. Not what your team did. What you actually did. Steve Yegge calls these slippery verbs weasel words because they’re a great way to seem like you did some cool stuff, when in reality you sat on the sidelines while other people did the work. If you didn’t do it yourself then don’t put it in there.
The next section should be education, which pretty much means your degree if you have one. If you don’t, then just skip this section. Similarly, if you got a 3rd then you’re probably better off just pretending you don’t have a degree, because all that says is that you slacked off and got pissed when you should have been studying.
Finally, the interests and activities section. Actually, scratch that. Nobody cares about your interests and activities when they’re recruiting, so leave them for the pub once you’ve got the job. The only real exception to this is if one of your interests aligns with the company – for example, we’re a book company so if you love books then it’s worth highlighting that – but it should be highlighted in your personal profile rather than hidden down at the end of the CV. I’m assuming you’re smart enough to tweak your personal profile so it’s tailored to each company…
So there you are: three sections (profile, career, education) and no bullet points. Keep it under a couple of pages if you can, with three being an absolute outside limit. I see a lot of CVs and I only have a finite amount of time to spend looking at each one, which means that I’m not going to read every detail of the eight page masterpiece you’ve sent, even if it is of Dickensian quality.
Keep these tips in mind, and you’ll have an interview in no time. See you there!
Oh wait, I nearly forgot, because it’s so obvious that I shouldn’t even have to mention it. The fact that I do is something of a tragedy:
- The acceptable number of spelling mistakes on a CV is zero.
- The acceptable number of grammatical errors on a CV is zero.
- The acceptable number of incorrectly capitalised acronyms on a CV is zero.
If your first language isn’t English, the rest of your CV is brilliant, and I’m in a good mood then I might make a concession and allow one mistake in one of these areas. But I probably won’t. Development requires precision, and if you can’t even get the couple of pages you’re using to try and shape the next few years of your life right, then how can I trust you with code?
Get somebody to check your CV over before you submit it. Even a word processor will do a better job than most people manage; those red and green squiggly lines under words aren’t just there for decoration!