How Should a Software Engineer Prepare Their CV for a Successful Job Search?

A CV should be clear, concise and professional, but still express your personality. For software engineers, a CV that highlights your strengths while providing details about your past experience can help you stand out from other candidates. It will also help the recruiter determine whether they want to schedule an interview with you. Failing to take time to create a proper CV can be detrimental to your job search – it indicates that you can’t express yourself well, don’t fully understand the industry you are in, or that you don’t take your job search seriously.

From my experience, a CV in Computing should have the following five sections:

1. Personal Information

Include name, year of birth, address, phone number(s), email address, and if you choose, an ID picture. Personal information like marriage status, gender or hometown should not be included as they can create discrimination and should not be part of the recruitment process.

2. Career Objectives

Clearly state what you are looking for in your career. These objectives can change over time, but it’s important to show the recruiter your goals when applying to their company. Here’s a good example of career objectives: “Looking for a professional and friendly environment where I can maximize my contribution with the J2EE experience I have learned in the past five years. I would like the opportunity to work directly with U.S. clients. A leadership position is preferred, but a technical position where I can gain a deep understanding of current technologies is also great.”

Only list what is really important to you (for example, the person with the career objective above is quitting a job where he is coding HTML and JavaScript, which is not his strength.) Don’t list ambitious career goals here, stick to what you want to learn and do right now. For example, if a newly graduated engineer, without any evidence he’s a superstar, writes down in his objective section “to be a project manager after two years working,” will very likely be rejected at the screening round because the possibility of that candidate failing to meet his objective is extremely high, and he will not be happy with the job.

3. Skill Sets

Only list what you really know or have experience in, not what you heard is a valuable skill, or the products you worked on used them. Explain the level of expertise for each skill. A newly graduated engineer with C/C++ level 4 of 5 will impress the recruiter, but if he has more skills listed at level 4/5 (for example Java 4/5, Oracle 3/5) it’s likely the recruiter will reject the application. It takes at least 5 straight years to really reach level 4 of 5 of a specific skill, so the fact that a student has several skills at level 4/5 means that the person has a very narrow knowledge of that skill and cannot self-evaluate.

If you don’t have a lot of experience, let’s level it base on the number of years you worked on it.


  • Level 1: Knowledgeable (self-research or trained/learned).
  • Level 2: Real experience under 6 months.
  • Level 3: Real experience under 2 years.
  • Level 4: Real experience under 5 years.
  • Level 5: Real experience more than 5 years.

You should include the above leveling method in the CV so the recruiter understands the way you rate it. You should also be honest with your ratings. If you have 1 year of experience as a JSP/Servlet/Java developer who developed software using Struts for only 2 months, rate 1 year for your JSP/Servlet/Java, and 2 months for Struts, because you only really touched Struts-specific code in very limited cases (same goes with the database.) The recruiter should clearly understand that most of the time you worked on web pages and JSP/Servlet/Java.

Don’t list non-relevant skills (for example, if you are a programmer, don’t list Microsoft Word or Excel) unless you are really an expert in these skills.

Throughout my recruitment experience, I have skipped through this section in 90% of the CVs I screen. This high percentage reflects the common problem that candidates could not evaluate themselves or could not properly express their skill level.

4. Work Experience

If you have held jobs at more than three companies in the past, you should have a list of companies – accompanied with the time you worked there and your title(s).

After that, list all projects or groups of projects, starting with the most recent. Each project should include the following:

  • Project Description: Besides the general description of the project, explain what purpose the project served. For example: Web application XYZ for hospital management provides all workflows and functions for a private clinic in Vietnam. The project took 5 months to upgrade XYZ to support chain-hospital model and moving from LAN hosting to Amazon EC2.
  • Project Size: In order to give the recruiter an idea how big this project is, provide man-months and number of resources.
  • Assignment Length: months/years you worked on that project.
  • Your Role in This Project: Don’t just include title of the role, but explain in more detail what you did. This is important because the project can be huge, but if you only worked on a tiny part – you should say so upfront. Or, if it is a small project but you held a very important role that led to the success of that project, you should say so.
  • Skills You Achieved from This Project: Only list the skills that you really used and the time you worked on them. Don’t list all the technologies used in the product if you didn’t directly work with them.
  • Achievements: List your personal achievements in this project, for example, you joined and required only 15 days to start effectively working on the project, when the average ramp up time is normally 1 month. Or, you found a solution that helped double the overall performance. In general, list everything you are proud that you were able to do for this project.
  • Leadership and Management: Number of staff you managed.

Clearly describing the project is very important because it helps the recruiter learn what you did in the past and then imagine what you can contribute for their organization in the future.

If you worked on multiple small projects, group them together as a table (each row is one project, each column is one piece of information above.)

5. Other Information

  • Degrees, certificates, trainings.
  • Awards, private projects.
  • Don’t list your hobbies, favorite sports or social activities you joined.
  • Similar to sex, marriage status, etc., you should only provide relevant information to the job opening for the recruiter.

Getting a dream job does require some good luck, but what it needs more is thorough preparation. More importantly, it is an opportunity for you to stop, assess your skills, and plan for your future.

I hope with this advice you will be able to create a perfect CV that helps you find a job where you can contribute and grow in your career.

Schedule a Free Consultation

Quickly ramp-up teams and accelerate the delivery of your new software product.