Empty Stack Developers
“Full stack developer” is a lie we should all stop using as a job title. It means nothing and everything at the same time.
What is a “Full Stack Developer”?
In most cases it means a developer who can develop web features end-to-end which means both the Frontend and Backend. But, this title is a failure. In previous work I wrote a pull request to fix some bug in the server. Does it make me a “Full Stack Developer”? What if I told you the fix was 4 lines? Moreover, I needed to write some C++ code to extend Electron capabilities. Is C++ development under the Frontend title?
We’re all Full Stack Developers
We all touch the whole stack in day to day work. Usually, developers don’t have the privilege to use only “their part” of the stack. Frontend developers must at least use Node tools, and debug networking, And Backend developers aren’t only looking on the CLI for test results. Usually Frontend and Backend developers debug the other platform and even submit code.
Senior Full Stack Developers
If there is something worse than the title of “Full Stack Developer” is the “senior” one. There is some logic behind this title for some of the small startups in their beginning. But even in small startups they are reflected in expectations and the result. For example: a small cyber security startup probably won’t have the same person behind the security research, writing the backend, and writing the code for UI. There might be someone like this, but for sure he’ll write one of the parts lame. But even if we remove the “security research”, writing Frontend or Backend are both much more complicated, it’s easy to write Frontend if you are writing a site with 10MB bundle with unmaintainalbe CSS, and inaccessible UI. It’s easy to write Backend if you are writing a server which cannot receive more than a single request at the same time, with 10 seconds latency, and a database which will never scale.
Specialization isn’t a rude word, And for most developers it’s the best path. I know very few developers who are actually “Senior Full Stack Developers”, and to be honest the same is applied to just “Full Stack Developers”. Usually in a specific field there is a small percentage of good quality developers , So why insist on the “whole stack”?! Android and iOS developers don’t give themselves the “Full Stack” title, even when some of them that I know, wrote end-to-end features.
The Reality
“General Purpose Developer” describes much better what actually “Full Stack Developer” is, but “Full Stack Developer” describes the fantasy of employers, so you’ll never hear an unattractive “General Purpose” job title. In the end the marketing wins.
Responsibilities of the Full Stack Developer
Most of the frontend developers I know, don’t know well enough main aspects of the frontend development. Most of the backend developers I know, don’t know well enough main aspects of the backend development. Most frontend and backend developers, usually know well enough only few of the responsibilities in their field. What does it mean for full stack developers?
Most frontend developers are into “just” CSS or into “just” application logic or into “just” accessibility or can be “just” another speciallity. The same for backend developers, but more importantly, it’s rare that developers are good in multiple expertise, even those who carry “senior” titles. It’s hard to be more than a medium level in multiple fields, And mostly people tend to care only about 1 or 2 aspects.
Full stack developers responsible for:
- At least know JavaScript / HTML / CSS
- At least know how to structure good application logic (both frontend and backend)
- To be good at developing interfaces with good user experience
- To know security
- To know SQL
- At least know one backend language. (Sometimes JavaScript can used also here)
- To know how to write tests
- To know how to work with Databases
- To know how to build horizontal scale applications
- To know how to work with caching layers
- To know how to work with queues
- To be responsible for devops in some basic level
And this is part of the list. Since, frontend and backend developers can’t be good in evey fields. Does the full stack developer you work with is better in frontend or backend? Is the full stack developer better in writing accessible UI or making a server horizontally scaled? For sure, if you think she or he knows more, you’ll be surprised when you dive into details. I know C++ enough to write Electron extensions, but I’m a frontend developer, not C++ developer and definitely not an Electron expert. Developers can change expertise, but for most they are only focused on frontend or backend with some basic knowledge in the other platform.
Realistic Expectations
In small startups everyone is full stack, but not just developers. It’s much broder. It means you are a developer, you are designer, you are product, you are marketing, and every role that you have to fill at the moment.
But startups can’t scale if everyone does everything, since we are limited in our capabilities.
As code should be scalable, also roles should too. You can’t expect a frontend developer to do only 100% frontend, you can’t expect a backend developer to do 100% backend, but you definitely can’t expect that big chunk of the company will do full stack development, and do it well.
There are always trade offs, but trade offs of tiny startups cannot last if they expect to grow, And if you are more than 2 programmers company it’s time to ditch the full stack role.