What is the difference between a software engineer and a full stack web developer?
Software engineering is a broad term. The job could encompass everyone from embedded engineers to C# specialists. Typically though, a software engineer will know how to architect a system – they can decide the way it should be built before developers go ahead and build it.
Full stack web development is a subset of software engineering – a job that involves handling all the work of databases, servers, systems engineering, and clients – and requires someone who is at home with front-end and back-end technologies.
What skills do I need to become a software engineer?
Danny Young, head of engineering at Randstad Technologies, concedes that historically, software engineers were introverted and “happy to stare at a screen for 10 hours a day” – but says those stereotypes are increasingly inaccurate. “It still exists but successful software engineers are unlikely to be wearing headphones and refusing to interact with colleagues anymore; that’s largely a thing of the past.”
Sam Bell, managing director of corporate website design agency Copia Digital, says that the mindset in software engineering can be different from that in full stack. “Before a software engineer starts writing anything, he or she is going to sit down and do some planning. They’re going to be thinking in terms of flow charts and drawing diagrams. In general, I think a full stack developer is more likely to start by writing code and do the thinking as he or she goes along. Software engineers need to be a little bit more thoughtful. That is particularly true in certain industries like financial services. In banking, for example, you may need higher level maths or a background in economics.”
Both roles will require a problem-solving attitude, an open-mind, and an aptitude for finding good solutions. A willingness to try something new with a view to potentially rejecting your efforts if they don’t yield the correct solution is also important.
What skills do I need to become a full stack web developer?
With the variety of skills needed, from programming languages and the use of development frameworks, third-party libraries and front-end technology to database and basic design ability, full stack developers are jacks of all trades. Not only do they need a breadth of knowledge, they need to work fast and build prototypes quickly. It’s not for everyone. While the variety and the opportunity to work fast independently is attractive to some, there’s no time to become an expert in one particular skill.
“In the purest sense of the terms – in theory – these are very different careers,” says Ross Ellner, the managing director for EMEA at Aravo Solutions, a third-party risk management software provider. “A stereotypical full-stack role is a more dynamic job – you need to stay on top of a broad swathe of emerging technologies – and involves working within a more entrepreneurial environment. The best full stack developers have a somewhat commercial spirit and a mindset that at least considers design. And you’ve got to get your hands dirty with code. It’s a simplification but, in general, software engineering is more cerebral.”
You also need communications skills. “You’ve got to be able to talk things through,” explains Tom Pitcher, a software developer and consultant. “Clients and colleagues are looking for someone who can explain whether their requests are reasonable or if another solution is a better option. In full stack, there’s less tolerance for the quiet, grumpy coder stereotype.”
What are the disadvantages of becoming a software engineer?
Software engineering is a broad term and can embrace many different sorts of jobs. “Essentially, you’re going to have to read the job description very carefully,” says Bell. You can be maintaining and fixing up old code. You may be expected to understand an existing code base within a couple of weeks to fix legacy stuff – that can be difficult,”
“There’s no question that full stack is challenging,” says Ellner. “But working as a software engineer isn’t a walk in the park either. It involves a different kind of pressure. It’s more likely that you are going to find yourself working as a specialist in only one tier of the application development, for example. So you are less likely to have the support of a team working directly alongside you. It can be a less collaborative process. Often full stack is a nicer work environment. I’m not sure why; maybe because web technology moves on so fast and there’s so much to keep on top of, people are more open to looking at things differently?”
What are the disadvantages of becoming a full stack web developer?
Bell says that the job of a genuine full stack web developer is getting harder and harder. “Every individual part of the job is getting more complex. In the long term, I don’t think the full stack role will be around forever. Every layer is becoming more complicated. It’s increasingly difficult to be good at all parts of it.”
“What’s more, there’s more chance that you are going to carry out devops and do some of the server side – the server side is more likely to get rolled into your job as a full stack developer – and not everyone enjoys that.”
The design element is often overplayed, too; one thing that every blog will tell you is that there’s scope for some artistry in full stack. That is, perhaps, changing. “I think, in general, there’s less design now,” says Pitcher. “I’ve never had a great eye for it and I do no more than make suggestions. Modern graphic designers are perfectly capable of messing around with HTML.” Ellner – who has worked with Aon and Sunguard – agrees. “Don’t get into full stack under the impression that you are going to be unleashing your inner artist,” he advises.
How do you become a full stack web developer or software engineer?
The good news is that you don’t need a technical degree to become a full stack web developer – you can learn on the job once you have some (unpaid) coding experience. But that doesn’t mean that you can walk into the best jobs once you know how to code. “A great full stack developer is going to need something like 10 years’ experience,” says Ellner. “There’s no hard and fast rule because graduates fresh out of uni can move into full stack – but you need time to build up the breadth of knowledge to be really good at the job.”
Bell agrees. “A decade sounds a bit toppy. Non grads who’ve been writing code in their bedroom can pick it up. But, yes, you need a few years’ professional experience to excel.”
Pitcher says it’s all about business knowledge, “At its most basic, full stack is a relatively simple job. You can look everything up online and some technically minded people can pick it up very easily. If you’re not that way inclined, then there’s a danger that you find yourself feeling like a jack of all trades and a master of none. Most importantly, though, is what you can’t google – the business acumen that you build up. The belt and braces technical side of the job is not the be-all-and-end-all. The experience you develop over the course of your career is invaluable.”
In contrast, it’s much more likely that you’ll need a computer science degree to get into software engineering. And the chances of you needing to dispense business advice are much lower. “If you’re doing embedded software, it’s much more likely you’re going to have an electronics degree” says Young. “If you’re doing middle-wear development, it’s more likely you’ll have a computer science background.”
How do salaries compare?
Graduates going into full stack can earn between £25,000 and £28,000. Someone with a Masters degree might pick up £32,000. Niche skill sets, such as working to specific industry guidelines, can make a difference. But salaries reflect geographies. A job paying between £45,000 and £55,000 in London might pay between £45,000 and £50,000 in Bristol.
The right tech career path for you…
In full stack, the chance to absorb experience and knowledge is high. But the demand and pay is slightly higher in software engineering at the moment – and there’s more runway, too. In full stack, salaries top out at about £60,000. Embedded software engineers, meanwhile, might earn another 25% on top of that. So starting in full stack and then moving across later in your career can make a lot of sense.
Lastly, there are more pay anomalies in software engineering than there are in full stack web development. “There are people in software engineering who are charging tens of thousands of pounds a week to fix antiquated, legacy systems. With the best will in the world, you aren’t going to get that sort of money in full stack,” jokes Pitcher.