You only get one opportunity for a first impression. From then on in it’s either working for you or against you. This applies across all media, from websites (where you have 7 seconds to impress the visitor) to meeting a new person at an interview (where you have even less). Getting off on the wrong foot means you need to be incredibly impressive to stand a chance of landing your new role, which whilst not impossible is certainly going to make difficult interview even harder. On the other hand if you arrive and instantly make a bond with an interviewer then the job is yours to lose; psychologically they’re going to be rooting for you to do well, so as long as you don’t make any major mistakes then the person on the other side is going to do try his best to get you hired.
“But how does this relate to my CV?” I hear you cry. Your CV is your very first first impression. When those pages land on someones desk it is the first time they have been exposed to you and what you stand for. Interviewers literally receive hundreds of CVS for every role so understandably very few of them stand out as exciting. Let’s be clear; your CV is a sales document. After reading your hard crafted words you want whoever is reading it to turn to the person next to them and say ‘hey, this guy looks really good. We should bring him in soon”. I would say this happens fo me this happens every 20 CVs or so.
Before we dive into crafting the perfect programmer’s propaganda, I have one crucial piece of advice that applies not just to CVs but to all of the hiring and interview processes that you’re going to go through.
Killer advice: Everyone is different
All of the people you are going to talk to during the interview process are going to have differing opinions on what makes a good developer. If there was a standardised exam or some other way of telling a good developer from a bad one then it would make hiring a whole lot easier (and no, being a Sun Certified Java Programmer does not even come close). Every interview you go to is going to have different questions and each interviewer is going to have a different set of values. One may value polyglot developers. Another may value TDD and BDD. The next may believe all code should be done in notepad and hand compiled. There is no golden bullet.
As a candidate it can be hard to remember this. Perhaps your CV isn’t getting you interviews, or maybe you’ve been on a couple of interviews and haven’t progressed. Your head drops and you conclude that you’re stuck where you are and that you’re not good enough to get a new job.
The reality is that you’ve just not found a place that aligns with your values yet, and that’s ok.
What you want from a job may make it easier or harder for you to find a role. For me, I hate big-o notation and performance questions because I have google nearby and I believe people have a tendency to prematurely optimise code; real performance problems happen very rarely. That means there are interviews where I come out and know I have done terribly, and I don’t care. I’m comfortable knowing I don’t want to work for them because their values don’t align with mine. Does that make it harder for me to get a job? Yes, but it means that when I find a role it’s the one that I really want. You spend most of your life at work, so you may as well spend the time to get it right.
This is a roundabout way of saying that there is no golden template for your resume. You can send a CV to 5 different people and get 5 different responses. All you can do is bullet proof your document so you don’t have stupid things like spelling errors (which happens a lot) and then use your text to craft a message that makes you as desirable as possible to the type of people you want to work for.
Java Developer Resume Format
How long should it be?
This is the source of much debate. My view is vehemently that if possible, it should be one page (with an absolute maximum of two). People don’t have time to read resumes in details and they don’t care what school you went to or your last 15 jobs. They want a brief sales pitch about why your skills fit the job. By keeping it brief and packed with only important information you’re making the job much easier for the reader whilst demonstrating your ability to communitcate concisely.
On the other side it should be noted that in the past I have been told by recruiters to bulk out my CV. If you’re working with a recruiter they will often cut up and edit your CV as appropriate for roles anyway. As a result I keep 2 copies of my CV; the first is a brief, single pager with my key roles and experience condensed down. The other is a 2 pager with as much stuff crammed in as possible for recruiters to work with.
Do not be tempted to create a 15 page tome of thousands of words. When I receive these it’s an instant red flag. Bigger is not better and you’re just highlighting your inability to communicate effectively. If the company needs your history going back 15 years then they will come and ask you for it at a later date. A resume is your sales document to say what your best skills are with clear examples of you using those skills to achieve great things. Let me say that again. Your CV is your opportunity to say what your best skills are. It should be achievement focused, showing what your amazing talents are, and what they’ve helped you to achieve.
Not all candidates include this but I think it’s the most important part. This is a single paragraph introduction to you and your brand. What do you stand for? What do you care about? Think of this as your elevator pitch, where you can outline what makes you great and why someone should hire you. Talk about what your passions are; maybe you love TDD, or you think of yourself as the tsar of concurrency. Start off with this. It’s a nice way to set the stall at the start of the document.
However, avoid being tacky in your opening blurb. Don’t forget there is a person on the other side that’s going to be reviewing this; candidates seem to love piling in as many buzzwords as they can: “self motivating with attention to detail”. What does that even really? I can guarantee the person reading your CV won’t know. If someone asked you during thte interview what about you exemplifies those skills could you answer it? I’m guessing not convincingly. Aim to write in a clean and simple fashion. If there are some buzzwords you want to put make sure that you have the material to back it up; my CV talks about how I’m a passionate technologist, which I then back up with outside of work projects and examples of where I’ve used that passion in my roles.
The simple fact is, most of it won’t get read. The person recruiting has a lot of these to read through so will likely read only this paragraph and if you’re lucky skim the rest. Get this section right and put your most impressive material first.
You don’t need more than the last 5 years or the last 3 roles, whichever is smaller. This should be brief and focus on what you produced and how you did it. It’s incredible how many summaries I read which tell me all about the history of company X where the candidate worked and the ambitious project that company was executing. That tells me nothing about the person behind the resume. Here is an example of what not to do:
”Senior Java Developer, Awesome Co. July 2012- July 2014
Awesome Co. are one of the worlds leading investment banks. Based in New York and with offices around the world the company prides itself on a customer centric approach to banking.
I was working on Project X. This project was a 200m investment to create a next generation banking platform over an ambitious 3 year period based on Java and NoSQL technology. The project has a strong focus on agile delivery and creating a low latency system”
You’ll notice there’s almost no reference to the candidate. So many programmer resumes are formed like this. Compare this instead to the following resume example:
”Senior Java Developer, Awesome Co. July 2012- July 2014
Successfully lead a team of 6 developers using agile methodologies and iterative delivery on an ambitious timeline to produce an industry leading platform.
– I personally introduced the use of iterative delivery and story planning which allowed us to accurately predict our velocity and allowed us to consistently deliver to production every 2 weeks.
– I created a comprehensive NFT framework which allowed us to run regressions quickly and ensure we were meeting the high standards set by the business
– Led the design of the system and introduced ActiveMQ and MongoDB to produce an exceptionally quick and easily tested system; all code was built using TDD”
This time the entire article is focused on the candidate. I now know what they have done and what they have achieved. It’s a much more convincing sales pitch.
Also, people love lists. A list of achievements is much easier to parse. Use lists as much as possible!
Extra curricular activities
If you’ve done stuff in the company which is extra to your day job, absolutely shout about it. The best candidates want more than to come in, code for 8 hours and then go home. If you’ve been on courses or training that you think is pertinent then put it down. If you’ve pioneered or innovated new things then put it in. Maybe you introduced the department to continuous integration. Perhaps you organised for guest speakers to come and speak to the team or you’ve organised for teams to do presentations to each other in a weekly forum. It’s this kind of extra work that can make you a stand out candidate in a competitive marketplace.
99% of people reading your CV will not care about your education. A lot of programmers have come from non CompSci backgrounds, and some don’t even have degrees. Your vocational experience is infinitely more important. Include your degrees, and maybe a line on your A Levels, nothing more. Put this section at the end of the document. It’s unimportant so waste as little space as possible on it.
List of technologies
Don’t do it. For some reason more and more resumes come with a list of every technology the candidate has ever touched. Some CVs even have scores on them now to say how proficient in each technology the applicant is. If you know a role is keen for a specific technology then tailor your experience section to explain how you’re awesome at this. If you have stuff you want to cover off that hasn’t been suitable in any other section then have a small “skills” section. Whatever you do, don’t just write a list of technologies. It impresses no one, and as I covered in my article on phone interviews, the interviewer could call you out on any of those technologies. If you don’t feel comfortable being able to answer in depth interview questions on a technology then don’t list it!
Top tips for standing out as a candidate
- If you’ve done any “extras” in previous roles, then put these in. It proves that you go “above and beyond” in your role.
- If you have personal projects or shared projects you contribute to then list these. Candidates with their github on the CV make a big impression as it shows you like coding so much you go home and do even more of it. That’s passion.
- If you have a personal website or blog then include it, but make sure it looks good and has been updated in the last 6 months. I’ve seen some terrible candidate websites, and it instantly puts me off. Make sure your site is looking good and up to date and it can absolutely earn you some extra credit.
- If you’ve been playing around with technologies at home then list them and what you’ve been doing with them. Most day jobs limit the tech we can use; if you then go home and play with NoSQL or node.js then putting this on your resume shows you have a wider awareness of technology which is a sought after skill.
Make it look pretty
I’m being very serious when I say most CVs don’t stand out. They’re just blocks of text going into pages and pages. Having just a little bit of design can make a big difference. I’m a huge fan of google docs for this; they have some basic attractive templates which can make you stand out just a little from the rest of the pile. It’s not much, but it’s often enough.
If you really want to stand out then build an online CV. These have become very trendy recently and are a great way to ensure you’re giving out the most up to date information in an attractive format. There are a couple of options for this. You could create your own site; there’s some great free templates such as http://www.bootstrapzero.com/bootstrap-template/responsive-developer which you can quickly throw up . Alternatively there are websites such as https://www.visualcv.com/and http://vizualize.me/ to create attractive and interactive online CVs quickly and easily. If you go for one of these options, put a line at the top of your CV which says “For the most up to date version of my CV, head to http://blah.co”. You may not get a ton of hits, but those that click through will likely be impressed.
I’ve created a free step-by-step tutorial on creating your online CV, from buying the domain through to uploading your free template. You can access it from www.corejavainterviewquestions.com/create-online-resume/.
Hopefully you’re now comfortable putting an awesome CV together. However if you’re still unsure and need some feedback on your CV, email it to firstname.lastname@example.org and I’ll gladly take a look. I promise to reply to all emails.