This “there are no full stack devs” meme is horseshit. I’ll accept that keeping up with web frontend (especially JS) is very challenging lately, and requires a substantial investment of time. But I have experience doing every single one of the “impossible” list of skills, even having used most of these skills at the same company. We’re not unicorns, we just have more than five years in the field.
My take on it is that full-stack development is really only relevant on very small teams (1-5 devs), and that specialization happens from there, and that’s a good thing. Looking for full-stack devs on a team that’s bigger than this is usually the result of lazy resource planning. But when you don’t have a lot of hands on keyboards, full-stack or “T-shaped” developers are a great asset.
Agreed. I’m really sick of this meme too. There are a LOT of apps/sites out there that are small, simple, and serve a limited audience very well. Not every app needs tons of developers. It’s really insulting to us full-stack people who take pride in keeping those apps running, to imply or outright say we must be bad at our jobs.
It is rare for me to hear a dev say what they work on is ‘simple,’ even if it is. I’ve felt that a lot of programming in industry is somewhat simple with mountains of incidental complexity brought on by inexperience, poor practices, bad languages and paradigms, and unrelenting schedules. But devs seem unable to separate these things from one another, so it feels taboo to say something like that.
I’ve done all those things as well, and web isn’t really my field. I really thought this would be something along the lines of what @technomancy said, in which case I would not yet qualify. And I fully agree with @hwayne’s comment, and simply consider myself a generalist.
Agreed. There definitely are full stack developers, and while they need to have irons in a lot of dumpster fires to remain up to date on all of the fads, the collection of moving parts is fairly small really: some database knowledge, some SOA knowledge, and some presentation knowledge.
I think there’s some nuance missing in your “full-stack development is for small teams” idea: I agree with that part of it, but the part that growing the team means adding specialisation seems to imply that growing a team is natural and inevitable, so that small generalist teams evolve into large specialist teams. Either is a way to staff a software team, software teams have probably succeeded or failed using either approach, and a well-performing small team of generalists will probably continue to deliver successfully without adding some specialists. A well-performing large team of specialists will probably continue to deliver successfully, too.
There’s no single syllabus; it all depends on the business requirements, which drive decisions about the software stack. If you can solve every problem encountered with that software stack, congratulations – to that business, you are a full-stack developer.
This is why I hate the meme: it turns a web developer into a “full-stack” developer when former made sense but later conflicts with previous meaning of software stack. It was the whole setup. They watered the term down much like crypto is cryptocurrencies instead of cryptography.
True full-stack developers include Chuck Moore, Niklaus Wirth, and the folks that did NAND2Tetris.
I think taking “full-stack” to mean “well-versed in all relevant technologies the engineering team will be customizing” is a lot less prone to strawman attacks.
With all due respect to Wirth and Moore, who have both done amazing work, have either of them spent time in the last decade building with modern web technologies? Otherwise we can’t call them full stack developers ;)
Damnit, you got me! Lmao. Ok, pre-Web, full-stack developers. (pauses) That should be OK.
Now, we need some full-stack developers with Web. I’d start with people who have done hardware and at least RTOS projects. Then, look to see if they’ve done the web stuff.
A full-stack developer is a generalist web dev as opposed to a specialist one. Of course a full stack won’t be able to keep up with every new JS development. They’re generalists! Not being as good as a specialist in their specialty is the whole point!
Saying “there’s no such thing as a full stack developer” is akin to saying “there’s no need for a generalist in web development.” Which is wrong. If anything, companies need to justify why they need specialists.
So full stack developer means web developer? What is this horseshit?
I have worked on:
instruction sets
compilers
language design
functional programming stuff
kernels
drivers
filesystems
low-level embedded systems
high-level UI design for embedded systems
3D graphics
games
networking protocols
cryptography
network servers
HTTP servers
GUI applications
databases
actual engineering (a.i. non-computers)
antivirus software
high frequency trading
When I say “I have worked on” those things I mean I designed and implemented those things, not that I merely used those things. But apparently I am not a full stack developer because I have never worked on any web application.
I have never worked on hardware, but I have a very good understanding of both how hardware really works, the engineering behind producing the hardware, and the physics that governs the silicon (but since I know more physics than computers, I guess that just means I can’t really be full stack).
Full stack means that I am a generalist who understands… the whole stack, not just the web surveillance layer sitting on top.
Hi all, just noticed this got picked up yesterday a while after it was published. Thanks @joshuacc for sharing.
My goal here was not to put down or dissuade any developers from whatever they want to learn but to show how terms like these cede a ton of power to employers. As someone noted about my short bio, I’ve worked on the front end and the back end and been a dev for over 20 years, but there is so much to know that I have never reasonably been an expert at all these things at any one time. I have an understanding of many of the aspects of both the front and back end, but I also recognize those areas where at any given time, I am weak.
My point was really that if companies feel that there is this concept of a “full stack developer” that is somehow an expert in all things, we diminish the value of our expertise. Suddenly, being an expert JavaScript dev or building a back-end in C# or building front ends in HTML and CSS all becomes of lesser value because so and so said they can do it all.
If you feel like you can know back end and front and and everything in between, more power to you. I certainly am not saying you cannot or have not. But you’d be the rare exception…so rare that it would be impossible to fill the whole category of jobs for full stack developer position openings that currently exist.
Thankyou, I’m glad to hear that my interpretation is along the same lines as your intention.
I wrote some css and html for a clients project last night but I don’t call myself a full stack dev, and I don’t even take on work where “front end” development is a key part of the work unless I can bring in someone else for that work - I’m not efficient at it and it wastes everyone’s time.
That doesn’t mean I don’t know enough html and css to get by when I have to.
What scares me is that there are people in a similar position knowledge/efficiency wise about say sql or whatever - enough to get by - who claim to be “full stack developers” and are expected to be experts at everything they touch.
Thought experiment: take the article at face value, namely the proposition that being a full-stack dev is impossible.
If this is true, then what does that say about us, having collectively participated in the development and adoption of a delivery and presentation mechanism that is so complicated that a single person cannot be expected to understand it all?
Every time you add a new slightly-leaky abstraction to the pile, you get more productivity as long as you stay away from the leaks.
We’ve now built so many slightly-leaky abstractions that the job mostly consists of knowing how to avoid the leaky bits, since as long as you can do that you can build incredible things in a few hours.
That’s a powerful image but not necessarily a failure. A single person probably couldn’t understand a whole railway network now, but today’s railway networks are more useful and more used than Richard Trevithick’s single locomotive pulling a single car on a single stretch of tramway.
Brian Rinaldi is a Developer Advocate at Progress. Brian has been a developer for nearly 20 years, working with front-end and back-end technologies mostly focused on the web.
I have been working on different things at different times. My strengths and weaknesses ebb and flow based on the focus of my work, but I recognize my inability to know it all at any given time.
Unfortunately, my employer routinely hires people who don’t fit everything on that list. Or even more than one of them. It’s baffling. Many times these people even feel like they shouldn’t have to learn other things in the list. I just… what? Why would I want an employee who sits around waiting until the CSS needs changing or we’re building something that affects the JS? Yes, we do everything on that list often, but on any given project certainly not every day! I’ve actually seen managers trying to gin up busywork for the “front end” or “back end” or “mobile” developers to have something to do.
I refuse to say “full stack developer” because I think a better term is “software developer”.
I think the way this is worded hurts the underlying sentiment.
Sure we all have some experience across most of those things, but some experience usually isn’t enough if you want greater than horse shit results.
A good developer in my opinion is someone who has deep experience in a few particular areas, and at least shalllw experience across other parts of the stack. Those who try to be experts in everything end up jack of all trades - master of none.
Wondering why your page loads so slowly? The “full stack” dev didn’t know enough sql to understand that without an index you’re doing a full table scan and it’s slow as balls.
I’ve seen this debate all over the place. No one says you can’t do more than one thing and no one says backend devs shouldn’t have some idea of html and css and js - but you can’t expect people to be deeply experienced in everything.
This “there are no full stack devs” meme is horseshit. I’ll accept that keeping up with web frontend (especially JS) is very challenging lately, and requires a substantial investment of time. But I have experience doing every single one of the “impossible” list of skills, even having used most of these skills at the same company. We’re not unicorns, we just have more than five years in the field.
My take on it is that full-stack development is really only relevant on very small teams (1-5 devs), and that specialization happens from there, and that’s a good thing. Looking for full-stack devs on a team that’s bigger than this is usually the result of lazy resource planning. But when you don’t have a lot of hands on keyboards, full-stack or “T-shaped” developers are a great asset.
I find it pretty funny to see this article on Lobsters, a site where I personally exercise every skill in the “impossible” list.
(OK, except for a front-end framework because we don’t need one, though I’ve worked with React.)
Agreed. I’m really sick of this meme too. There are a LOT of apps/sites out there that are small, simple, and serve a limited audience very well. Not every app needs tons of developers. It’s really insulting to us full-stack people who take pride in keeping those apps running, to imply or outright say we must be bad at our jobs.
It is rare for me to hear a dev say what they work on is ‘simple,’ even if it is. I’ve felt that a lot of programming in industry is somewhat simple with mountains of incidental complexity brought on by inexperience, poor practices, bad languages and paradigms, and unrelenting schedules. But devs seem unable to separate these things from one another, so it feels taboo to say something like that.
At least half of what we all do is data shoveling. Simple doesn’t mean easy though, it just means uncomplicated. Digging a six foot hole is simple.
“Keeping up with the frontend” is a bit rough, right?
Like, the products we work on don’t magically fall apart every time a new framework comes out–we do this to ourselves.
I’ve done all those things as well, and web isn’t really my field. I really thought this would be something along the lines of what @technomancy said, in which case I would not yet qualify. And I fully agree with @hwayne’s comment, and simply consider myself a generalist.
Agreed. There definitely are full stack developers, and while they need to have irons in a lot of dumpster fires to remain up to date on all of the fads, the collection of moving parts is fairly small really: some database knowledge, some SOA knowledge, and some presentation knowledge.
I think there’s some nuance missing in your “full-stack development is for small teams” idea: I agree with that part of it, but the part that growing the team means adding specialisation seems to imply that growing a team is natural and inevitable, so that small generalist teams evolve into large specialist teams. Either is a way to staff a software team, software teams have probably succeeded or failed using either approach, and a well-performing small team of generalists will probably continue to deliver successfully without adding some specialists. A well-performing large team of specialists will probably continue to deliver successfully, too.
Saying it’s horseshit is, itself, horseshit unless you have a syllabus which, when mastered, will make someone a full-stack developer.
Until then, it’s equivalent to being “Cool”:
What makes someone “Cool”? Being “Cool”.
OK… who’s “Cool”? Not you…
There’s no single syllabus; it all depends on the business requirements, which drive decisions about the software stack. If you can solve every problem encountered with that software stack, congratulations – to that business, you are a full-stack developer.
You’re not a full-stack developer until you design your own instruction architecture and written a compiler for it.
This is why I hate the meme: it turns a web developer into a “full-stack” developer when former made sense but later conflicts with previous meaning of software stack. It was the whole setup. They watered the term down much like crypto is cryptocurrencies instead of cryptography.
True full-stack developers include Chuck Moore, Niklaus Wirth, and the folks that did NAND2Tetris.
I think taking “full-stack” to mean “well-versed in all relevant technologies the engineering team will be customizing” is a lot less prone to strawman attacks.
I don’t think it even needs to include “well-versed”. “Okay at using them” is good enough for me.
There are plenty of ways to convey that idea without the whole “denying the existence of over half the levels of abstraction you build upon” part.
With all due respect to Wirth and Moore, who have both done amazing work, have either of them spent time in the last decade building with modern web technologies? Otherwise we can’t call them full stack developers ;)
Damnit, you got me! Lmao. Ok, pre-Web, full-stack developers. (pauses) That should be OK.
Now, we need some full-stack developers with Web. I’d start with people who have done hardware and at least RTOS projects. Then, look to see if they’ve done the web stuff.
A full-stack developer is a generalist web dev as opposed to a specialist one. Of course a full stack won’t be able to keep up with every new JS development. They’re generalists! Not being as good as a specialist in their specialty is the whole point!
Saying “there’s no such thing as a full stack developer” is akin to saying “there’s no need for a generalist in web development.” Which is wrong. If anything, companies need to justify why they need specialists.
So full stack developer means web developer? What is this horseshit?
I have worked on:
When I say “I have worked on” those things I mean I designed and implemented those things, not that I merely used those things. But apparently I am not a full stack developer because I have never worked on any web application.
I have never worked on hardware, but I have a very good understanding of both how hardware really works, the engineering behind producing the hardware, and the physics that governs the silicon (but since I know more physics than computers, I guess that just means I can’t really be full stack).
Full stack means that I am a generalist who understands… the whole stack, not just the web surveillance layer sitting on top.
Hi all, just noticed this got picked up yesterday a while after it was published. Thanks @joshuacc for sharing.
My goal here was not to put down or dissuade any developers from whatever they want to learn but to show how terms like these cede a ton of power to employers. As someone noted about my short bio, I’ve worked on the front end and the back end and been a dev for over 20 years, but there is so much to know that I have never reasonably been an expert at all these things at any one time. I have an understanding of many of the aspects of both the front and back end, but I also recognize those areas where at any given time, I am weak.
My point was really that if companies feel that there is this concept of a “full stack developer” that is somehow an expert in all things, we diminish the value of our expertise. Suddenly, being an expert JavaScript dev or building a back-end in C# or building front ends in HTML and CSS all becomes of lesser value because so and so said they can do it all.
If you feel like you can know back end and front and and everything in between, more power to you. I certainly am not saying you cannot or have not. But you’d be the rare exception…so rare that it would be impossible to fill the whole category of jobs for full stack developer position openings that currently exist.
Thankyou, I’m glad to hear that my interpretation is along the same lines as your intention.
I wrote some css and html for a clients project last night but I don’t call myself a full stack dev, and I don’t even take on work where “front end” development is a key part of the work unless I can bring in someone else for that work - I’m not efficient at it and it wastes everyone’s time.
That doesn’t mean I don’t know enough html and css to get by when I have to.
What scares me is that there are people in a similar position knowledge/efficiency wise about say sql or whatever - enough to get by - who claim to be “full stack developers” and are expected to be experts at everything they touch.
Thought experiment: take the article at face value, namely the proposition that being a full-stack dev is impossible.
If this is true, then what does that say about us, having collectively participated in the development and adoption of a delivery and presentation mechanism that is so complicated that a single person cannot be expected to understand it all?
Every time you add a new slightly-leaky abstraction to the pile, you get more productivity as long as you stay away from the leaks.
We’ve now built so many slightly-leaky abstractions that the job mostly consists of knowing how to avoid the leaky bits, since as long as you can do that you can build incredible things in a few hours.
That’s a powerful image but not necessarily a failure. A single person probably couldn’t understand a whole railway network now, but today’s railway networks are more useful and more used than Richard Trevithick’s single locomotive pulling a single car on a single stretch of tramway.
Here’s the title of the post:
And here’s the footer:
So you’re saying you’re a full stack developer?
I have been working on different things at different times. My strengths and weaknesses ebb and flow based on the focus of my work, but I recognize my inability to know it all at any given time.
Unfortunately, my employer routinely hires people who don’t fit everything on that list. Or even more than one of them. It’s baffling. Many times these people even feel like they shouldn’t have to learn other things in the list. I just… what? Why would I want an employee who sits around waiting until the CSS needs changing or we’re building something that affects the JS? Yes, we do everything on that list often, but on any given project certainly not every day! I’ve actually seen managers trying to gin up busywork for the “front end” or “back end” or “mobile” developers to have something to do.
I refuse to say “full stack developer” because I think a better term is “software developer”.
I think the way this is worded hurts the underlying sentiment.
Sure we all have some experience across most of those things, but some experience usually isn’t enough if you want greater than horse shit results.
A good developer in my opinion is someone who has deep experience in a few particular areas, and at least shalllw experience across other parts of the stack. Those who try to be experts in everything end up jack of all trades - master of none.
Wondering why your page loads so slowly? The “full stack” dev didn’t know enough sql to understand that without an index you’re doing a full table scan and it’s slow as balls.
I’ve seen this debate all over the place. No one says you can’t do more than one thing and no one says backend devs shouldn’t have some idea of html and css and js - but you can’t expect people to be deeply experienced in everything.
The OP have missed being knowledgeable in copyright law as well as laws related to personal information protection.