Blog post
Written:
August 4, 2021
Author:

How to become... A software developer

Share:
Share:
Careers in tech

Welcome to the second edition of ‘How to become’! In this series, we explore the range of tech and digital careers in the North East and how to break into them.

In this second edition of How to become, we’ll be zooming in on a role which sits at the heart of the tech sector: the role of software developers.

So, what does a software developer actually do, and how do you become one? Read on to find out! 👇

Software development in the North East: An overview

The fundamental responsibilities of software developers are to design, build, test and maintain software systems. These software systems include computer programmes, apps, operating systems, and more.

Software developers might specialise in one type of software or work on different kinds, using coding languages in order to build software for clients across a range of sectors. Daily tasks could include chatting to clients about their requirements, writing code, or maintaining systems.

To find out more about software development careers in the North East, we spoke to Mike Davies, co-founder of Haystack.

"Developers are highly sought after, and they hold all the cards. Unlike a lot of other professions where the employer is king/queen, techies can afford the luxury of casually browsing the landscape for that ideal opportunity, meaning it's up to the employer to impress.

When it comes to the North East, I've seen first-hand some of the amazing opportunities available and the exciting projects they're working on. These can range from huge global organisations such Sage and Accenture, exciting scale-ups like HiveHR and WordNerds, and plenty of up-and-coming startups like Bottlepay and Kani Payments - we're spoilt for choice really!"

Routes into a software development career

There is no ideal route into a software development career. People from a wide array of backgrounds work as software developers and come into their roles in a range of different ways.

However, having a portfolio with example projects (which can be things you've worked on in your spare time!) will be useful when applying for a role.

If you’re in the early stages of planning your career, then it’s worth exploring courses such as T-Levels or A-Levels at local colleges. A college course will offer you strong foundations to go onto higher education, or find an entry-level software developer job.

The newly introduced T-Levels are equivalent to 3 A-Levels, and take 2 years to complete. T-Levels focus on vocational skills, and give students the chance to put these skills into action! Aspiring software developers could consider completing a T-Level in Digital Production, Design and Development. You can study this programme at…

However, if you aren’t sure whether a T-Level is for you, there are plenty of other college-level course options to consider studying including…

If you’d like to follow a traditional university route, there’s a wealth of university undergraduate programmes in the North East which offer great foundations for a software development career. Some of these include:

Instead of studying, you could also consider an apprenticeship! Newton Aycliffe based Baltic Apprenticeships is an organisation that facilitates apprenticeships in tech and digital, and offers apprenticeships in software development. You can also find apprenticeships based near to you using the government’s apprenticeship search.

Alternatively, you might be considering a career change into a role in tech and digital. For those in the later stages of a non-tech career, changing careers to software development has never been easier.

Mike Davies from Haystack notes:

"Some of the best devs I've seen have been self-taught hobbyists who fell in love with writing, designing and tinkering with software. If you're struggling to know where to start, there's a whole host of amazing online courses and classes to get involved with, just pick a discipline and dive in. Some of my favourites are Wes Bos, Treehouse, and Code Academy."

Useful skills for a software development career

Case studies

It’s clear that there are multiple career pathways into software development. But what are the backgrounds of people working as software developers? What do their average days look like, and what sort of projects are they working on?

We’ve rounded up 3 case studies of people building careers in software development, including how they got to where they are now, and their advice for you.

Martha King - Software Developer at Scott Logic

"I studied Maths at Newcastle University, and when I started the degree I hadn’t considered how much coding and modelling the degree would contain. Although it was a surprise, I really enjoyed learning coding languages and how code can be used to analyse data and simulate physical phenomena; this got me looking into how code is used outside the world of maths and what jobs would allow me to continue learning and using code. At the time, my only experience was using MATLAB and R, two languages mainly used for numeric and statistical computing. So, I looked at some free online courses to teach myself some more ‘mainstream’ development languages and to give me a better understanding of how development works. Then, when I was looking for jobs after my degree I found Scott Logic; a company in the North East that would train a STEM graduate to become a software developer.

In my current role at Scott Logic, each day starts with our team’s daily stand-up where we discuss what we have completed and what we are going to do that day. Scott Logic is a consultancy so I’ve had the opportunity to work on different projects with different clients. This has given me diverse experience to learn new things and work in different ways! It’s also nice to be able to change teams and work with different people. Currently I’m working on a frontend project - I like the visual side of this, because as you code, you can see the changes you are making to the platform. The way information is stored and passed around each part of a platform is something that really interests me. I also like seeing how a change to one area can interact with another area, sometimes not in the way you’d want!

Other than writing code, my day can include preparing for client meetings or giving demonstrations of the work we have done so far, so the dev team and the client are up to date with each other's progress and we can receive feedback as soon as possible. Sometimes, I’ll also do some non-client work like helping out with interviews, or mentoring new members of staff.

I would say problem solving is the skill I use most in my role – but I also need to have good coding knowledge, understanding of the language I’m using, and stick to coding conventions. When you start on a piece of work, you need to think of how you're going to take the business requirements and produce what is needed. When debugging a problem you tend to have to track through several files to see where the problem originated. This investigative problem solving is something I do daily and really enjoy!

There is also a lot of teamwork involved in development. A team can include people in various different roles from developers to business analysts. Coordinating with the team allows for smoother work, as then there will be less conflicts within the codebase itself. It also ensures an understanding of how long features are taking, resulting in accurate planning and predictions for future work. Currently I am pair programming with another team member. I really enjoy getting the opportunity to work closely with someone, especially while the team is working from home.

For anyone looking at software development careers - there are loads of free resources online where you can learn about coding, and I would recommend trying them out. They give you an idea of all the different languages out there and what can be done.

Identify the transferrable skills you already have, and look at where they'll boost your ability in a tech role. Once you’re in the job, write down the important things you learn, so that you can come back to them later. Although no problem will be the same, it's always useful to look back at the approach you have used in previous examples."

You can read more about Scott Logic here and apply for open roles at their Newcastle upon Tyne office here.


Jack Hobson - Apprentice Software Developer at Life Ninja Education

"I began my journey into software development in college. I studied IT in college for 2 years which gave me a good understanding of a lot of the different aspects of IT from software development, databases, social media, IOT, and much more. However, during college, I realised that I preferred software development much more than the other ones. So during my second year at college I started looking at potential career paths I could go down and the type of job roles involved. I immediately knew that software development was the path I wanted to take so I began looking at apprenticeships within software development. This led me on to Baltic Apprenticeships, which is the apprenticeship company I am working with now. As it got closer to the end of my second year at college, I began applying for a few different apprenticeships, and one apprenticeship caught my attention more than the rest, and this apprenticeship was at Life Ninja. I applied for the role of an apprentice software developer and after some talking back and forth, some interviews and a trial day I had got the job ready for when I finish college. I am now incredibly happy with where I am and who I’m currently working with and can’t wait to see what the future holds.

I use a wide variety of skills in my software developer job to ensure that every new project I work on has the best possible outcome it can. One example of a main skill I use day to day as a software developer is problem-solving. This is a very important skill because you are constantly solving problems as a software developer from such things as bugs occurring when you are testing to figuring out the best way to code a certain feature etc. Another example of a main skill I use day to day is teamwork skills. This is vital as a lot of the time you will either be working as a team or within a team but doing your own thing. Communication within the team should be very good to ensure that everyone understands what they need to be doing and what the aim of the project is.

My average day working as a software developer is almost always different. This is because of the number of different jobs I have to complete and be a part of. My days can range from developing new software and applications, discussing requirements needed for the system as well as testing the software for any bugs. My days can also vary from fixing bugs I have found from testing and debugging the software to releasing the new code to the users.

One thing I wish I knew and understood more before I started working as a software developer is that not everything happens overnight. There is a lot of content and knowledge to learn and understand so don’t feel deterred if you don’t understand or can’t do something at the beginning. My advice for anyone wanting to get into the software development field would be to stick at it. Developing your skills takes time so you need to make sure to stick at it and you’ll get there."

Find out more about LifeNinja and Zap Learning on their respective websites.


Harry Lawrence – Software Engineer at Ori Industries

"I had been programming from a fairly young age and would practice after-hours when I was at school. At age 16, then I enrolled at a local college where I was able to take a two year course which was related to programming. During that time, I had also started working part time as a web-developer for a small web design agency. After college, I went to university to study software development, but dropped out after around 4 months, at which point I started my first full time job as a software developer in the North East. I spent a year at my first job, before moving to a small tech startup in Newcastle, where I stayed for around 5 years. After that I was lucky enough to get a role for a tiny 3-person start-up based in San Francisco! Since then I’ve worked at a couple of other startups and am at one right now.

My average workday usually consists of a short stand-up meeting in the morning. The company which I work for currently is fully remote, so this, and all other meetings, are Zoom meetings. I’ll often start off taking a look at what work has been submitted for review in the previous day(s) and perform some code reviews. There’s usually an active task that I’m working on, so I’ll spend some time on that, but will also likely pair on it with another software developer or pair with them on their work. No two days are quite the same, but this is the general pattern of my days! The skills which I most use at work mostly involve programming, and planning out what will be worked on next. Specifically for programming, I write and review code largely written in Go at the moment. We also work a lot with the likes of Docker and Kubernetes, so there’s quite a bit of that thrown into the mix.

I also enjoy projects outside of work! At the moment I’ve been really interested in writing various LISP interpreters, and seeing what goes into designing and creating programming languages. I’m yet to publish my work on this but hope to in the coming months.

One of the best pieces of advice that has been given to me is quite generic advice, but fits very well for programming and I have followed it for years! In the context of learning something new, anticipate the hump. Which is to say, that near the beginning of something new, things can seem complex and confusing. Not everything is going to make sense at the start. But, going into something whilst consciously acknowledging this fact and then actively climbing that hill to overcome it, is a mindset that allows you to take the challenge on, rather than going into it and being surprised (possibly even disappointed) when things don’t seem to make sense. Know that at first it’ll be tough, but also know that with dedication you can overcome it. Everyone is different and will have their own approach to learning, but this is a mindset which has allowed me personally to keep on going!"

Find out more about Ori Industries, and check out Harry on Github!