
How to Find a Programmer Job

With the world becoming more and more based on tech ‑ and particularly after the various levels of lockdown we have all lived through this past year ‑ there is definitely no shortage of companies out there in the UK looking for talented programmers, designers and front‑end web developers.
But how can you go about landing a job as a web developer, especially if you're going through a career change? What do you need to know? I've been involved in recruiting, interviewing, and hiring developers into my teams for many years now, hopefully, my take on things might offer some insight...
Knowledge is Power
First things first, you are going to need to know what you are doing. Luckily, there are plenty of options out there if you're looking to learn ‑ and there are enough high‑quality free options that you can start learning web development without having to invest anything other than your time!
Of course, many of the paid options will arguably provide a better structure, a better learning environment and more up‑to‑date information than some of the free options, but that doesn't mean that there's nothing useful on the table for those looking for a free introduction.
Codecademy is a great resource that offers both paid and free courses. One of the biggest benefits of a platform like Codecademy or freeCodeCamp is that they provide a structured and organised roadmap for you to learn along, which is often one of the hardest parts about going out and learning on your own.
Pick Your Stack
One of the key parts of web development ‑ whether it's back end, full stack or front end web development ‑ is picking a stack that you like to work with. Very simply: a stack is just a group of technologies that are used to host, power and run a website or web app.
The stack you want to specialise in is entirely up to you. A very common stack is LAMP, which is Linux, Apache, MySQL, and PHP. If you're working with WordPress development in particular (which is a common starting point in web development, you will almost certainly be looking at a LAMP stack.
Stacks are great because you can learn a set of technologies at a high level (including how they traditionally all interact with one another), before focusing more on the areas and specific technologies that you found the most enjoyable or that you were best at. This gives you a clear focus of technologies and languages to learn, which can really help you to get to grips with what you're doing and progress much faster.

Example Projects
It is always a good idea to show potential employers what you are capable of by developing a few examples or personal projects and hosting them online somewhere that you can show any interested parties. GitHub is particularly useful for this, as you can hook it up to services like Netlify or GitHub Pages so that you can show companies a live link of what your project looks like, whilst also offering them your GitHub profile or access to your Git repository to show them the code.
In finding a job, having this portfolio and being able to demonstrate your skills in this way is key because anybody who is serious about hiring a developer is going to want to know that your code is semantic, understandable and makes sense.
More than anything else, development and programming is generally about solving problems: from tiny problems like how to change the colour of a line of text, to much wider‑scale architectural problems like how to best structure a web page visited by millions. Somebody considering you as a hire will want to see how you approach and solve problems (probably much further towards the lower end of the scale if this is your first time), and make sure that you write code that the rest of the team can understand.

Own Your Niche
Once you've garnered some knowledge in your chosen stack, and have started to gain some experience with personal or example projects, it's time to niche down. If you want to work with Node.js, it's better to look for specifically Node.js Developer jobs. If you want Angular, look for jobs with Angular in the title.
If you want something a bit broader, you can choose between front end or back end ‑ but remember that when you have a niche, you can command a higher price and can find a more attractive pool of clients. Niches are important in web development, as it's a fast‑moving world that can be very hard to keep up with if you cast too wide of a net.
With that said, bear in mind that when dealing with frameworks ‑ especially things like Angular or React ‑ the fundamental underlying technology is JavaScript. If you can master vanilla JavaScript, then you will have the transferable skills to easily slot into other frameworks ‑ both those that form the market now and those that will gain in popularity later on down the line.
All the Trimmings
Whilst it is fair to say that the development market tends to be buoyant, there will still always be plenty of competition for any given role, so it is important that you have something to help you stand out. The portfolio and GitHub account mentioned above is a very good start here, and having demonstrable niche‑specific experience is another, but there are also plenty of other advantages that you should keep in your arsenal.
For instance, in the front‑end development field having some design or accessibility experience can help put you ahead of other candidates. Being able to demonstrate competency in commendatory areas of the role (like design, UX, and accessibility guidelines) will make a big difference and help demonstrate to the hirer how your skillset would complement the existing team structure.
There's also a whole variety of soft skills that are much more difficult to learn, display, teach or quantify but that can prove essential in landing a job in the web development world ‑ especially when it comes to contract or freelance web development, which is something we'll cover a little further on in this article.
When recruiting into one of my teams, once I have ascertained that you have the right skills for our current needs my primary concern is going to be in making sure that you are a good fit culturally. These are more character traits than outright skills: integrating well into the existing team, being open and approachable, reliable and communicating clearly. Web development can often seem like a bit of a dark art to people ‑ even project managers ‑ so if you can simplify, explain and clearly set expectations as a developer, you'll be leagues ahead of the competition.
Get Found
When people search your name, what comes up? For me, it's a martial arts coach in Dublin who shares my name. Fortunately, it is obvious he and I aren't the same person, so finding me online once you realise that I'm not very good in a fight, is relatively straightforward.
You are going to want good results that will help you in your search, rather than hurting you. One of the best things you can do as far as getting hired goes is to set up a portfolio website. This can run alongside your Github repos, can direct people to it, or could replace it entirely as a marketing tool.
There's really no limit when it comes to portfolio websites ‑ they can be as basic, complex, creative or simple as you need. It's your chance to represent yourself to potential employers in any way you see fit and to ensure that you're putting your best foot forwards when interested companies Google your name.
You're a web developer, at the end of the day ‑ and if you can't do a great job building your own website, who will hire you to build theirs?
LinkedIn is another very powerful tool here as recruiters use it as a tool to find qualified candidates. So, having a decent profile on LinkedIn that demonstrates who you are, what you do, and what you want to do is invaluable. You don't have to be particularly active on there, but it is also a very good way to keep connected with people you have met through work, and if you contract, you will meet a lot of them over the years!
My profile is nothing particularly special but nevertheless, I average a dozen or more messages a week from hiring managers and recruiters.
Another good avenue is hackathons; these can also be a great way to get your name out there, meet other developers, and take part in a fun weekend of events with a team of like‑minded people. Obviously, Covid has rather scuppered these over the past year, but they will be back, and you could do worse than spend a couple of weekends attending them when they do!

Research
Glassdoor can provide you with handy and honest insights into what it might be like to work at a specific company, showing any issues with the management, the culture of the workplace, expected wages and salaries, as well as similar companies and roles on offer in the area. Like any other online reviews though, these can be taken with at least a small dose of salt: inevitably people will be more incensed into writing a negative review than they will feel the need to write a positive one.
There are also a few sites that can show you what your desired job title is paying around the UK. One of the best is ITJobsWatch which collates average and median salaries from job adverts to give you a detailed insight into your potential earnings. As above though, do bear in mind that ‑ like used car adverts ‑ the amount advertised is not always the amount paid. Only time and experience in the market will give you an absolute knowledge of how much you are really worth.
Freelancing and Contracting
Freelance and Contract Front End Web Development can be a very attractive prospect to a lot of people; you get to decide your own hours, and can often work from wherever you chose, even on the beach if you are lucky enough to live near one!
However, it can be a hard way to make money. It is very competitive, and it can be difficult to even find clients in the first place. This competitiveness, and lack of security, is generally why freelance or contract developers can command a higher price point.
Freelance work can also be a great way to pad out your portfolio while looking for a full‑time role, although as a rule of thumb, I would recommend avoiding attempting to use marketplaces like UpWork: these tend to be hyper‑competitive and the pay available reflects the global nature of the platform. I have found it far preferable to network more locally and use your proximity as an advantage to build a more personal connection with clients, rather than attempting to bid against five hundred other international developers for a day's worth of work...
Building a Portfolio
As a freelancer, you're going to need to rely on successful past projects to keep the momentum going and the work (and money) flowing in.
Part of this can be achieved by ensuring that you get a testimonial from every client, and you can always use the work you've done for them as a case study on your website to showcase your abilities ‑ but it's helpful for more technical clients (that may be willing to pay more) to have a portfolio of personal projects as well, using more complex or experimental languages or methods.
These kinds of projects can be their own marketing ‑ if you get your portfolio site out there through successful SEO strategies and by submitting your projects to compilations like the CodePen Spark, you'd be surprised at just how far an "out‑there" weird project that would never be put into production by any serious brand can take you.
Categories:
Related Articles

Preview Mode in Next.js with a Headless CMS. 
Exploring the Liquid Templating Language. Exploring the Liquid Templating Language

Fast and Slow Pointers: Solving the 'Linked List Cycle' Problem. Fast and Slow Pointers: Solving the 'Linked List Cycle' Problem
Disabling Source Maps in Gatsby for Production. Disabling Source Maps in Gatsby for Production

React's Virtual DOM vs. the Real DOM. React's Virtual DOM vs. the Real DOM

Template Literals in JavaScript: Writing Multi‑Line Strings. Template Literals in JavaScript: Writing Multi‑Line Strings

Understanding CSS Positioning. Understanding CSS Positioning

Understanding Transient Props in styled‑components. Understanding Transient Props in
styled‑componentsWhere to Find Jobs in Web Development. Where to Find Jobs in Web Development

Integrating CMSes with HTML, CSS, and JavaScript. Integrating CMSes with HTML, CSS, and JavaScript

Next.js vs. Remix: Understanding the Key Differences. Next.js vs. Remix: Understanding the Key Differences

Memoization in JavaScript: Optimising Function Calls. Memoization in JavaScript: Optimising Function Calls