Today I’m offering my potentially controversial opinion on the job title/description “fullstack.”
A common complaint about the term is that it’s vague. What is a fullstack developer? Someone who writes in PHP and JavaScript? Go and Swift? While this may be a legitimate complaint, it’s not actually what I want to talk about. I’m happy to assume that it refers simply to someone who writes some kind of backend code as well as some kind of frontend code, and maybe also some code that doesn’t fit into either paradigm (deployment scripts, database schemas, or SCSI card firmware… whatevs).
I dislike this term for an entirely different reason:
I believe the term devalues people and their skills.
Now let me be clear. I don’t think there’s anything wrong with a single developer writing frontend and backend code. In fact, I would expect any experienced developer to be able to do at least a basic level both, if not immediately, with a minimal amount of new effort.
To my knowledge, none of the “greats” ever refer to themselves as “fullstack”. Kent Beck calls himself simply “Programmer” on social media. Bob Martin, “Software Craftsman”. The others I looked up for this post didn’t directly mention programming in their tag line at all. The point is: these people self-identify simply as “programmers” (or similar), even though I think we can safely assume that Martin, Beck, Fowler, or any of the other “greats” would be comfortable writing frontend code or backend code, if they desire.
The problem is that “fullstack” means “generalist”, and generalists are a commodity.
“Yes, but it’s what companies want!” is a common retort.
Yes, that’s true. In fact, that’s why it’s true! Companies want commodities, because they’re easy to manage. They’re (roughly) fungible, so they’re easy to replace and they’re easy to move around when business demands change.
But commodities are, by their very nature, devalued, relative to non-commodities. A key charactaristic of a commodity is that the only distinguishing charactaristic is price.
I think a lot of engineers believe that by calling themselves “fullstack”, they’ll appeal to more potential employers. Ironically, while this is true, but it’s also the very reason they’re likely to earn less money! Highly-valued engineers have an expertise that makes them special. Specialty, by definition, means you’ll have fewer interested employers, but also that they’ll pay you more!
So in summary, the “fullstack” title means one of two things to me, depending on who is using it:
When used by an employer, “fullstack” means “we want fungible staff who are easy to manage and replace, and cost less than specialists.” Is that the kind of company you’d hope to work for?
When used by an individual or job candidate, “fullstack” means “I don’t yet recognize my individual value to the industry. I’m marketing myself as a generalist, competing on low price.” Is that the message you want to send to potential employers?
If you enjoyed this message, subscribe to The Daily Commit to get future messages to your inbox.
Top comments (1)
When I started and was looking for internship, I was using fullstack a lot. It's a buzzword and gets you a lot of interviews.
Now that I'm a full time employee, I don't use it anymore. Here's other reasons why :
Managers don't understand the term fullstack. They think you are an expert in every possible field. Frontend, backend, testing, CI/CD, database, containerization and whatnot. No. A fullstack person is a developer who might be specialized in something and fluent in that field, and may quickly understand and fiddle in oters.
Companies want to reduce costs, so they engage 1 fullstack to do the job of 5 persons. It's a lose for everyone. The fullstack person has the responsibilities and the work load of a whole team but is payed a single salary. The other 5 persons are unemployed. And don't forget that as you are fullstack, you are probably alone in the team. Good luck with knowledge management (either there is none, either it's gone with you) and organization (being agile and alone is complicated)