Getting hired in software.
base image retrieved from internet search, edited by S. Dejongh under Fair Use license (2023)

Getting hired in software.

You learned how to code. Awesome!

Companies will start fighting over you, throwing cash at your feet and asking you to work for them. Right?

If you believe the marketing put out there by coding bootcamps, and various talking heads on the web, this is how it works.

The reality is very different though. When first starting out in the field of Software Development, getting hired is becoming an increasingly difficult hurdle to overcome. It seems all companies are looking for experienced people, or people who have already built popular projects in their spare time.

How can you even compete?


Why should anyone hire you?

Let's start by taking a look at what you have to offer. The field of software development is huge. There are a lot of niches to choose from. As you are looking for a job, chances are that you already know what type of development you would like to do. You know a few programming languages, have some basic knowledge on algorithms, data structures, and how the internet generally works.

Now: choose a niche that you like!

Decide what kind of jobs or sub-fields you are interested in. Do you want to develop large applications in big corporations? Do you want to build games? Do you like web development? Mobile applications? Are you a security and encryption fanatic? Do you like building automated tooling for others to use?

Take a look at the vacancies for these types of jobs. What skills are in high demand? Do you know most of these? Are there obvious gaps between your skills and what these companies are looking for in general?

Do not look based on the programming language you like. Languages are a tool to perform a task within a certain context, and languages that are in high demand today will phase out of popularity over the next few years/decades.

Take a very critical look at yourself, and see if there is anything you can do to sharpen your skills in one of the areas you are not confident in.

Reality check: having passed a course in high school/college where you had to build a simple website does not make you knowledgeable in HTML, CSS, or Javascript. Writing a simple program in C, python or Java, does not make you a developer. It gives you a basic understanding of these things, and gives you the tools needed to start building your skills to a professional level.


Mindmap with some of the skill that software professionals are expected to master


This means that either you need to put in additional effort to strengthen yourself, or at the very least accept that you might not be as good as you thought you were. Try and get some objective feedback on your skill set by taking on some coding challenges online. Websites such as codewars or Project Euler are an excellent way to freshen up or assess your skills.

How to gain an edge over the other applicants?

Now that you have a somewhat realistic look on yourself, let's see who you are competing with. As Sun Tzu said: "One who knows themselves, knows the terrain, and knows the opposition will be victorious".

A look at the competition

A harsh, but important question to ask yourself is: "Why should they hire me over the other young graduates? What sets me apart?"

There are a lot of people trying to get their foot in the door of tech companies. At this point, big companies receive so many CVs that they have started to build automated systems to filter through them. This gives you an approximate idea of the sheer number of young graduates entering the field.

As global numbers are hard to obtain, here is some data on the US market from wikipedia .

Number of people in Software Development, active in the USA (2022)
Your competitors. From statista.com

Exploring the terrain: who is hiring?

This part is tricky, as it depends a lot on your niche, your geographical region, and the current economic climate.

Your best bet is to check in with people that you know and that have already found a job. Where do they work? Is the company they work for hiring? What kind of things were they asked in their interview?

Alternatively, you can browse job boards, LinkedIn vacancies, or statistics websites to look for the most in-demand skills.

As a general rule, try and find out the top 5 technical skills that companies are looking for in your area. Also do a quick popularity check by searching for amount of recent questions in a particular language or framework.

As an example: say I want to be a fronted-focused developer. I go to indeed.com and search for "frontend developer". The first few vacancies for frontend developers are looking for:

  • HTML / CSS / SCSS.
  • JavaScript.
  • React / Angular.
  • .NET knowledge.
  • SQL knowledge.
  • SCRUM knowledge.

Quickly searching StackOverflow for questions gives me:

  • Javascript: 2.5 million active questions.
  • HTML: 1.2 million active questions.
  • CSS: 800.000 active questions.
  • SCSS: 27.000 active questions.
  • Angular: 300.000 active questions.
  • React: 500.000 active questions.
  • SCRUM: 500 active questions.

This teaches us:

  • Companies in my region like putting "SCRUM" on their vacancies, but as there are few StackOverflow questions, this seems to be something corporate that most developers don't really care about.
  • HTML/CSS/JavaScript are probably "table stakes" skills. Meaning that everyone is expected to know these well, can do basic website building with them, and has a couple of projects with these technologies under their belt.
  • SCSS / Angular / React are likely more advanced frameworks that are very popular. Having some knowledge and experience in these gives you knowledge that some others likely do not have.
  • Companies in my region tend to put backend and database knowledge in their requirements for Frontend developer jobs. This likely means they are looking for people with broad general skills, but a focus on front-end work.

Standing out

By now, you realize there is a very large influx of new people in the field. Some of your fellow jobseekers are formally educated, others are self-thought, and some have certificates from boot camps.

In the first section of this article, we looked at the objective reasons why you should be considered for a particular role. You have a vague sense of what makes you interesting to employers, and you know what kind of context you thrive in.

Now.... how can you stand out compared to your peers?

Consider what we learned about ourselves and the terrain we are preparing to do battle on. If you have some sought-after skills that seem to be more niche than others, focus on strengthening those. Read a few tutorials, brush up on your knowledge.

Can you answer some of those StackOverflow questions?

Next, take a look at the in-demand non-technical skills, such as "working in a SCRUM team" or "use JIRA". Spend a few hours using your favorite search engine to gather some information on it. When asked if you are familiar with it, this makes you able to truthfully respond: "Oh, that is the thing used for <blank>, right? I have heard and read about it, but I have no real life experience. It sounds interesting though."

I already jumped ahead to the "making a good impression" section of the article a bit. The reason is that all of these tips strengthen each other. The better prepared you are, the easier the interview process becomes.

That being said, you can stand out from your peers in one of two ways. Either you are:

  • among the most technically excellent ones
  • amongst those mature for their age, who know themselves and the world well

As we have seen, given the sheer number of your competition, it is extremely hard to be in the top 5% based on technical skill alone. Your best bet is to combine being strong technically, and having a mature look at life.

The "mature look at life" can be summarized as:

  • You know your strengths and weaknesses
  • You know why a company wants to pay you
  • You realize you have a lot to learn
  • You realize there will be frustrations on your path
  • You are generally honest and trustworthy

We discussed the importance of having an realistic, accurate self-image when trying to sell yourself to a company or any other potential employer. We mostly looked at this idea from a technical point-of-view. There are of course other dimensions to this self-knowledge. The foremost one is understanding what type of environment you work well in. Do you prefer being around chatty colleagues? Do you work best in isolation? Do you enjoy getting clear goals? Do you have a need to understand the bigger picture?

These are very difficult questions to answer. And it takes most people a few professional experiences in order to know what environments they thrive in. As our goal here is to find a way for you to gain an edge on the competition, take a few moments to reflect on those questions. To get you started, there are a few pseudo-scientific resources out there that can help you out.

The 16 personalities test is an quick and easy way to get some insights into differences in personality. It takes about half an hour of your time to learn a thing or two about personal preferences. And while not scientifically accurate, it is an easy model to apply when talking to people (recruiters, hiring managers, your future colleagues).

Your resume

If you have made it this far, you now have an idea about:

  • What your main selling points are
  • What type of environment is well-suited for you
  • What skills companies in your area are looking for
  • How to deal with people that are not like you

Awesome! Now to get that interview.

The first impression people will get from you is by means of your resumé (aka. Curriculum Vitae, or CV for short). The goal is to get through an initial screening process, by making sure your table stakes skills (see previous section) and unique skills are highlighted.

Apart from this, recruiters are generally somewhat interested in your academic career, any previous work experience (even if not relevant to the field, it shows you have worked in the past), any notable side projects.

Make it easy for them! And make your CV pleasant to read.

Given the amount of people applying, you do not want to sabotage yourself by doing an half-assed job of presenting yourself. At the very least, make sure there are no obvious spelling or grammar mistakes in your resumé. There is little more off-putting to a prospective employer than someone who claims to be "detail-oriented", but who handed in a document filled with spelling mistakes, ugly-as-all-hell formatting, and outright impossible timelines.

There are plenty of good templates out there. In general: you are looking for a format that highlights your particular strengths, while putting your less-desirable attributes in a footnote somewhere.

Say you have had a turbulent academic career, but you did have two jobs for most of your college years. You would be wise to highlight the fact that you were able to hold jobs, and you would probably like to avoid broadcasting the fact that you've spent more time getting your degree than most. A word of warning here: do not lie (even by omission). Rather put the less-flattering information in a spot that draws less attention.

The two examples below illustrate two different styles. One is focused on education, and personality. The other is focused on experience.

Pick a format that suits you!

An education-focused CV


An experience-focused CV


Some general tenets while writing a resume:

  • SPELL CHECK!
  • make sure the information is accurate (avoid guessing dates, avoid aggrandizing your experience, do not inflate job titles)
  • talk about what you did, not about where you worked.
  • focus on your achievements, and try to quantify them.
  • avoid generally applicable phrases. Statements as "I wrote code", "I attended meetings", "I fixed bugs" , etc. are pretty worthless.
  • make the links in your CV clickable (LinkedIn profile, phone number, email, references)
  • make it easy to see which technologies you know ( I personally like adding a technology list as a second page to my CV, but opinions on this differ )


Once you have your resume, ask a few people to give you feedback. Parents, mentors, teachers, friendly people on LinkedIn, ..., there are plenty of options.

Also know that there are tools you can use to help you improve your CV. Websites such as cvcompiler.com will scan your CV, compare it to the most sought-after skills, and give you good general advise on how to improve your phrasing. You can even ask ChatGPT for help by asking it to assess your CV, summarize it, change the tone of your sentences. When using AI-based tools, be especially careful that the tool does not accidentally add in non-truthful statements.

What now?

With the information above, you should be prepped to send out your resume to recruiters. Be respectful, and reply to inquiries. Some recruiters might stop contacting you. This sucks. Keep at it.

Even when you get rejected, try and learn something from the exchange. Ask your contact for a few sentences of feedback, explaining that you are trying to improve yourself.

Once you get the interview, there are a plethora of communication techniques you can use to make a good impression while staying true to yourself. But to avoid turning this article into a book, I will not go into them.

In short: be friendly, be honest, be yourself.

Good luck!

Helpful resources


要查看或添加评论,请登录

社区洞察

其他会员也浏览了