What does fullstack mean? Everyone has their own definition. Here's what I think:
- It's stack-agnostic.
- Being able to navigate and push production code from front-end to back-end without skipping a beat.
- Being able to design, build, deploy, scale.
- It used to be a highly coveted title meaning a developer proficient in front-end to back-end development (in no particular order).
What doesn't it mean?
- It doesn't mean knowing client-side coding and scaffolding a CRUD backend.
- It doesn't mean being a Java developer with some knowledge of HTML.
- It doesn't mean MEAN stack or RoR.
Challenges to Fullstack
My daily reading material covers each topic above. Imagine this for a second if you're not already on this train...
- Wake up.
- Check all email newsletters for worthy articles and queue to Pocket.
- Read Pocket during commute.
- Check usepanda.com aggregated lists that span from Dribbble to lobste.rs for casual reads at lunch time.
- Stepping out for lunch? Scroll through the hundreds of blogs I've subscribed to on Feedly.
- What about evenings? Tuts, coding, Quora, playing around with new things (usually with a scotch or bourbon).
This is upkeep.
The problem is the breadth and depth of technologies have expanded so rapidly, fullstack developers are trying to play catch-up when everything is already red‑ shifted by the time you're looking at it. This problem is what makes "fullstack" a contested and controversial title.
Generally, developers are either front-end focused and have little back-end development experience, or they're back-end & DevOps focused but are weaker with front-end. Ask your friendly neighborhood back-end developer what (s)he thinks of vertically aligning HTML elements, even with flex. (S)he probably doesn't even know about flex.
Given the current state and quality expectations of software, there have been a strong number of opinions expressing that there can be no true fullstack developer and that becoming an expert in all of these subjects is not feasible for an individual (or at least extremely rare).
Fullstack in 2017
These days fullstack seems to mean front-end web. It appears to be correlated with a MEAN stack developer. The title has become overly watered down.
People ask me if I'm front-end or back-end. 😒 -> The look I get when I say fullstack.
The rarity of a true fullstack developer that's proficient all around hasn't changed much, although it seems the demand for fullstack developers has.
How is the demand being met? The titles are being used incorrectly.
Should fullstack developers be expected to know responsive design in 2017? Sure. Exposure to mobile... sure. What about NLP with chatbots? How deeply do they need to understand data science, Hadoop, and Spark? Blockchain? IoT? VR? Machine learning? The list goes on and on like a never ending barrage of new areas of expertise. A person struggles to see the potential of all of them, let alone claim complete knowledge of each domain.
Fullstack in the Future
We should start using more appropriate titles. We could keep using the word, but sparingly. Fullstack Java Developer works if the developer is expected to use a Java stack and be proficient in Angular or React. A MEAN Web Application Developer should be listed as such.
So what does being a fullstack developer in 2017 mean? Stiff competition from specialists. Upkeep is almost unmanageable. The title is mostly obsolete in this web-app focused world. Let's keep the word as a description of all areas of programming instead of using it to describe a person. Some advice: I hope you're learning everything for some particular end goal, like starting a software firm with a small team. Otherwise, GTFO and specialize.
Written by a "Fullstack Developer"...