2021 was a busy year, but I managed to read the 52 books that I had planned for 2021. As my new firm – Auxcube – started operations with full force in October, so 2022 looks like a year with twelve books to read.

Sohaib's bookshelf: 2021

Chess Story
really liked it
tagged: 2021
Going Postal
liked it
tagged: 2021
liked it
tagged: 2021
liked it
tagged: 2021
Troll Bridge
really liked it
tagged: 2021
Making Money
really liked it
tagged: 2021
Tao Te Ching
liked it
by Lao Tzu
tagged: 2021



I met my reading goal of a book each week this year as well, thanks mainly to Terry Pratchett’s punny Discworld books. I had been putting them off for a couple of decades, so 2020 was the year it had to happen. I also managed to write an actual article after many many years, and hope I’ll be able to write some more in 2021.

Sohaib’s bookshelf: 2020


Résumé Rejection Reasons – An Illustrated Guide – Part 5 – Parting Tips

Part 5 – Parting Tips

A few remaining aspects of résumé creation and submission that did not fit in the previous parts…

Do Not Apply Everywhere

The ‘Careers’ section of a large firm’s website list dozens of job openings at any given time, as it is hiring perpetually. Do not follow the urge of applying to all of those positions, hoping to getting an interview. You’ll only hurt your chances of being shortlisted, if the firm is using a decent ATS, as your multiple résumé submissions will be aggregated and visible to the recruiter. If the openings that you are applying for require completely different skill-sets than your entry level résumé contains, your résumé could be ignored by the same recruiter when a matching position does open up, because of that first impression.

You do miss 100% of the shots that you don’t take, but you don’t jump into a basketball court with a hockey stick either.

This candidate ‘cracked’ the multiple applications restrictions by using different spelling combinations of their name.

Targeted Résumé

If you have the will, time and motivation to customize your generic résumé to highlight the skills that are listed a particular the job description, do invest that time, without stretching the truth, and tweak your résumé. Using the same adjectives and technologies that are mentioned in the job ad is a good start, rearranging your résumé content so the expected attributes are highlighted is even better.

The time that you invest in creating a bespoke résumé would be worth it if it can make the recruiter believe that you are just the right person for the job. Do not stick to a generic résumé that you submit for twenty different openings.

You can further strengthen your application by linking your skills in the cover letter with the job description, through mentioning demonstrable experience and exposure.

Submission Filters

Some job ads have very specific instruction that are to be followed during résumé submission. Read those instructions, read them again, and then follow them precisely. Whether the ad calls for you to submit your résumé in .docx format, to use a specific subject line, or to include certain information at the end of your résumé, do exactly what is asked.

I must confess that I also use such filters to save my time, and I am surprised at the lack of compliance. Even when the job ad explicitly mentions that ‘Résumés that do not follow these instructions will not be considered.’, 90% of the applicants refuse to follow the provided instructions, and are not considered.

You can easily be in the top 10% of candidates who are filtered in, simply by doing what is asked.

ATS Friendliness

Even if your résumé is not the best fit for the job that you applied for, it might still be added to the résumé pool that most large firms maintain, so that it may be reconsidered for future openings.

There is always a shortage of high-quality candidates and an abundance of positions to fill, and don’t let anyone else make you think otherwise.

If your résumé lands in a résumé pool, but it is full of graphics and icons and everything but parsable text, it would most likely drown and would not be usable for other openings if the ATS is unable to properly parse it.

Make sure that your pdf résumé was created from text and not from a mosaic of images created in Photoshop, and also ensure that your skills and technology stack expertise are properly spelled and indexable. One quick test to see ATS friendliness is to save your pdf content as text, if the exported text maintains content some of the structure, the ATS will be happy.


Kaizen is about constant improvement, and is a great philosophy to apply on your résumé until you land a job, and even beyond that, to keep it current. Every day, keep pruning, improving, refining, editing and enhancing your résumé, even if it is one word or one bullet-point, so each future submission shows a better version of your résumé to the world.

Closing Thoughts

This post has evolved into a slightly lengthier version of the couple of pages that I intended to write on the dos and don’ts of résumé writing, mainly to help the fresh graduates out in their first job search. Therefore, whatever you have read above is my personal take and should not be taken as unbreakable rules.

The example images are taken from real résumé submission, to highlight the pitfalls to avoid while creating an entry-level résumé. The images are not shared with the intention of causing distress to the original authors, and I have taken great care to obfuscate any PII. If you find an example from your own résumé and want it removed (instead of learning from the mistake and letting others learn), do get in touch with me and I will replace it.

A résumé and a CV, or Curriculum Vitae, are two different things, but I have used them interchangeably. Recruiters and hiring managers are also different individuals and roles, but are used interchangeably for simplicity.

I’ll touch upon a few more topics that were skipped from this post, based on your feedback and interest, so please share your comments, and this post with someone who can use it.

Résumé Rejection Reasons – An Illustrated Guide – Part 4 – Résumé Design

Part 4 – Résumé Design

When the hiring manager opens up a résumé file, the résumé’s design is what makes the first impression, the content only comes in later. Before scanning or reading the content, the hiring manager’s brain registers the layout and assesses how easy or difficult scanning it is going to be, how hard on the eyes the color scheme is, and whether they need to zoom in because the font is too small, or whether everything is where it should be and in appropriate sizes.

An unbalanced design is easy to identify, but a balanced design is hard to create. Luckily for the applicants, design templates make the job easier, and I strongly recommend using a résumé template for developers who lack the artistic flair required to make the hiring manager want to hire you when looking at the design alone.

Luckily for the candidates, thousands of design templates already exist that offer visually pleasing and easily scannable designs with zero effort. Whether you are relying on your own skills and designing your résumé from scratch, or you are using a template from the internet, there are aspects of the design that must be just right, to give your résumé the boost that it so desperately needs. We will take a look at only a few of them here.


If there is one design goal that your résumé should focus on, it is scannability, and all other goals stem from it. Your résumé layout should let the hiring manager immediately identify which part of the résumé contains what section, in the first three seconds of looking at your résumé. It should read like a map, not like a maze. Simplicity is the key here, so instead of overloading your résumé with visual clutter that complicates it, aim for a layout that does its job, and its job is to provide the hiring manager will the required information about you so they can make a judgement of where to go with that information. If it doesn’t do its job well, the hiring manager would be frustrated at having to find the information they’re after, and that is not a good start to any relationship.

Whether you opt for a single-column résumé or choose two, or even three columns, make sure that the resulting document is easily scannable – and ‘easily’ is redundant here.

Human beings read and scan text in certain fixed patterns, resulting in some hot, high-attention zones and some blind spots. Research is available online for the interested, so we will not delve into that, but read and use that information if you have time, and you should have plenty of time if you are looking for a job.

Fancy fonts are not scannable, unnecessary graphics and icons are not scannable, capitalized headings are not scannable, tiny text is not scannable, neither are huge letters, and the list goes on and on. Use your common sense to assess all such elements and eliminate them from your résumé.

Attention to Detail

If you intend to join the software development industry, you would be joining a clan that frets over single-pixel alignment issues, has debates on the merits and demerits of having the opening curly brace on the same or the next line, and thinks about space vs. tab indentation and camelCase vs. TitleCase for a living.

All good software engineers have a trace (or bucketfuls) of OCD in them, and you need to fit in. Chances are that the person reviewing your résumé is at that position because of paying consistent attention to detail. He wants to hire an heir who is a natural fit, and possesses the talent to eventually replace the hiring manager so that the hiring manager can focus on those very important debates.

If your résumé does not demonstrate your capacity for attention to detail, another résumé that does would get preference over yours, sometimes even if it belongs to a less talented developer than you.

Take a magnifying glass and analyze your résumé wearing an OCD hat until you can find no room for improvement.

A pdf résumé that has clipped text is a rejected résumé.
Some small errors hurt more than blatant, big ones.

Colors and Contrast

Your résumé palette could be anywhere on the spectrum from back and white, to gray-scale, to four color to 16M colors. Unless the template you chose already has a neat and aesthetically pleasing design in multiple colors, opt for simplicity and stick to gray-scale, because it is hard to do colors right, and also because if your résumé needs to be printed during some step in the job application, it is most likely not going to be on a color printer.

Your choice of colors should not make the résumé fonts hard or impossible to read, and it should not raise questions about your artistic abilities. Do read up on color theory if you want to add another skill to your résumé.

A camo-mail.
My personal color preferences go against this choice.
The palette was noticed before the third person text.

Breathing Space

Whitespace is just as important as text. Your text needs room to breathe, or it will suffocate. In an attempt to cram all your information on a single page, you will hurt your résumé if you reduce the font size, line spacing, margins or kerning. There is nothing more visually displeasing than a résumé with hundreds of technical abbreviations and no whitespace between them.

Let your résumé breathe and it will grow and thrive.

Too much information compressed in a tiny space.
Another glossary attempting to save trees.
The words fighting for whitespace.


Each font has its own personality, and ‘fun’, ‘exotic’ and ‘quirky’ fonts do not belong in a résumé. Choosing the wrong font is an indicator of your weak comparison and selection skills, and that is why the hiring manager has the authority and the motivation to reject your résumé early if he doesn’t like the font(s) that you have chosen.

Stick to professional, sleek and matter-of-fact fonts and avoid complicated, hard-to-read and embellished ones that want the reader to stare at their beauty instead of the résumé content. The corollaries around font sizes and emphasis are obvious, so you can figure them out yourself. If your template does not come with its own fonts, find a pair of fonts that work well together, so you can use one for headings and another one for content. Get critique on your font choices from other people, and make adjustments as necessary.

Spend more time on your résumé content than your font selection. Great content in a common font like Arial is much better than one with poor grammar and spelling mistakes in a beautiful font.

Bad font selection at work.
Fun fonts give a childish personality to your résumé.
Monospace fonts can work well when used correctly, but that is not the case here.
This practical font pair is a sight for sore eyes after looking at the fonts above.


Underlining is a vestigial tool from the days of typewriters, when underlining was the only option when you wanted to emphasize important text. In present times, you have italics and bold, along with subtle font changes, to make parts of text more prominent, so use these modern devices and avoid underlining any text on your résumé.

Hyperlinks are an exception in certain scenarios, as they are expected to be underlined.

Underlined text offers nothing that bold text does not.


Even if you are an expert in twenty technologies, do not dump their logos on your résumé. The hiring manager knows what the HTML5 logo looks like, and the candidates who wrote ‘HTML5’ instead of pasting the logo probably know HTML5 well too. The ATS, on the other hand, does not parse images (yet), and that poses a serious disadvantage for your résumé. The twenty logos also need many times as much space as their text counterparts, and space is at a premium on your résumé, so use it wisely.



I see absolutely no reason why a résumé should have a watermark, but I’ve seen a few ‘BS’ résumés. Maybe it is a template that people keep reusing, just don’t use watermarks. Please.

An actual watermarked résumé.

Number of Pages

The number of pages is probably the most debated topic when it comes to résumés. My take on this is simple, if you have an engaging three page résumé, hiring managers will invest the time in reading all details. If you have a single page messed-up résumé, it would be immediately discarded. The expected number of pages is usually directly proportional to the length of your experience, but there’s no upper limit for a zero experience candidate as such.

This résumé managed to fit a lot of text into a single page, at the expense of scannability.
Starting with Page 0 is one way of staying within a single page ‘limit’

Charts and Infographics

A picture may be worth a thousand words, and a neat data visualization in Tableau might look cool to you, but a skill chart just tells the recruiter about your charting skills. Self-ranking on arbitrary graphical scales beg for criticism, and in my opinion, should be avoided. Do us all a favor and just use words.

‘A thorough grasp of SQL, ‘Familiar with Java’, ‘Dabbled in PHP’ work better for people like me, and saves a lot of precious résumé real estate as a bonus. Your idea of a 70% C# knowledge is definitely different from mine, let the interviewer assess that during the interview. Read some Tufte to gain insights into information visualization.

Some of these skills ate power pallets, but a few bumped into ghosts.
Does a 70% MySQL knowledge mean one knows SELECT, INSERT and UPDATE but not JOIN?
Is that a 100% or 7%?
G – Creating donut charts that don’t add any value to my résumé.
If only everyone had the discipline to divide their time equally between tasks.
I’m afraid 16/20 sticks in Javascript is a bit too low.
A self-contradictory Design Skills table.
Graphics for the sake of graphics again.
Sliders are meant to be interacted with, not used as a graph, in my world.
Another example of pointless visualizations.
Is that 12% HTML5 or 88%?
These charts would have made a little more sense if the bars were sorted.

Nested Grids

The information on your résumé should be organized under sections and headings with a semi-flat hierarchy. A nested grid just wastes precious space and is very confusing to the reader.

Nested Grids do not belong on a résumé.

Blank Pages

Many résumés that I encounter have a final blank page, which used to make no sense to me, until I saw a résumé saying ‘Page left blank for comments’. Thank you, dear candidate, for showing me the light. The résumé was in pdf format, though, and I had no intentions of editing the pdf to leave comments, so I didn’t.

Even worse are résumés that have a dangling last line or two on the last page. If your résumé content gets you in that situation, either compress your text so that the line is moved to the previous page, or use the opportunity to add give your content more breathing room so the last line is not left alone.

This blank page was as useless as this image.
The page that unraveled the mystery behind blank pages for me.

Common Templates

Some universities have a résumé template or a résumé creator system that they share with each batch of students that is about to graduate. Most of the students use that template without second thought. After all, it looks nice, has their university’s name and logo in the header or footer, and they don’t need to go through the trouble of finding a template for their résumé. If that works for you, then use it.

Do realize, however, that the hiring manager in a well-known firm ends up receiving résumés from most of the students in your local universities’ recently graduated batch. Such templates accumulates their own personality and stereotype. As the recruiter receives more and more résumés based on a particular template, a mental model of a typical graduate of that university gradually builds up in the recruiter’s mind. If you are OK with being pigeon-holed due to using the university’s template, and with the fact that your résumé would be one among many similar résumés, that is your call. If you want your résumé to stand out, you should strive to make it stand out in every aspect, including the template, so instead of being part of the graduating herd of your classmates, you should consider using a unique design or template that is not shared by your classmates.

Similarly, the most popular job portals allow you to download a formatted version of your résumé when you upload your data on those websites. If you use a résumé that was created through this mechanism, at least make sure that it does not contain the website’s logo or URL, for obvious reasons.

This Bullet

One last thing – please don’t use this bullet. It is very irritating.

Next: Part 5 – Parting Tips

Résumé Rejection Reasons – An Illustrated Guide – Part 3 – Résumé Content

Part 3 – Résumé Content

Let us take a magnifying glass and zoom in on the various faux pas in a résumé’s content that get it noticed, and not in a good way. If you can avoid these mistakes in your résumé, you make a huge leap up on the leader-board.


The rules of the English language are simpler than those of programming languages. You have studied both for years. If you still don’t know how to properly capitalize words, especially while applying for a software engineering position, your résumé would slide down many irrecoverable steps in the sorted priority list, probably because the hiring manager would imagine you trying to debug your code for hours to discover that the root cause was an incorrectly spelled variable in the end.

Learn the right case(s) to use for proper and common nouns, abbreviations and title case phrases, and use them consistently.

Respect your University name – use it as it is printed on your degree.
Perhaps the rule is to capitalize the first four months only.
Two opposing perspectives on capitalization.


Proper capitalization is good, unnecessary capitalization is bad. Title case is rarely required in sentences in a ‘normal’ résumé.

This candidate would have improved his chances by not adding the above sentence.
The capitalized A does create a certain kind of balance in this sentence.


There is Capitalization, and then there is CAPITALIZATION.


Did the paragraph above hurt your eyes? Imagine a bespectacled hiring manager going through hundreds of similar résumés, and the relief that a nicely capitalized résumé would bring him. Save a hiring manager’s eyes. Don’t capitalize unnecessarily.

My eyes!


Any spelling mistakes in your résumés are immediately noticed by the hiring manager (and your spell-checker), so there’s no room for error here. A résumé with typos is a résumé at the bottom of the rejection pile. Along with writing code, developers are also required to contribute to technical documentation, and nobody wants a teammate who can’t spell, and badly written documentation is an embarrassment for the whole team.

Use a spellchecker (or is that spell-checker?), and a grammar checker while you are at it. Its It’s free. Your future self would thank you for it.

I would not let this candidate come close to any production code, or documentation.
Irony, illustrated.
Watch your vowels. Remember: Extra Es elicit extreme expletives from the employer.
One character could make or break your CV. Especially if your FYP revolved around language and patterns.

Don’t Just Spell Cheque

Sometimes, relying on a spellchecker does not quite work out. Proofread your resume yourself, then get it proofread by others. Spellcheckers fail when it comes to technical terms and technologies, so it is up to you to be meticulous in ensuring the accuracy of any proper nouns that you use on your résumé.

On the bright side, no spelling mistakes.
My spellchecker doesn’t recognize ‘Steganography’ too.
Male chauvinism at work.
Smiting is a dangerous activity, especially when paired with knives.
The classic mistake.
You keep using that word…
Spellchecker approved.
We all know the universe is already a simulation, so just succeed.
This candidate was rejected because he couldn’t stand straight.
Stop, you’ll get tired. One positive reply coming up.
The candidate was probably codding!
Freudian slip?
But of course!

Proper Nouns

If the most important word to any person is their own name, then the name of the organization that they work for is at least somewhat important to them. Do not expect an interview call any time soon if you have misspelled the name of the company that you are applying to, either in your cover letter or your email. It is a big red flag and shows carelessness, while they are looking for meticulous candidates.

Any time that you mention the organization’s name, make sure that you use the official version of their name, as used by them on their official documentation or website, and not one from an alternate reality. If you are reusing an old cover letter, at least update the previous company’s name in your cover letter before mailing it to the next company – this is a faux pas that is hard to recover from.

All of the above also hold for your previous employers, educational institutes, and your own name.

While we are on the topic, please don’t address me as Zohaib, Shoaib, Sohail or anything else besides Sohaib in your emails.

This candidate sent an old cover letter without changing the firm’s name, for a job that was not a UI/UX Designer.

Punctuation and Whitespace

If you can not grasp the simple concept of how and when to use a comma , an apostrophe or aspace,a hiring manager ,consciously or subconsciously,would notice the error, and you know what that means. The same goes for dashes-and periods and ellipses..

Space before comma, space after comma, comma after comma, anything goes.
When in doubt, add an apostrophe.
‘Hands-on’ is a common mistake that I keep coming across.
Watch how your words wrap, especially if the word is COMMUNICATION.
Bullets are not sentences.
At least the dates are consistently wrongly formatted.
Extra spaces in technology names are twice as important as spaces in other words.
Words are not sentences.
Is it a list? Is it a sentence?
If, like me, you are in the habit of using nested braces, open and close them properly before applying for that C++ job involving compiler construction.

Writing in the Third Person

Sohaib thinks that anyone writing a personal statement or a cover letter in the third person is asking for the résumé to be thrown on the rejection pile. Sohaib believes that you can do better, and urges you to not make this mistake on your résumé. Heed Sohaib’s advice and use the first person throughout on your résumé.

Sohaib was amused when he read this personal statement. No interview though.


Your résumé is a chronological record of your academic and professional life, and hence, it contains a bunch of dates. The Goldilocks Zone of date precision changes from case to case. You would want to mention the year alone for certain older events, while more recent events may require the month as well. Use your common sense while mentioning dates.

August 2020 is easier on the eyes than 2020-08 IMO, but feel free to disagree. Whatever format you pick, aim to be consistent in date formatting throughout your résumé.

Capital A hath August, except when followed by 2012.

Technical Terminology

Developers’ résumés need to be heavy on long lists of languages and technologies. Any time you mention an abbreviation or a brand name, ensure that it is capitalized and spelled properly.

If Microsoft uses ASP.NET everywhere, then Asp.Net or asp.net is wrong. If you are unsure about whether to use Nodejs, Node.js or NODEJS, look it up on the official website.

Hiring Managers for development positions, like C++, are also case-sensitive, and expect the candidates to be case-aware.

If you haven’t been in heated arguments around the pronunciation of Linux, the softness or hardness of the g in gif or the correctness or incorrectness of ‘Star Trek’, you may need to get into that mindset before you join a seriously technical workplace.

Seriously though, if you can’t spell a technology name correctly, why would a hiring manager believe that you’ll be able to follow the coding conventions used by his team, much less to be great at programming in that technology?

If this were an exam, the candidate would have recieved 5/13 marks.
Sorry, we were looking for Prolog experience.
A bad speller, or a DS9 fan? We will never know.
Pressing the shift key shouldn’t be that tiring.
Another assortment of typical careless errors.
Pi. Pie. π. Whatever.
Too lazy to use the shift key?


The one good thing about electronic résumés (as opposed to their paper-based ancestors) is that they can contain hyperlinks. It is up to you – you can take advantage of the hyperlinking and hope that the hiring manager is curious enough about you to click and visit your Github or blog, or you can avoid creating links and hope that they will put in the effort to type your LinkedIn profile URL, which still has the default random strings in it because you did not customize it. (Spoiler alert: He won’t).

Each time the recruiter finds a hyperlink for a long URL in a pdf file, they silently thank you for caring for them.

Also understand that underlining your URLs does not automatically make them hyperlinks.

If you are using a résumé template, make sure that you change ALL links in the template to your own, and not just the text for the URL.

Don’t make the recruiter work even before they’ve hired you. Link.
Your LinkedIn URL is not whatever is in your browser address bar.
A rare example of how to create and signify your outgoing links without clutter, though not recommended for LinkedIn profile.

Fill the Template

Résumé templates are amazing. They save you from the effort of creating a visually pleasing layout, choosing fonts, and the rest of the work that you’d rather avoid. With all that work cut out for you, you have one job – to fill the template accurately. You need to do it well.

If you forget to fill in the sections that should either contain your contact information or be taken out altogether, then forget about getting an interview call.

I couldn’t call this candidate for an interview, because, no email!
Please, when it says ‘Type your e-mail address’, type it!
My sneaky pdf reader displays the pdf metadata for the original author of the résumé template.

Don’t Copy the Copy

If most of your résumé uses broken and incorrect language, the reader would immediately detect an anomaly when he encounters a perfectly polished paragraph or sentence. If a simple Google search on that sentence, in quotes, leads him to a résumé template or someone else’s résumé that is the actual source of that paragraph, that is enough reason to reject the résumé, for me at least.

Do yourself a favor and ensure that your resume is actually entirely yours.


When you make a claim, whether it is about being an expert in a certain technology, your duties in a past job or the years of experience that you have in a language, the hiring manager has to take your word it, until they assess you during the technical interview. If you exaggerate certain aspects of your skills or experience, the truth will eventually come out during the interview, but if your exaggeration is not technically possible, it can happen much sooner.

Be truthful in stating all facts on your résumé, so that the interviewer’s expectations are proactively managed.

20 years of experience in a 10 year old technology – I want to borrow this candidate’s time machine.


A little amount of exaggeration is acceptable and even expected in résumés, as the candidate’s perspective and measurement scales are never fully aligned with the hiring manager’s, and many things included in the résumé are purely subjective. Lies, on the other hand, are a deliberate manipulation of facts, and if exposed, the candidate is usually blacklisted in that firm for future applications. Lies can be as small as inflating your GPA, or as serious as adding fake past experiences or job titles to your résumé. Most firms employ third party candidate validation services, so the best policy, as always, is honesty.

I recently received a candidate’s résumé who had worked for me a few years ago. His past experience from that period in my team included projects that he never worked on, in technologies that were never used and with accomplishments that were not possible. Needless to say, he was immediately rejected.

Please don’t lie on your résumé and present the facts as they exist. You’ll sleep better at night.


We all want to hire ambitious employees with passion and drive, but if you just graduates and have nothing exceptional to show on your résumé, do not apply for leadership or managerial positions such as Architect or Team Lead – positions that demand multiple years of experience. If someone gave you the advice to ‘Apply everywhere, you’ll never know when someone might give you a call.’, forget that advice and be very selective about your applications. If you apply for a job that you are unsuitable for, your application for a job that you are a perfect fit for might get rejected.

Weak Words

Words are powerful, and they are the only tools you have when creating your résumé. Choose them carefully, and consider the nuances in their meaning as if your life depended on it (it does). Realize the difference between ‘I was a team leader for five projects’ and ‘Led a team of six and delivered five web application products successfully’. A lot has already been said on the use of adjectives and verbs on your résumé, so I will expand upon this topic later.


Know Thy Audience

Create your résumé as if the hiring manager is sitting in front of you, watching your every move and scrutinizing every word. Does it look like he knows Chinese? If not, then write your résumé in English. Is he a C-level executive? Highlight the value and profit that your work brought in your past jobs. Is he a hard-core software developer? Explain the elegant architecture that you implemented for your last project.

If the imaginary hiring manager sitting in front of you is not satisfied with the final product, keep working on it until he is.

An actual résumé that I received for a job application that had nothing to do with China or the Chinese language.