I mostly cover insights about the software engineering industry for more experienced software engineers and engineering managers. This article is a break from these topics.
In the second half of 2021, we were in the middle of the most heated tech job market of all time. I wrote about why this market reached all-time highs in a 'perfect storm'. However, while there was huge demand for software engineers, one thing stood out.
Even in 2021, the market for less experienced software engineers was already chilly. For experienced engineers, job opportunities were plenty, and large compensation increases were common. However, the opposite was true especially for entry-level software engineers: demand for these folks did not increase, neither did their compensation. In October 2021, I already shared advice for this group.
A year later, the market has cooled down for experienced software engineers. Where does this leave engineers with less experience?
The market for these people is even worse than it was in 2021. There's far more competition - bootcamps and universities have not stopped in graduating new entrants to the market - however, companies are still more likely to hire for experienced engineers, and they are more likely be able to afford these people versus in 2021 when the market was on fire.
This article is advice I can offer to entry-level software engineers. To be clear, I am not selling hope. We are likely to be in the middle one of the most difficult year to break into software engineering in the past decade. This is especially true if you lack pedigree - e.g. you did not graduate from a well-known school, you have not done an internship at a well-known tech company or you do not have a strong network where people can refer you entry-level positions at the company they work at.
All of the below advice is what I tell people who ask me what they could do to maximise chances of getting their first - or second - jobs as software engineers.
Note that none of the below links are affiliate links or sponsored. I am not affiliated in any way with any of the resources I recommend save for The Tech Resume Inside Out book that I wrote and is free for anyone without a job. See my ethics statement on the lack of advertisements, sponsorships or affiliate links.
The reality of the 2022 tech market
Know that it will be very hard to get that first job this time. Bootcamps oversell how easy it is to get job in tech: because they need applicants to come, so they make money. Success stories from people getting jobs without experience both have survivor bias, and those are usually stories from years ago, when the job market was not so hostile to entry-level engineers.
The reality is that the job market is cooling off for experienced engineers as well. VC-funded companies and even some traditional companies are freezing hiring or laying off. Those hiring with a limited headcount are more likely to prioritize experienced engineers. In what has never happened before: Meta did not issue new grad return offers for its interns.
For new grads, the current tech climate can safely be compared to how challenging it likely was to get a first job in tech in 2008 - following the financial crisis - or in 2001 - after the Dotcom Bust.
Consider joining a support group if you are not part of one already. Try to find a place where there are other people in your shoes. This is where having education at a college or being part of the bootcamp is helpful, as you already have such a group.
Alternatively, look for new grad Discord channels or communities with low fees like Scrimba and other, similar ones. It's easier to figure out what works, and what doesn't, and get motivation as part of a group.
Forget about only applying to 'amazing' companies
Aim wide when applying. Don't only apply to the best-known companies, or ones offering full-remote. Those companies will be getting hundreds, if not thousands of applications to entry-level roles.
In 2018, when I was a hiring manager at Uber, in Amsterdam, we opened internships for software engineering students. Within three days of advertising this position, we received 500 qualified applications - meaning people who checked the boxes on what we were asking for. We had four headcount to fill. This was in 2018, when the market was not nearly as challenging.
While I'm not saying to not apply to well-known places, know that without references, your chances of even hearing back will likely be slim.
Find smaller, lesser-known companies. These can be startups who are struggling to find any applicants, and businesses who will not spend the budget to advertise on job boards like LinkedIn, but you can find job adverts on job aggregators like Indeed.
Apply to less competitive companies, including 'unsexy' ones. Look for local, non-tech companies, and ones who are not offering full-remote positions. Not only do these positions get fewer applicants: if they are onsite or hybrid, they'll also hire more juniors. This is because they can onboard junior people better.
Apply to local companies, not just remote ones. Full-remote roles will get much more applications than local ones. Those full-remote roles are also far more likely to hire someone with past experience, as the hiring manager is more likely to see such a hire as a lower risk one.
Know that you'll have far better chances if applying locally, especially if it is for a position where being in the office - at least a few days a week - is a requirement. Many of the experienced people won't apply, neither will people outside the area.
When getting your first or your second job, you should consider the competition you might have, and try to apply to places that will have less of this.
Apply to consultancies/developer agencies as well. The software consultancy business model requires hiring and training junior developers. They also give exposure with different environments and technologies. Agencies are a great stepping stone into the industry, and one many people move onto higher paying opportunities a few years later.
Be aware that some agencies have poor working practices: if you land in one of these, try to move on, instead of being stuck for too long.
Know that almost no company will sponsor visas for entry-level positions. Some companies do sponsor visas: but they do these for key positions that they cannot hire for locally. New grad positions almost never fall into this category. There are a handful of exceptions - like some of Big Tech will offer visas for interns to return from strategic locations they want to hire for.
However, you can safely assume that any position which needs a visa for you to work at: you will not hear back if applying, if you are an early-career software engineer, or someone looking for your first job. You might as well save an application that will not go anywhere.
Improve your resume while you keep applying
Tailor your resume to each position you apply to. If you don't have a job - yet - you request a copy of my book, The Tech Resume Inside Out for free. More than 1,000 people have done so: I approve all non-spam requests.
Build your experience while you are job hunting. Which person is more likely to be hired the next 12 months: one who spends 12 months applying nonstop, or the one who spends time applying, but also built a side project that anyone can try out, contributed to an open-source project, and did a contract gig on one of the popular freelancer marketplaces? It will be the latter.
Balance time between applying, and between making your profile stand out more.
Contribute to open source in non-trivial ways. Most people you compete with will have similar, non-production-grade projects on their resume. Those who contribute to popular open source libraries used by thousands of people and companies in production really stand out. Look for projects like Awesome First PR opportunities and explore open-source projects you use.
This route will be hard: much harder than just applying to jobs all day. This is why you stand out from other applicants if you persevere, and start contributing.
Read and apply How to Be a Kickass New Software Engineer from bootcamp grad turned senior engineer Raymond Gan. Also read the featured articles in Raymond Gan's LinkedIn profile which are all first-hand advice pieces on what does, and what does not work for bootcamp grads, in Raymond's experience.
Consider taking on short projects for little payment or for free. If you are unable to land a fulltime job, it might be because you lack experience of shipping something in the real world.
One way to get this experience by doing shorter term projects, where you might be losing money on your time spent, but you ship something in production.
You could build a website or a mobile app for a friend or someone you know who needs something like this but cannot afford to pay market rate. You could build your own such app as well. You can also connect with strangers for projects: but this latter is the one I'd suggest the least, as there's a slippery slope between having your skills exploited, versus getting references on real-world work, even if you are not paid market rates.
When I started out, I did several freelance projects while I was at university where I charged below market rates. Those projects served as good references later, and helped me stand out from candidates who only had classroom projects and the usual CRUD app to showcase.
Not all new grads will get job offers. How will you stand out? The new grads software engineer market is vey much an employers market: meaning there are fewer open positions than people applying to those positions. This means not all new grads will succeed in securing a job.
Knowing this: you need to stand out. What are ways that you will do this, knowing your competition?
Standing out can be done in several ways:
- Pedigree. The most obvious one and the hardest to get. Graduate at a well-known school, intern at a known company, have references who refer you to their workplaces.
- Depth. Bring more depth in a field or two than your peers. Are you already an expert in programming language, having read the 'in depth' books and have a GitHub repository using advanced features of the language? Do you contribute to core projects in the space: something mostly experienced engineers do?
- Breadth. Do you have experience shipping a web app, a mobile app and a backend service, even if a small one? Most new grads lack such breadth.
- Non-trivial projects. Have you shipped things well beyond your curriculum, which all of your peers have? As a hiring manager, it catches my eyes when I see people who have built more complex solutions - that I can take a look at - that are outside the CRUD apps that most bootcamp grads and new grads showcase as part of their college work.
- Papers and in-depth blog posts. Have you published about your experiences and learnings either as an academic paper or on a professional blog?
- Motivation. Are you motivated to grow in the field, and have some ways to prove this is not just words? It could be anything of the above, or others as well.
- Putting in extra effort. When applying to a company, do you put in any extra effort that very few - or no other - applicants does? For example, when applying to a startup which as a public API to use, did you build a project that uses this API, and add it to your resume on the first line? You bet almost no one did it.
The above ones are some of many ways to stand out. Putting in the effort to stand out might not get results immediately. However, without standing out from a crowd of applicants, you are far less likely to see success with your applications.
Don't be picky with offers
If you only have one offer: take it. You'll read advice about how to negotiate compensation between different offers, and how hot the market is in tech. Ignore this: as most of this applies to people with much experience behind their back.
I've personally had a pretty good career, eventually making it to places like Skype and Uber: but, when starting out, I just took the first job that I was able to get in Hungary - as my first job. For my second job, when moving to the UK, getting a first offer at a company I was not excited to work at - long commute, not interesting domain - luckily, resulted in other companies calling me back and I got two more offers. Without this, I would have absolutely taken that one job offer I had.
It's more important that you get started over getting a perfect start. You can course adjust as you go.
It took me about 8 years to work my way up to work at Uber. I freelanced during university shipping a variety of projects. My first fulltime job was a consultany in Hungary, then a consultancy in the UK, and only then did I get my first "bigger name" of JP Morgan on my resume. From there on, it was much easier to have better-known companies to notice me and about five years into my career I got a call from Skype, which was the first widely-known tech company I worked at.
Getting started in the industry, and taking that first opportunity with the local Hungarian company was far more important for my career, than taking a perfect start. And I'm still grateful for all that I learned during two years at the company called Sense/Net you've probably never heard of.
If you're a bootcamp grad: know that some of the "learn to code in X months" bootcamps don't do a good enough job in giving you the skills needed to get a software engineering job. Consider programs like Launch School that take much longer than a bootcamp, is not a bootcamp-like approach, but their graduates get offers even in this heated market.
A note to hiring managers
For hiring managers and engineering managers reading this article: be aware of the current market dynamics. While as a new grad software engineer it is very hard to find that first job, as a hiring manager, it's never been easier to hire very motivated and talented new grads.
If you have headcount to fill, consider opening up at least a few new grad positions, once you have the seniority ratio in-place to support these people.
You'll save budget by hiring these people, bring enthusiasm, and you could change the career trajectories for every such hire you make.
Know it will be challenging
Getting your foot in the industry is very hard. Much of the online resources of 'how I got 5 offers in 2 weeks' are all about survival bias and won't reflect the reality of most people, or how challenging it is to get started.
As a ray of hope: once you'll make it in, it will only get easier with every passing year.
Good luck, and it is an especially challenging time to get started in the industry.
After you land that first position, you might find advice to myself when starting out as a software developer relevant.
Featured Pragmatic Engineer Jobs
- Machine Learning Engineering Lead at Conjecture. £85-210K + equity. London (UK).
- Full Stack Software Engineer at Insitro. Poland.
- Staff Back-End Engineer - Core Services at BetterUp. Remote (Germany, Netherlands or the UK).
- Senior Full Stack/Frontend Engineer at Vitally.io. $180-270K. New York or Remote.
- Founding Engineer at Renterra. $140-180K + equity. Remote (Global).
- Senior Lead Software Engineer - Kubernetes at Akamai Technologies. Remote (US).
- Senior Software Engineer - Cloud Native at Akamai Technologies. Remote (US).
- Software Engineer at DevZero. $150-175K. Seattle, Washington.
- Senior Backend Developer at Founda Health. Amsterdam, Netherlands.
- Senior Backend Engineer at Vital. $70-140K + equity. Remote.
- Principal Backend Enginee at Pento. £120-135K. Remote.
- Staff Software Engineer at Qualified.com. San Francisco or Remote.
- Infrastructure Team Lead at Ometria. £90-150K. United Kingdom or Portugal.
- Engineering Manager at Gruntwork. $175-240K + equity. Remote (Global).
The above jobs score at least 10/12 on The Pragmatic Engineer Test. Browse more senior engineer and engineering leadership roles with great engineering cultures, or add your own on The Pragmatic Engineer Job board and apply to join The Pragmatic Engineer Talent Collective.
Want to get interesting opportunities from vetted tech companies? Sign up to The Pragmatic Engineer Talent Collective and get sent great opportunities - similar to the ones below without any obligation. You can be public or anonymous, and I’ll be curating the list of companies and people.
Are you hiring senior+ engineers or engineering managers? Apply to join The Pragmatic Engineer Talent Collective to contact world-class senior and above engineers and engineering managers/directors. Get vetted drops twice a month, from software engineers - full-stack, backend, mobile, frontend, data, ML - and managers currently working at Big Tech, high-growth startups, and places with strong engineering cultures. Apply here.