Zach Campbell, Senior Full Stack Engineer and winner of Developer of the Year, shares his insights on the mystery of ‘Full Stack’
Three and a half years ago, sitting in front of a recruiter who was offering a Smorgasbord of potential jobs to get stuck into, they asked the all-important question: “Would you consider yourself Full Stack?” Well of course I did, because to say otherwise was to admit defeat in the face of CSS and I’d seen a YAML file before, so I was basically a DevOps Engineer.
Three and a half years of Full Stack later, sitting atop my throne of languages (I did enough to put on a CV but not enough to pass a LinkedIn Quiz), I started to wonder whether I’ve ever been Full Stack and if the truly Full Stack unicorn really does exist.
What is the stack?
According to leading source of technical definitions Coursera, A full-stack developer helps build and maintain both the front-end and the back-end of a website.
Which is a fantastic way of telling us pretty much nothing! If we go to the second leading source of technical definitions (me), then the Full Stack is the division of an entire solutions platform into their Contexts and Deliverables. The Context is the area or environment the role works in, such as in Cloud Tools like AWS for DevOps or in various Database Management Systems for the Data Layer. The Deliverable is the end goal for that stack, such as a User Interface for Frontend or a server-side layer for Backend.
This is a major simplification of the stack but when you break it out like this you can start to see that the breadth of knowledge required for each of these areas is boundless. So then how much of this stack should one person be responsible for?
If we take the entire stack, it looks a little something like this:
UX | Frontend | Backend | Data layer | Mobile | DevOps | QA | SDET | Security
Not accounting for non-tech specific roles here, and you could argue there are further roles that butter the technical pancake stack, but we’ll keep it simple for now. You may also be wondering, which of these roles are viable for a Full Stack Engineer to cover? In my opinion, it is the following:
UX | Frontend | Backend | Data layer | DevOps
Is it reasonable to expect a single Joe Bloggs to be able to juggle all of these to the level of a dedicated stack role? I don’t believe so, and I’ve seen many exceptionally capable engineers denied Full Stack roles because they couldn’t deliver 100% on par to specialist performance at every single layer. Referring once again to my incredibly humble opinion, if the Full Stack is not a be-all end-all of maximum skill and knowledge; well then how good do you need to be?
The Bell Curves
This is your ‘standard’ run-of-the-mill single-focus engineer, who has either taken a specialisation through passion or decided that Jack and all his trades weren’t all it was cracked up to be and picked a lane to master instead.
The high peak and immediate drop-off are indicative of the comfort zone, but with a strong degree of focus and capability in that area with some knowledge of the adjacent stacks. In my opinion, this is the easiest archetype to fall into, as it requires the least upkeep in terms of technical knowledge and allows you to hone in on a specific skill set to a strong degree; however, a team would require a strong variation of these specialists to fully flesh out their capabilities.
The Full Stack
The hiring manager’s picturesque idea of a Full Stack would look something like this:
But this is a pipe dream that exists only in LinkedIn job adverts for newly fledged startups who pay in promises and leave you with eye pain and a crippling caffeine dependency. A more realistic look at a Full Stack would be something more like this:
The skill peak is lower than a specialist by a good margin, but the overall spread is much wider, with strong knowledge about multiple stacks and the capability to work in a strong subset of them. These people are very flexible, but I find can often suffer from the lack of immediate recall knowledge that a strong specialist can have, and at times can prioritise ‘just getting it done’ over knowing the good practice approaches.
I find myself to be somewhat like this - though depending on what project is currently pickling my brain or what requirements are had of me, the peak drifts across the various stacks. I think the true strength of a Full Stack Engineer lies is within that flexibility, though the challenge is proving you can move the peak around in an interview without having to look more like the unreasonable graph.
The line of minimum entry to Full Stack
One way we could look at measuring the requirements of a Full Stack Engineer would be in the form of a ‘line of minimum entry’ which could look something like these:
Instead of expecting the world and a few extra planets from the developer, have a realistic idea of the role requirements. Tailor your job postings, set reasonable expectations in your interview questions, and you’ll find yourself having a much better time actually understanding a candidate’s skill set from a bigger picture as opposed to throwing away a backend strong Full Stack because they didn’t know the exact priority order that CSS cascades in.
This whole opinion piece is a hugegeneralisation based entirely on my narrow scope of experience and the things I think about in the shower, but it’s an interesting thought exercise that I hope brings some light to the reality of what a Full Stack engineer is.
Of course, there are exceptions to this who are exceptionally capable in every regard and could run an entire development team on their own if they had enough hands, but I choose to pretend they don’t exist as they scare me.
Looking for your next career move in technology? View all our live IT roles HERE!
Our team of specialised IT consultants can help with everything from interview tips to CV advice and landing your dream job! Do not hesitate to get in touch today at or send your CV to firstname.lastname@example.org
Keep up to date with all our latest blogs, tips, advice and news HERE!