How do you describe yourself to potential employers? Many developers get this terribly wrong. In part 1 of this blog post I talked about getting a better job by building awesome stuff. In this part, I'll talk about how to communicate your awesomeness.
Write for humans
Applying for a job normally involves writing a cover letter and CV. The whole process can feel very impersonal - filling in online forms, typing words onto a screen, hitting the Submit button and maybe never hearing anything back. Yes, it sucks. But remember where your words will go, as you send them off on their journey. They will be read by another human being. Sometimes I've seen people applying for a job who must have thought that their cover letter and CV would simply be fed into some kind of computer that would check their skills off against a list of requirements. While it's true that some companies have systems which automatically check your CV against a list of keywords, you don't want to optimise your job application for their simplistic software. Software is not going to get excited by your CV, but a human should. Unfortunately, human beings are flawed - they sometimes come to irrational decisions, they are clouded by emotions, and they get bored. Humans like stories. So tell your story. You want to make that person on the other side interested in who you are. You want to make them excited because they've found a promising candidate for the job they're trying to fill. You want to give them a clear idea of what you're all about. You want them to be on your side.
Who are you?
I've been involved in recruitment a few times, both at Stack Overflow and elsewhere. When I'm reading your cover letter and CV, I'm trying to answer one question - "who are you, and why should I care?". It might sound harsh but that's what it ultimately comes down to, especially when you have a big pile of applications to go through. There is no "correct" way to write a CV or cover letter - you can read lots of advice about structure and formatting, but the sole purpose of these is to answer the question. If you fail to answer it, you'll have a hard time getting a great job. To answer it, you need to communicate a story about yourself. Who are you? What have you done that's interesting? What excites you about the job you're applying for? How can you convince somebody that you're capable of doing the job? It's a story about you, so write in your own voice. Don't waffle - anything that doesn't add to your story only detracts from it. Get to the point and keep it simple. You want to leave the reader with a clear, convincing message. They should be left with a clear feeling that you're obviously a great candidate for this position.
What we're looking for
So, what things should be in your story? At Stack Overflow, when we hire developers, we're looking for people who are passionate about coding, have an appropriate level of experience (both breadth and depth), and who Get Things Done. Other companies will have their own criteria, but if you're the kind of person who is smart and gets things done, and you want to work with other people who are smart and get things done, then your cover letter and CV should be all about that, whichever company you're applying for. How do you convince us you've got what it takes? We want to see that you're passionate, experienced, and get things done, so you should just say that, right? Wrong. You don't get to inject thoughts into people's heads just like that. You have to give us the evidence that leads us to that thought. You want us to come up with the thought ourselves. If you tell us what to think, it's not just patronising but boring. Here's the kind of thing people write in cover letters all the time:
As an outstanding senior-level software engineer with over 8 years of experience using Microsoft technologies, I believe I possess the skills, qualifications and vital experience necessary to make a very profound contribution to your business operation. In my current and previous roles I have delivered substantial improvements in creating high quality systems and streamlining operations, resulting in improved revenue, increased profits, and a high rate of client satisfaction.
This is just tiring to read. And it doesn't even say anything! There is no actual information in there, just a list of things this applicant wishes us to think. Tell us an actual story, give us the evidence, and let us come to our own judgements. If I read something that makes me think "this person must be really passionate about coding", that's a lot more convincing than simply telling me you're passionate about coding. It all boils down to that classic writing advice - "show don't tell".
Be interesting
Chronology is not the most important thing, so you don't need to start at the beginning of your story. I often see people start cover letters with things like:
I started computer programming 18 years ago as a hobby ...
Sure, this is the first thing that happens in the story, but it's not the most important thing, and it's not a great hook. You know how movies tend to start with something exciting happening, and then fill you in on the background later? Try doing that instead. Hook me in with something interesting and unusual about you. A lot of programmers started programming as a childhood hobby, so lead with something else.
Don't waste time on things we already know
Another common way people start cover letters:
I recently came across your job posting on your company website for the “Full-Stack Web Developer” position. After reviewing the details of the position I found that the requirements necessary and my experience could be a great fit if given the opportunity.
This doesn't tell me anything at all. It's even less interesting than why you started programming - you're just telling me you're applying for a job. I knew that already. You think you fulfil the requirements of the position - well, of course you do!
Don't waste time on things we don't care about
There's no need to give us your complete life history. One applicant included this on their CV:
Drove dump Truck, operated machinery, all manner of physical construction work.
What did they think they were adding by giving us this information? You don't need to include every detail of every job you've ever done. You don't want to distract from the overall story you're telling.
An example
Here's an example of a cover letter that worked - it's my own, from when I applied to work at Stack Exchange almost two years ago.
Looking back at this now, what's interesting is that it's not brilliant. At all. In fact it's embarrasingly short - I clearly didn't spend as long on it as I should have. However, it does demonstrate the points I'm making. The first sentence just gets straight to the point, saying who I am and what I'm all about. There's a link there to all my open source code so anybody can go and look through that. It explains why I'm applying now, to this company, and why I'm excited at the opportunity.
Completing the cycle of awesome
That's it! In part 1 of this blog post, I talked about breaking into the "cycle of awesome" by building awesome stuff. If you build awesome stuff, it's a lot easier to tell people how awesome you are. You're much more likely to be passionate and excited about stuff you've built yourself, so it's actually easier to write your story - it's much easier to write about things which you care about. Now you can complete the cycle, and find your way to an awesome job. It's not the easy way - there is no easy way to be awesome - but it is possible, and you can do it. To find an awesome job, whether it's in C#, Javascript or any other language, check out Stack Overflow Jobs.