Back in 2012 I wrote a post What is a Full Stack developer. Somehow it ended up being the top hit in google for “full stack” for a number of years. It has had over 1.1 million views since 2015 when I started tracking analytics.
The post has been referenced by many other bloggers which I appreciate.
The post was also blatantly plagiarized dozens of times. The worst offender was a fly by night code school that used it for promoting their curriculum without my knowledge or consent. All this gave me a real world lesson in copyright law but not so much in terms of SEO. It was part luck, part timing, and part good content.
Like it or not the term is sticking:
According to the 2019 Stack Overflow developer survey:
About 50% of respondents identify as full-stack developers
Never read the comments:
My post was used in threads on reddit and hacker news. In reading the comments (which always leads to a feeling of emptiness), I’ve noticed there are three main camps: supporters, people on a non-web stack where the idea doesn’t fit as well, and critics.
Supporters of the idea have worked with variety of technologies (mostly web), know multiple programming languages, have worked in varied roles, and don’t take it too seriously. Others are wanting to become full stack developers because they see it as more interesting or better paying. Personally I’m a supporter because I’d rather not be pigeon holed into language X nor have my career tied to a single vendor.
The non-web software developers bring up some good points about how different software stacks can be. Examples areas are C++ / assembly, robotics, hardware controllers, AI, etc. This stuff is really cool, very specific, and the opposite of web development. Current web stacks still have the same sort of things I mentioned in 2012 (hosting, data modeling, business logic, API / action layer, user interface, user experience), but not all software systems map well to those layers (like a robotic vacuum cleaner, the linux kernel, a chat bot, or a smart TV).
Critics tend to doubt that it is possible to have meaningful skills across a wide spectrum, dismiss full stack devs as either unicorns or liars, and claim it is just hype designed to cut costs. There are always trolls online no matter what the subject is.
At least some have a sense of humor about it:
Maybe full stack is just another term for a generalist?
There is nothing wrong with having several technologies listed on your resume, but does that imply a lack of expertise? If you want a Java developer, and they list Java, Python and Assembly, are they diluting themselves or showing off their super powers? Now what if they list Java, HTML and CSS, oh no, now they look more like a “front end developer”.
I don’t think any of this matters as long as they can do the job well.
That said, it is impossible to do the work of more than a few people without cutting corners and incurring massive technical debt. Personally I doubt that full stack developers are unskilled because they are spreading themselves too thin, it is more likely the environment they work in being too crazy.
I agree with the critics in some circumstances:
When writing a system that someone’s life depends on (like a medical device or flight control system) then I agree, deep expertise is absolutely required. When a bug could lead to an accidental death “full stack” generalists and new comers alike should not be allowed to work on something unsupervised. This is where senior developers need to do the job of directing work, reviewing work, sharing their knowledge and mentoring new developers.
The problem is most corporations have a culture of treating their profit driven mission as if it is life and death. Meanwhile they are actually building a restaurant reservation system or helping someone buy a shoe online.