Building a modern resume

Your resume tells a lot about you; it’s your professional face to the professional world. Recognize its importance and make it work for you.

Luís Soares
Jan 20, 2018 · 8 min read
Image for post
Image for post

I’ve seen a lot of cluttered resumes, lacking visual rules, endless chunks of text; some got me depressed. Apart from being a programmer since 2007, I had a UX role and provided a lot of coaching. That and the love for data visualization led me to write this article, where I’ll share what I’ve learned, with the hope it can help you. I’ll give software development examples since that’s my professional area. However, the article can be applied to other domains as well.

The format

Files are an outdated concept considering the cloud era we’re living in — at least for sharing, which is your ultimate goal when creating your resume. You fail miserably if you search your email for attachments every time you need to apply for a role. Or even worse, you have it at your home computer (“I’ll send it when I get home”). Is that even the latest version? And what about when you send it with a typo or missed something? Too late to fix it!

Attaching resumes is not that different from printing them and knocking on doors. Be pragmatic: you want to edit easily, everywhere, any time. Sharing should be one step. In those rare cases when they ask you for a file, you (or the recruiter) can always export it as a file — but at least you have a single online source of truth that you never lose sight.

Just go to your favorite cloud word processor (e.g. Google Docs, Microsoft Word Online, Zoho Docs, Dropbox Paper), create a document titled “<Your Name> resume” and share it publicly in view-only mode. Time to scrap out that 7 pages long “my-resume-final-v3.docx” file from your documents folder and embrace this millennium!

The next thing you want is an online URL shortener that lets you create custom links. Bitly lets you do it after signing up, lets you do it straight away, and there are plenty of others. Even better: if you have a personal website/blog, create a link like or The link is the only thing you email the recruiter: “Check my resume at”. You can even say it by phone!

The users

Who are your users? Likely the recruiters, HR, and eventual interviewers. And don’t forget the internet community who want to know more about you. Can you identify their uses cases? Sharing, visually/vertically scanning, printing, searching for something are some. Your users must remember who you are and something that distinguishes you from everyone else.

Yes, we know many HR can’t grasp the difference between Java and JavaScript, but their main job is matching you with a client. It’s their call to move on (or not) with the process. You should communicate in a way they value. Focus on the business/user achievements. Technologies are important but what you did with them is more valuable. Consider a summary at the top. Think about keywords they would search for. The resume is an opportunity to show them you have some skills besides programming (e.g. visual design, writing, common sense, organization, attention to detail).

The content

Let’s start by the obvious: the work experience followed by the main education. Now, the not so obvious; the “extra miles” you may have traversed. I hear people complaining they have nothing more to add. But think about the pet projects, the internships, and open source contributions. Consider the training given by the companies you worked for. The training and talks you gave are of course important. And what about that Udemy course you took last summer and the “Kotlin for Android” talk you attended? Any award? Your thesis or other publications? And don’t forget that IoT project you’re building. Links to HackerRank, LinkedIn, Stack Overflow, a professional blog, or homepage are also welcome. Don’t underrate those details, especially if you’re a junior developer wanting to show to the world the will to learn and create. And by the way: why don’t you start a blog?

In summary, here’s what you should include in the resume:

  • First and last name (top in large font)
  • Title (below name); e.g: Back-end web developer
  • Email (at header; link it)
  • Professional experience (recent to oldest; separate roles, projects, and technologies; the sector is optional). Let me just give you a rough template:
Image for post
Image for post
What to include per each job
  • Academic titles (recent to oldest; with the institution, main subjects and period of time; the grade is optional)
  • Main training and certifications (title, institution, year, link to certificate if possible)
  • Personal pet projects (created and participated)

What you may include:

  • Summary of you (a single sentence or a bulleted list with main skills, sectors, techs, etc.)
  • Photo (small); it helps memorability, especially when the recruiter gets a lot of resumes
  • Current city
  • Nationality
  • Languages (use just a sentence that sums it up)
Image for post
Image for post
Avoid languages tables in the resume; maybe in a full CV it’s OK
  • Phone number (close to email; include international prefix)
  • Hobbies (especially if they can influence your role or tell you apart from the others)
  • Main attended events (at the bottom with title and date)
  • Publications (books, articles, blogs)
  • Links to LinkedIn, GitHub, etc. (explicit in the footer)

What not to include:

  • Birthdate
  • Complete name
  • Home address
  • Driver’s license (unless your job depends on it)
  • Ethnicity; sex; religion; marital status
  • Thoroughly listing university subjects
  • Thoroughly listing technologies (and please delete Word, PowerPoint, Windows 7, … if you’re a software developer)
  • Mumbo jumbo or too generic sentences (e.g. very responsible and organized, a strong and committed team player, exceptional managerial skills, perfectionist and a great listener)

Links allow users to know more on-demand. Create links on what could bring value: companies, projects, sites, blogs, certificates, etc. (I created a “certificates” folder in Google Drive and made it public). Use actual links if you want to keep them after someone prints the resume; use textual links for the rest.

The form

‘Form’ is how the content is presented. ‘Form’ is as important as ‘content’, as it deals with psychology and other human factors. This is where you think about the visual layout. Start with a paper wireframe if you want to build your own. However, there are tons of templates around (check the templates at your word processor or search the web). Feel free to use my resume as a starting point. I’m fond of the timeline based layout.

There are a lot of similarities between building a resume and developing a GUI, as both are ways of conveying information. Knowing a bit of UX and data visualization can help a lot but you don’t need to be a professional designer to achieve a good result (to design is not only for designers; developers should have a crash course on design). Let’s go through some tips:

  • Align elements to (an imaginary) grid
  • Consider bold to highlight the main technologies, responsibilities, training, etc.
  • Use 3 colors at most (consistently)
  • Use 3 font types at most (consistently)
    And do you really need to use Times New Roman for crying out loud? There are plenty of eye-catching fonts out there, serif or sans serif.
  • Respect a visual hierarchy (e.g. bigger is more important)
  • Create visual balance and symmetry
  • Use gray color to decrease the importance

Less is more: convey the maximum information with the minimum visual load. Keep the resume tidy.

  • Remove the “https://”, “www”, and the trailing “/” from explicit links you have (not the ones behind text).
  • Avoid borders in tables: most tables work well without them.
  • Consider a short format for dates, like “Feb ‘05” instead of “February 10, 2005”.
  • Avoid description labels. A well-designed system “speaks by itself” (the system can be a GUI, a codebase, a resume…). It should not depend on explanations. Do you really need to type “Email”, “Work period”, “From”, “To”, “Technologies used”, “Main responsibilities”, …?
  • Do not use regular sentences; consider “bullet-style writing”. For example:
    — “Developed users microservice” vs
    “As a programmer, I was in charge of developing the necessary services to read, write and delete company users”
    — “Participated in building a gamification VR project” vs
    “We designed and programmed the in-house initiative codenamed GIGGITY - Graphical Interface to Get Gamification Immersed and Telegraphed to You”
  • With time, some things lose importance: delete them or simplify them. And by the way, nobody cares about the piano lessons you had in third grade.

For every artifact in your resume, you should ask yourself: “what value does it add?”. Try to: 1) remove the artifact; 2) ask if the message is passed; 3) if no, undo; 4) go to step 1.

Again, think about your users. What do they care about and don’t care about? Respect their time and short attention span devoted to you.

The end

  • Try to keep it to one page. If you play with the font sizes, line/paragraph heights, document margins, and simplify it as described, it’s possible. I have two pages, but the second is optional. There are people that maintain a resume and a curriculum vitae (bigger); it requires more work but it might be useful.
  • Check how the resume looks when: zooming out to fit the whole page, exporting it (PDF and Docx), and printing it (in black and white, since that’s what a lot of people do), opening it in a smartphone.
Image for post
Image for post
Zooming out a document lets you get the “whole picture”
  • Ask for peer review; 5 friends is enough; each should evaluate it as a potential employer.
  • Ask a fellow designer for an opinion.
  • If it’s in English and that’s not your native language, ask some native speakers to review it.
  • After an interview and if you see fit, ask the interviewer about the pros and cons of your resume.
  • Watch out for spelling, grammar, and letter case errors (it’s JavaScript, not Javascript; jQuery, not Jquery, iOS, not IOS; and Java, App, and Scrum are not typed uppercase; I could go on, but you can look it up on Wikipedia).
  • You can tailor the resume for the type of company you are going to apply to, before sending it.
  • Don’t leave the document laying for years without updates; it’s supposed to be a living document (it’s like your wiki) that reflects the best of you. Update it after a career move, a big event, training, and before sending it.
  • Think about something subtle that could make your resume stand out from the others (regarding the content and the design) and be more memorable.

As you saw, building a resume (or a curriculum vitae) is not an easy task, requiring attention to detail and great summarization skills. Your resume is usually the first contact and that’s a unique opportunity. The effort you put into it reveals a part of you, and you don’t want it to be negative. What does a messy resume say about your work? Would you hire a front-end developer with 5 pages of resume filled with tables and endless lists?

I hope you’re convinced of the power of a well-conceived resume. You can check my and Diogo Mateus’ resumes for an illustration of the given tips. Did I forget something important? Do you have different opinions you’d like to share? I’d love to read your feedback.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store