Every graduate knows “the feeling”. You tried to put it off as much as you could – first you were focusing on your final project, then it was all hands on deck to cram for your final exams, and after all that you absolutely deserved a break from it all. But then the summer ended and it was finally time to get yourself a “proper job”. Put it off all you like – it gets all of us in the end.
If you’re looking for a job in software engineering, it can be difficult to know where to start. As well as there being more languages to learn than it’s possible to fit into your Pokédex, there are seemingly endless career options, all of them requiring slightly different skills and experience. So, where do you start when you’re looking for a job? Here’s our step by step guide to everything you need to know about getting a good job in software engineering.
Work Out What You Want To Do
It might sound like an astoundingly obvious first step, but it’s important to know what kind of job you’re looking for before you start throwing your hat into the ring. Software jobs can take all shapes and forms – you could be working on the back or front end of a product, you might specialise in-app, web, or game development, or you might want to take a sidestep into UX or data science. Either way, get a handle on exactly what you’re looking for straight away.
If you’re not sure straight away, start with a simple self-assessment. Think about what parts of software engineering excite you the most and what are the strongest areas of your skills. Take a look back through any coursework or personal projects to see where you’ve done well and where you could do with brushing up, and jot down all of the key points.
Also, think about the kind of things you want from a job as well – what kind of pace, pressure and work balance are you after? Once you’ve started to narrow down what you’re looking for, cross reference them with a selection of job adverts and you’ll quickly start to build a map of the kind of jobs you should be applying for.
Keep Your Hand In And Network
Networking often comes off with a bad vibe, but it doesn’t have to kill the party. It’s an important tool to use while on the job hunt and throughout the rest of your career. In reality, all it means is going out of your way to meet other people in the industry and making an effort to chat to them and there are a million and one ways to do that that aren’t sidling up to someone awkwardly.
Meet-ups and Events
Sure, sounds like the obvious one, but it’s one of the easiest ways to get a feel for the landscape. Organisations like Tech For Good, Hacks/Hackers and Code Up UK all run regular meet-ups and talks across the UK, and it’s worth checking out the calendar at any universities near you that run software engineering courses.
The aim of the game here isn’t to simply rock up and ask someone for a job, but you will get the chance to hear from people at the top of their game – and maybe the chance to ask them some intelligent questions. Even if you’re not talking to the speakers, there’s just as much value in the room around you as well as listening out for current trends.
Speak to as many people as you can, ask them what they’re up to, and take a genuine interest in what they’re telling you. Takedown names and contact details so you can connect and follow-up later on LinkedIn, and you’re already widening your network. Sure, they’re not going to hire you overnight, but if they spot something that could fit you in the future and you’ve genuinely shown an interest in them, there’s every chance they’ll flag it or recommend you.
Coding Sprints, Competitions, & Hackathons
Aside from meeting people in a position to hire you, there’s just as much value in meeting people in the same stage as you – as you all head out on your careers and spread out, you’ll get a whole bunch of connections at companies you might never have realised were hiring. Plus, looking at events like coding sprints, competitions and hackathons helps you to practice your skills, add to your portfolio, and work as a team.
Big tech companies like Google will often run competitions asking you to solve specific problems, and there’s a huge community of people across the UK hosting hackathons and sprints on platforms like MeetUp – even just searching Eventbrite can throw up some results you might not expect, including from big names like JP Morgan or the University of Reading.
Pull Out All The Stops On Your Portfolio
Just like any other area graduates might be looking to go into, there’s a lot more to your application than an interview and a CV. However, for software engineering roles, we really can’t stress enough how important it is to have a killer portfolio. In an industry where it’s notoriously difficult to get work experience, a portfolio of work is a vital way to show off what you can do and is a visual showcase of what you can bring to the company.
Focus On A Few Stand Out Projects
The key to putting together a good portfolio is making sure you’ve selected your best work, while also showing a good variety of skills and experiences. You’re not just looking for things like different languages or platforms here, recruiters will also be looking at different ways of working.
For example, you should aim to include projects you collaborated on, as well as those you worked on as a solo project. And, even if you are going it solo. remember that your coding isn’t just for you, it needs to make sense to others. Write it as if you’re part of a bigger team, keep it as clear and concise as possible, and add comments in your code so it’s easily understood. After all, it’s unlikely you’ll be the only person feeding into a project when you’ve aced the interview and got yourself hired.
Yes, we’re telling you to share your best work, but it’s also important to keep it concise. Software engineering is a competitive field, and managers won’t have time to wade through project after project. Pick your first three to five pieces carefully, and don’t send any more. No, not even if they are really, really good.
Know Your Projects Inside Out
Even though you’re presenting a finished piece of work in your portfolio, don’t forget hiring managers are just as interested in how you got it to that stage as they are what it looks like now. Be prepared to talk them through your code, show your working and your thinking, and discuss what could have gone better or how you might approach the problems differently now. All those comments you put in earlier are a helpful reminder for yourself here too.
The most crucial thing is to make sure you’ve re-read the code before you step into any interview – trust us when we say it’s obvious when you haven’t looked at the code since you finished it three years ago. And yes, you absolutely could have made improvements, even if you feel like it’s your award-winning Bake Off-style show stopper.
Less Is More When It Comes To CVs And Cover Letters
We feel like we say this a lot here at Debut, but trust us when we say that less is more when it comes to putting together job applications. Even for a technical job field like software engineering, you’ll still be expected to put together a CV and a cover letter, and this will often be the first thing hiring managers to look at.
Slow Down & Personalise
While it’s always tempting to spend your days firing off an endless stream of job applications, no one is winning this game by sending generic CVs and cover letters. Take each job and company individually – look at the skills they think are most important, the company culture, and a couple of things they’ve achieved recently.
Employers are always looking for people who genuinely want to work for them specifically, so don’t just think about how to showcase your skills, but also about what it is that makes the role exciting to you, and what you’d do to help them move forward as a company. In short, no two job applications should look even remotely similar, even if you’re using all the same material.
Play To Your Strengths
We often hear a lot of debate about what goes first on your CV. Should you put your projects up the top? Is it your education? Maybe it’s your skills and the languages you can code in? The truth is there’s no blanket answer – it’s actually about working out where you’re strongest.
For example, if a job is looking for someone who has a strong understanding of C++ but you didn’t actually cover it on your course, you might want to lead with some projects you made in your spare time where you used it self-taught. If the advert wants someone who’s had a bit of experience in a live business environment, you’ll probably want to put your work placements at the top instead.
All in all, it’s about being able to be critical of your own strengths and weaknesses and how they fit in with the job you’re applying for. Lead with the stuff you can smash out of the park and be prepared to discuss the stuff you’re not as hot on at interview.
Ditch The Jargon
Sure, software engineering is by its very nature going to need some degree of tech speak. But you don’t need to go full Klingon all the time. Remember that especially at bigger companies the first round of your application might not even be read by a coder – often it’s an admin assistant or AI tech doing the first round of sifting through. In short, your application needs to make sense to everyone who reads it.
Plus, when you’re in the job, a large part of your time will be spent speaking to people who aren’t software engineers. Whether it’s chatting to designers, clients, or project managers, companies are on the lookout for people who can communicate to a wide audience – it’s not just about writing the code.
Analyse Your Successes And Failures
Finally, remember to keep your job-hunting strategy as clean and useful as your code. Every time you apply for a job, save the whole application and use a spreadsheet or project management service like Trello or AirTable to keep tabs on how far each application got.
By looking carefully at the numbers you can start to see where your sticking points are – perhaps you’re not great at interviews, but you’re good at getting yourself into the room? Once you know this, you’re able to address any weaknesses.
Equally, always take notes immediately after any interviews or tasks. Write down what questions you got asked, anything that surprised you, and what you’d want to do differently next time. Always ask for feedback when you can, and use the whole thing to take a critical look at each job application to see what you can learn for next time.
Software engineering is a competitive field and it’s unlikely you’re going to walk straight into the first job you apply for – but that’s not something you beat yourself up about. Start with a mindset of improvement from the beginning and use each application to improve on the next.