Monday, March 30, 2015

A Good Resume For A Software Developer

Several weeks ago I got an opportunity to apply for a position of software engineer in Microsoft, the US Headquarter in Seattle. It was when I started to notice that I really needed to do some homework on my resume.

I wrote a version of resume during the undergraduate study. It's certainly not a good resume at all. I'll show you later.

It took me a whole week to tailor my resume and I revised it for 5 times. During this process, a book called "Cracking the Coding Interview", usually abbreviated as CTCI or CC, which I will quote some points from, taught me much. Additionally, a friend of mine, the fb guy, helped me a great deal. He acted as the resume screener and gave me suggestions again and again. I sent him the modified version in the evening and he returned the comments in the next morning. It lasted for a week. That was how my resume Came Out.

I summed up the main points as below. Hopefully they can bring you a good resume and benefit more people. :)

First of all, you should know what resume screeners look for. I regard it as a principle in resume writing.

Resume screeners look for the same things that interviewers do (from CTCI):
(1) Are you smart?
(2) Can you code?

That means you should try to present these two things as much as possible in your resume. In other words, anything else, such as your travelling experiences, your hobby, or the sports you love, makes little sense to your resume. However, there is no denying that such things may have something to do with your ability and could be an added bonus to you. Keep in mind that recruiters only spend a fixed amount of time (about 20- 30 seconds) in looking through your resume. What you should do is to present the most impressive items that could attract their attentions instantly in the limited space (one page of paper). They are not going to hire you as their fitness instructor or the tour guide. You are seeking for the position of software developer. So remember the principle above first and start to write your resume then.

Next I want to show you the points through the entire revision process of mine. I believe it is more intuitive and impressive to learn when you see all the different resumes at different stages and how they were revised over and over. There are SIX versions of my resume, indexed from v0 to v5. vo is the initial version I wrote during the undergraduate long time ago. v5 is the final version so far, which I think is good in terms of the experience of mine. I believe the final version of yours must be and will be much better than mine. (I covered part of the personal information in the resumes below and hope you can understand it. )

Resume v0
This is the first version of my resume, which I wrote more than two years ago. I have very little to say about this version because it is full of mistakes and problems. If it were not for the authenticity and integrity, I would not present it here.

? If you read it carefully enough, you will find there is a tiny but serious mistake in this version. Actually I hadn't found it until the third time I revised it. I will talk about this later to keep you guys guessing. :)

Resume v1
In the first modified version, there are mainly three changes I made. As a result, one out of them is wrong.

1. I added my photo here. WRONG. Here I should declare that it's just my opinion. Of course, you can do this. But I do not suggest doing so. You are applying for the software engineer, not for the front desk clerk. Keep the principle in mind. Can you code? Are you smart? Does it really matter for the software developer? I don't think so, at least not for the resume screener. Why don't you save the space for the more important things? So the conclusion from me is NO PHOTO. Besides, many companies require an online application except for the submission of resume, where you can upload the photo if you want.

2 & 3. I updated the education background and project experience. One point here is to show the proper project experience according to the position you apply for. It is definitely good to have rich project experience, but they must be the ones that can show your potential and ability in the future related positions. Additionally, you must prepare one story for each project in your resume. Specifically, you should tell the interviewer fluently about what you did in the project, what you learnt, what the biggest challenge you encountered, what the hardest bug you fixed, etc. Maybe you will have more than one edition of resumes if you want to apply for different positions.


Resume v2

After reading the related chapters in CTCI, I made several big changes and learnt a lot from the book. It is commonly right to read and learn something first when you start to do a thing that you are not familiar with.

1. In the education background, you can place your GPA and the ranking to show your great academic performance. But don't forget to write the benchmark. For GPA, please write it like xxx/4 to indicate the grading standard. In terms of the ranking, do give the ranking range. Whether you are ranked top 1 among 2 students or 200 students does count.

2. State what the project was, which languages or technologies it employed and whether it was an independent or team project (research project, course project or some other wording).

3 & 4. It's always a tricky thing to know which languages to list on your resume. List everything you know about or name just a few that you are really familiar with? CTCI taught me an important compromise that "list most languages you've used, but add your experience level." (expert? proficient? or prior experience?)

5. I used this special symbol to list items before. However, there is usually a prior process to automatically extract some basic information from the resume you submitted online. The system may go wrong or generate unexpected characters when it comes across such special symbols. So keep your resume in plain and try to avoid these particular cases. If you insist on doing so, please use the simplest dot symbol.

Resume v3
In this version, I want to show you two points that can help you beautify your resume effectively. One is good and the other is better.

1. Microsoft Word is pretty great for resumes if you know how to do it. The key is to create a multi-column layout and to do so by using tables. In fact, you can make your entire resume a giant 3-column table. You may also need to merge some columns together when necessary. At last remember to make your table borders invisible. Finally you'll have a nicely organized and easy-to-maintain resume at hand.

2. Instead of doing the 1st, you can just have a pretty layout of resume within seconds. Use TEMPLATES. There are various templates you can choose online and it is so easy to get one. Here I strongly recommend this version coming from CareerCup. Feel free to use it.

a resume template from careercup

? The answer to the question above: there is a spelling mistake in the first three versions which I didn't notice. CIRTIFICATIONS --> CERTIFICATIONS. Did you notice this? Keep in mind that read through your resume every time you revise it. Details determine the success.

Resume v4


It is still far from enough to have a template. There are many details you need to notice and adjust in the following.

1. Make sure you use a uniform font throughout the page. Adjust the font size in different positions. For example, the name of yours on the top should be in a large size. The titles should be a bit larger than the body below. In a word, make the font and size comfortable to read for people.

2. The period for each project should be listed in detail. You should avoid listing one project with a fairly long time (more than half a year) if you didn't do numerous tasks during such a long period. The interviewer may feel you went deeply in that project and had some in-depth understanding about it, since the period for that was quite long. If they ask about it and you can't show them what they really want to know, it will be a weak item that dilutes your resume.

3. Write strong bullets for each project, not a paragraph. You can discuss your accomplishments with the approach:" Accomplished A by implementing B which led to C." Keep in mind that it takes the recruiters less than half a minute to read through your resume. They don't have time and would not like to read your stories. List the most impressive bullets with a nicely organized sentence and don't waste one word or one letter.

4. Besides the languages I talked above, you can also list some software or technologies you are familiar with, such as Visual Studio (If you use C/C++), Eclipse (If you use Java), Microsoft SQL Server (or other databases), etc.

Resume v5
This is the final resume of mine so far. I'm satisfied with this kind of version. Compared to the first version, tremendous changes took place. However, it is still not a satisfying version for me, not because of the format but the content.

1. I don't have a good publication, at least an international recognized one, to support my research project. Although the publication doesn't mean a lot for the job hunting, a good publication may be a plus for me.

2. I have no internship experience. I'm not about to talk about the reason why I have no such experience. Due to the situations of mine, I cannot have it. But I suggest all of you applying for an intern, a related one before graduation. Needless to say, it is much more important than the others.

Finally, I hope everyone can maintain a good resume all the way along the career. No matter whether you are studying in university, seeking a job or working in a position, to keep your resume updated is like to draw a real-time picture of yourself, in which way you can see yourself clearly, know the pros and cons in time and better yourself in the right direction.

3 comments: