DEV Community

Cover image for Is the "Full Stack Developer" a Myth? The Lie Behind the Title

Is the "Full Stack Developer" a Myth? The Lie Behind the Title

Niaxus on September 29, 2024

In the web development industry, the term "Full Stack Developer" has become extremely popular. Everyone wants to be one, and companies are looking ...
Collapse
 
kumarbhushan profile image
Bhushan Kumar

I appreciate your perspective, but I have to disagree. As a full stack developer myself, I've found that it's not necessarily more important to specialize in backend or frontend over being a full stack developer. Both specialized and full stack roles offer valuable opportunities, depending entirely on the product requirements and the development phase.

In the initial development phase, having dedicated backend and frontend specialists can indeed provide a strong foundation and streamline the process. However, when the product enters the maintenance and expansion phase, the versatility of full stack developers becomes significantly more valuable. In that phase, with less stringent time constraints and tighter budgets, full stack developers can efficiently fill both roles, providing flexibility that helps optimize resources.

Looking towards the future, particularly as AI and large language models (LLMs) evolve, full stack developers will have an advantage in utilizing these tools effectively across both backend and frontend domains. Rather than needing to remember all the intricate details of either end, leveraging logical and engineering skills will be more beneficial in navigating the entire stack.

So, I think it's not about promoting one over the other but recognizing that specialization and full stack development have their own value at different stages of product development.

Collapse
 
josh_goodrich_c9a8ab3dd4b profile image
Josh Goodrich

You are actually proving his point. Specialized developers will build a great new product, "Full Stack" generalists just keep it running. If you're a developer that "just keep it running" seems good, then yes there is a space for you.

Collapse
 
pterpmnta profile image
Pedro Pimienta M.

You are right, but there is a problem today because so many jobs think that full-stack is necessary to know a lot about architecture and DevOps. I don't understand why this is happening, but this situation is driving the developers to have to know technologies that probably never going to use because the architecture o DevOps guy not are the people to allow to anyone to change whatever config in the project.

Collapse
 
jason_espin profile image
Jason Espin • Edited

DevOps should not be a dedicated role. If a developer creates an application, back-end or front-end, the should know how to build, test and deploy said application via DevOps processes.

Thread Thread
 
pterpmnta profile image
Pedro Pimienta M.

That is interesting, but what is the level to consider, including the developer's experience and the time since he/she started to work in the current job, knowledge of the flow of the CI/CD, and other aspects of the app?

Collapse
 
365team_fe_7099245ac388c8 profile image
365Team FE

1

Collapse
 
365team_fe_7099245ac388c8 profile image
365Team FE

2

Thread Thread
 
Sloan, the sloth mascot
Comment deleted
 
365team_fe_7099245ac388c8 profile image
365Team FE

4

Thread Thread
 
365team_fe_7099245ac388c8 profile image
365Team FE

5

Collapse
 
sushantnair profile image
Sushant Nair

I guess we need a balance between the two extremes

Collapse
 
mistval profile image
Randall

Full-stack developers aren't experts at everything but can contribute productively at all levels of the stack. Such developers exist and I work with a lot of them. Everyone has strengths, weaknesses, and preferences though, regarding where they contribute. "Full-stack developer" is officially my job title but I'm definitely backend leaning. I do a fair amount of frontend and DevOps stuff too though.

Full-stack developers bring flexibility and a unique perspective compared to more specialized developers, but usually they are jack of all trades and master of either none, or ideally one.

Collapse
 
jason_espin profile image
Jason Espin

Id argue that typically full stack developers generally lean more towards the backend than the front-end. Because the backend is often more complex and in-depth than front-end development and requires more learning and experience to master than just cobbling together a UI

Collapse
 
miketalbot profile image
Mike Talbot ⭐ • Edited

It's hard to architect systems if you can't reason with all parts of them to some level.

I've regularly created entire systems single-handedly, so I find it hard to understand how someone would not want to understand the logic across the entire piece.

Software has always been a freedom for me, the ability to build anything, so I want to be able to construct entire things, not only parts of them. That said, clearly, a lot of your points make sense, which is why I choose to use the same language on the front and back end to reduce the cognitive load these days. That's not always been true, but now, I recognise that as a productivity boost. I also work with people who are experts in things like security and DevOps, yet I still strive to understand them and could make headway in all areas of my product's development.

Collapse
 
janmpeterka profile image
Jan Peterka

I would call myself "Product developer" - I can build and reasonably manage all parts needed to deploy working product for users.
Of course it's limited to some kinds of products, not everyone.

Also, big help for me is chosen tools - Ruby in Rails calls itself One Person Framework, and for a reason.

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

I don't even like to label myself as any particular type of developer. I've never consciously specialised in any particular area, and have always gotten involved in whatever was necessary - be that security, database design, front end development, back end development, desktop/console game UI development, UI/UX design, etc.

I've been in this industry longer than the labels 'full stack', 'back end', and 'front end' have even existed. It used to be VERY normal for everyone to get involved in a bit of everything. I think it's a sad indicator of how ludicrously complex everything has become that specialisation has become so necessary, and even 'the norm'.

Am I front-end developer? A back-end developer? A game developer? A QA engineer? A UI designer?

I'm all, and none of these things. I'm a developer.

Collapse
 
asmyshlyaev177 profile image
Alex • Edited

Because way easier to replace fullstack-overflow devs than specialists, companies just want to have standardised cogs in the machine.
"Jack of all trades, master of none".

React.js seems simple, everything seems simple if look how other people work, but to be proficient enough need to spend at least 3 years with complex enough tasks.

Today so many poorly made UIs, tnx to this trend.

Collapse
 
jason_espin profile image
Jason Espin

This is mainly because most front end 'developers' today aren't actually developers. If you ask them to build a UI using anything but React, they cannot. If you ask them some of the principles of base JavaScript design or to pivot to a different library or framework, they struggle.

Collapse
 
asmyshlyaev177 profile image
Alex

True, but same can be applied to backend developers as well.

Collapse
 
dane_stevens profile image
Dane Stevens

I would have to disagree with this as well. I have been in the industry for 15+ years professionally as a "full-stack" developer. My path into tech was from a young age ripping apart old computers to get extra ram sticks to beef up my own cobbled together system. I have a passion for learning anything I can get my hands on, and learning it well enough to build performant production systems with it.

My own experience working with "specialists" is that they have not had a desire to grow and learn. They seem promising initially and do well in the specialist role, but then start to stagnate and eventually get left behind as the business progresses. Specialists may do better in a FANG environment where things are mature and slow to evolve.

The other thing I have noticed is that people with a wide range of experience are more creative and are the ones to present better ideas because they have more to draw from. Innovation occurs at the intersection of fields and requires a person that can think outside the box.

Collapse
 
aloisseckar profile image
Alois Sečkár

The keyword is "stack" - you dont need to know "everything". The goal is to be proficient in one tech-stack that allows you build and ship applications.

And aside from that it is good to focus deeper on one technology or area, while your colleagues do the same in different. From the company perspective it is definitely better to have couple of full-stacks in each project and only one e.g. database expert per company. When dev team gets stuck in harder task, he can ad-hoc help to unblock them. But you dont need to hire and keep one for every project you do. That wont be effective.

There is a term from DevOps - "T-shaped people" - capable of doing many things in reasonable quality (the horizontal line) while tending to be an expert in one (the vertical line).

Collapse
 
jk_245326cf414ce17a0d2357 profile image
JK

Sounds like the author has a skill issue

Collapse
 
starkraving profile image
Mike Ritchie

I’ma full-stack developer, and not only can I write pretty powerful React components, but I can also write the advanced PostgreSQL to power them. I enjoy the frontend more, and I tend to think in frontend first (ie my “first language”), so Because of that, I put myself at 60% frontend and 40% backend.

Collapse
 
josh_goodrich_c9a8ab3dd4b profile image
Josh Goodrich

Can you create an entire AWS environment with Cloudformation and deploy to ECS? That's truly Full-Stack and it's a pipe dream that companies use to hire one person to do 4 jobs.

Collapse
 
starkraving profile image
Mike Ritchie

I don’t think that’s really the bar in order to be able to call yourself a full-stack developer. That’s more ops, so a developer that can do that too would be DevOps. And you’re right; that's a unicorn right there, so hang on to them if you’ve got them

Collapse
 
manvendrask profile image
Manvendra Singh

People who say one should not be specialist in one role or devops should not be a dedicated role, then my friends you haven't worked on an enterprise application with a large team where access control is necessary with tight deadlines working with different stockholders and scrutinized your code in code reviews.

Wish you luck in your full stack journey.

Collapse
 
jason_espin profile image
Jason Espin

I also have to disagree with this to a degree. I used to be the typical definition of a Full Stack Developer, being able to work on both the Front End and Back End of applications with ease. However, over time I found that with how quickly JavaScript libraries and Frameworks were shifting in and out of popularity it became a chore to keep up with the flavour of the month. I now 'specialise' in backend development in .Net and have for many years but I am still a full stack developer given I have full working knowledge of how to deliver a front-end and the processes involved. Whilst I might not be up on the flavour of the month JS libraries (let's be honest, most front end Devs only know React nowadays and can't even do vanilla JavaScript) my experience obtained over the years as a more senior developer means I can pivot and easily pickup and deliver a front-end if I needed to. Granted it wouldn't be as polished as a dedicated front-end developer but that's not the point of a full-stack developer. Ultimately, when you first get into the industry, you should be trying you hand at all aspects of development. Work yourself to the bone learning database design, DevOps, at least one backend tech and at least try a couple of front-end frameworks or libraries to see which you prefer. You will then naturally gravitate more towards either the backend or front end. Even if you have a 70-30 split in terms of knowledge one way or the other, you are still ultimately a full stack developer. Equally, I would argue that everyone should know DevOps. It's not difficult and a developer who delivers a project or application should be able to tell you how to build, test and deploy that application.

Collapse
 
motimash profile image
motimash

I think you lack an understanding of what a full stack developer is.

A full stack developer is someone who can write code and understand both frontend and backend architectures. They have a strong understanding of how the JavaScript engine works. Frameworks like React, Vue, and Angular are just JavaScript libraries, and a full stack developer should know how to effectively write JavaScript code.

In addition to frontend skills, a full stack developer also knows how to write backend code and has a solid understanding of backend frameworks and architecture.

DevOps does not fall under the full stack developer role. DevOps professionals are responsible for taking the code and deploying it to production or testing environments, which is not related to the core responsibilities of a full stack developer.

There is another role in software engineering called a software architect. A software architect is responsible for designing the software and its interfaces.

Based on your article, I would guess that you have never worked in an enterprise environment or that you are a very junior developer.

Collapse
 
karma0 profile image
Bobby • Edited

I was once told by a software developer with decades of experience that the only language you should ever need to learn is assembly language. Now that I am a developer with decades of experience, learning assembly has been one of the best moves of my career.

What could learning assembly actually help with? Prior to developing with high-level languages, having an intuitive understanding of the "full stack" was critical in debugging memory overrun, buffer overflows, stack smashes, etc. For developing in environments of robotics, RTOS, and IoT over the last decade, these have still been indispensable skills.

I'm dancing around the point a bit here, but bear with me.

In freelancing, some of the best projects that I have been a part of have forced me into "full stack" mode, often having to architect solutions on the backend, while still providing aesthetics on the front end that match the look of the times, flow smoothly, and "wow" customers.

My path has not been conventional by any means, though it has served me quite well, often having to think beyond the boundaries of "front" or "back" end and having clear understandings of all of the parts and how they work together. Likewise, I always urge those starting out to follow their interests and curiosities, building what they think would be cool, what they want to learn about, or what tugs at their heart. If their interest is to deep dive on a topic, then they should do so. If people follow their hearts, there's no unrealistic expectations, and they have a clear way to say "yes" or "no" to things, cutting through the cruft.

If you're looking to be a career developer, check all of the boxes, and get your retirement as a senior on your team, then you probably have a great mindset to be focused on that task, but your heart won't be in it and you'll be forced to compete with those who's hearts are. The best way to win in this role is to become a silo and own a ton of stuff. If you have to specialize, do it because you want to, but don't force everyone else to do so because you think it's the right way to do it.

In terms of specialization, it works. It works especially well in innovative fields, like research. Becoming specialized though means that all it takes is one change in your niche for your job to get cut. You're putting all your eggs in one basket, and you won't have the diverse perspective to see it.

If you are specialized in machine learning and you wrote your doctoral thesis on a specific ML solution at the edge, you're likely about to get the axe now that generalized multimodal models are popping up everywhere - because you can now train lean models using large multimodal models and deploy them at the edge cheaper than hiring someone to do it.

In specialization, you are highly dependent upon your niche being lucrative for the long term - at least your entire career. (Is anyone all-in on Angular 1.4 still? How about Cold Fusion, circa 2000?) Anyone can learn a new thing, but if you're specializing, you're waiting for the world to tell you that it's ready for you to find the next thing - which is when you get the axe. Wouldn't you rather follow your heart and become the Swiss army knife of possibility?

My opinion is that the educational models pushed specialization in many fields because of the industrial revolution and knowledge workers have since been retreating back towards the "Renaissance Individual" in realizing that knowing a lot about just a few things can be extremely limiting, even if it is useful in some cases. I would argue that it's entirely possible to know a lot about a lot of things, contrary to popular belief.

I highly recommend you sit on your thoughts, ideals, and opinions. Figure out what you really want. Leave your job on your terms. Go your own way. Make mistakes. Enjoy the ride. It's likely going to be a long one.

Collapse
 
retakenroots profile image
Rene Kootstra

The future is not specialisation because focus on one specific platform is deadly for your career. The future is in-depth knowledge on software and methodologies. This is the knowledge that build frameworks and efficient code. In my 25+ years of experience I have seen that full stack developer tend to have these traits.

Collapse
 
martinbaun profile image
Martin Baun

What I think about often is that with truly being full stack, the amount of time needed to both learn and implement everything. I want to do more backend, but my frontend work takes A LOT of my time already.

Collapse
 
cyberpunk042 profile image
Cyberpunk 042

I have to disagree too; it's the same with any (or most) titles, you have juniors, mid, mid-seniors & seniors. (&+)
Then there are some roles that are farther down the branch tree of the field where your required base level is higher. As much as there might be a difficulty in finding true Fullstack devs vs wannabes, there are definitely many of them, but then there is a rainbow of them and there is a lot of dreamer who will need to learn and work a long time before they really earn that tittle... 🕊️🚀❤️

Collapse
 
scottjwalter profile image
Scott Walter

Interesting, but limiting.

Collapse
 
dvalin99 profile image
Domenico Tenace

For me it is now important to specialize in a sector, the development of a software from 0, is very complex.
At the same time, I believe that knowing in general how each sector works is important.

Collapse
 
wayne_zhao_3809ae4d58751f profile image
Wayne Zhao

Full stack exists in everyday business.

Collapse
 
365team_fe_7099245ac388c8 profile image
365Team FE

good