HACKER Q&A
📣 sph

What does Full-Stack Developer even mean?


I've always defined myself as a Full-stack developer because I have experience with all components of a "computing stack", from low level debugging, plumbing, systems administration, backend development, networking and frontend Javascript.

Yet these days as I'm looking for work, all full-stack offers are about client-side web development with a little bit of backend Node.js.

Is my definition completely wrong? How are people with wide-ranging experience supposed to call themselves?


  👤 wcarss Accepted Answer ✓
"Whatever task your business needs me to do with a computer, I'll figure it out."

Functionally today this usually means anything from CI systems and OS/networking config all the way up to CSS tweaks. Sometimes though, it extends to lower level things, hardware things, mobile development, more "business" things like SEO or understanding marketing -- it's similar to "a utility player".

I do think many people think of it in the context of just web dev, though.


👤 jonwinstanley
Find a company with maybe 1-10 employees and only 1 is a developer.

That person is full-stack :-)

System architecture, devops, database design, backend processes, server side code, website, design, ux, hi, html, css, js… the list goes on.


👤 black_puppydog
I agree with your definition.

But I also observe that a lot of companies have trouble coming to terms with the fact that they do not in fact need a FULL stack developer; they might need a front-end dev who can implement the occasional API endpoint themselves. But that person will never touch DB schemas or such.

I think Full-Stack has become a term that's too often used by non-technical people. just my two cents


👤 samwillis
Someone early in my career described “F shaped skills” to me, building on the older T shape [0] you may have heard of before. The idea being that the vertical stem of the F represents the very wide, but (somewhat) shallow, skills you may have. The two horizontal strokes represent multiple areas of very deep understanding and expertise.

To me, and I would describe myself as one among other things, a “full stack developer” in the “web developer” sense is someone with F shaped skills in web development. Able to to get by anywhere on the stack, but with deep understanding and expertise in both a particular backend and a front end tool.

An F shaped full stack developer is someone you can rely on to work on you whole stack, but with particular emphasis on a key front end and backend area.

Many people deride “full stack developers” as “jack of all trades, master of none”. I couldn’t disagree more, full stack developers are the artists of the web, the true creatives, pushing development forward and inventing new things.

0: https://en.m.wikipedia.org/wiki/T-shaped_skills


👤 ottoflux
A useful conversation.

I majored in CS 24 years ago (am I old now?) and have had my fingers and toes just about everywhere in the last few decades.

I think your definition is pretty good but I think the primary question/problem is that too many people who don't really understand what it means just throw it around — especially in management/hiring/hr/etc.

At the end of the day, if you wanted to be nit-picky the response would be "what stack?" because no one is the master of all stacks and all things. I have worked with some amazingly talented people in my career and everyone has gaps, unless you're constantly learning and never building.

Maybe the real question/concern is that they're going to expect you to do N jobs and only pay for 1.

What you should really look for when you hire people isn't what they claim to know and ace on a "is X a native type in Y?" they question but instead how they think and how they can learn. Developers who are curious and want to learn are far better imo than ones that claim they know everything.


👤 jstx1
I don't think full-stack means "does everything". I think it's specfically used in the context of web development to mean "front-end + back-end" to distinguish it from jobs that do only front-end or only back-end.

👤 ahartmetz
Transistors, OS kernel, server runtime, server, client runtime (+ transistors, OS kernel), client, UX design, business matters.

But how it's used? A browser-based client and a bit of server code probably.


👤 karol
Some very nice answers here already. I would extend the definition of "a stack" to any plain where some wizardry is performed that is not trivial to learn. By doing this I am suggesting that a full stack developer or a generalist or a an entrepreneur are actually quite related.

These are the people who can see the big picture and have "enough skills to be dangerous" in each field. These skills are user experience, user interface, getting things done, communication, programming in various languages, architecture and devops, debugging and bug fixing.

Of course on the lower level there is API design, writing type safe code.

And on the even lower level there is optimising SQL queries, writing Chromium patches, designing network protocols, defining new EcmaScript primitives. These are extremely specific skills and people who can do them might have more narrow and deeper experise.

It ended up being a bit o a ramble, hope it hints at a useful perspective.


👤 david51232
For me, full stack means, reading some data out of a database via the backend and provide it to the frontend.

👤 lmarcos
I don't think many companies out there will let you play around with frontend, backend, system administration, databases, pipelines, etc., all by yourself. Companies nowadays usually have frontend teams, infra teams, backend teams. Each product team owns their repositories but anything related to infra, well, it has to go through the infra team. You may have some flexibility when creating services from scratch (infra team either has provided with some sort of template for that or they require you to open Jira issues) but you'll never get complete access to debug.

So, unless your are one of the first hired developers in a newly established startup that develops web products, fullstack means you are able to write api endpoints, db migrations and react/vue/whatever components.


👤 valbaca
I consider myself full-stack, specifically I call myself "a full-stack web-and-app developer" this is why:

I've worked on everything from CSS to microcontrollers. For CSS/SCSS on the frontend (though I generally rely more on things like Bootstrap). I'm very comfortable working in JavaScript land. I worked with jQuery and Dojo in the 2010s and nowadays work with React. I've built "web view" style apps (an app you most definitely have on your phone) and worked with Android-Java and iOS-Objective-C native level code to interact with the phone-OS apis and make backend calls with auth, multi-level-caching, and retries.

On the "backend" I've worked primarily with Java (but Go and Python rock too) but other languages as needed. Mostly Spring Boot & MVC or Dagger+Lambda based backends using API Gateway, Ec2/Fargate/Lambda and cpu, and RDS and/or DynamoDB (depending on the use-case).

From college, I also have an EE degree alongside my CS degree and worked in IT part-time while going to school.

Professionally, I've also lead teams to deliver multi-year projects successfully. I conduct interviews, do mentoring, evangelize best-practices and CD/CI, and go on-call once every two months.

If there's a problem and it has something to do with a computer and the internet, it's safe to say I could help solve it and deliver what a company needs.

Like I said, I mitigate the "edges" by leveraging: I use bootstrap to avoid writing too much CSS and I use ORMs to interact with DBs. In the "middle" I let React and Spring do what they do best. I'll admit my SQL could use some work, but I've also been on teams with a dedicated Business Intelligence sector. I haven't worked a whole lot with "native" mobile views, again, leveraging "web-view" style (think React Native) UIs.

Sure, there are folks who spun up a react and express CRUD stack and call themselves "full-stack" but there are also people who have worked with many aspects of the bit and baud.


👤 likortera
I consider myself just a "Web Developer". That's it. Do you need frontend? I can do it. Do you need backend? I can do it. Do you need a deployment script or a CI pipeline? I can do it. I'm in my 40s and I've been doing this since I was 17, so it's not that I'm special. I'm just old and spent a lot of time learning everything I can learn.

I'm terrible at designing, management, or "product" management. But I'm pretty decent at all of the others, stronger on some areas and a bit weaker on others, but I can do all of what's required to ship a working web application/site to our customers and I have a pretty awesome salary because of this.


👤 lfkdev
Full-Stack means understanding the "Full-Stack" of whatevers tech the company is using. For most it means having a backend and frontend understanding like knowing java for frontennd and linux-basics as backend

👤 0xbadc0de5
I only ever see the term 'full-stack developer' used to describe what is essentially web front-end / UI work. This makes the term a bit of a misnomer in my opinion. I suspect it's more marketing (or possibly skills-laundering) than anything else - in the same scheme as what was once the "janitor" has become the "facilities maintenance manager" or similar.

People with the most experience with developing across the entire software stack tend to just call themselves "developers" (or alternatively "burnt out").


👤 dtagames
I was asked this in an interview recently. I answered that a front end developer works on things the user can see or touch; a back end developer works on the parts you can't see, and a full stack developer is a made-up term used mostly by management because there is no such thing as a person who is equally adept at the front and back.

I got the job, and I do think this is the real answer. Just be honest about which side you're better at and where your real experience lies.


👤 mongol
Is it not about having the skills and experience to get by everywhere in a stack? So if someone is missing, you are able to pick it up, even if you usually don't work with that part? Rather than say "that is a backend job, I am frontend". Perhaps usually you work frontend, but once in a while, something needs fixing in the backend and you are the best one to do it, due to sick leave, deadline crunch or whatever...

👤 dusted
It just means programmer. It's exactly the same as a programmer in the 80's, someone who does (or can do) the whole application from metal to screen.

👤 wizofaus
Nothing wrong with calling yourself full-stack. If you're seeing a lot of job offers that are just "client-side web dev with a bit of backend node" and that's not what you wanna do, just ignore them. I personally wouldn't bother using "full stack" as a search term when actively looking for jobs though (not that I've done a lot of that in recent, um, decades...).

👤 kalesh
I call myself full stack because I can -

1. Write sql, work with databases & nosql stuff.

2. Work with server side code in C# & nodejs. Read from some data source & built API’s.

3. Create a usable product in React / React Native / NextJS / Vanilla JS making use of those API’s.

4. I can make wireframes, design stuff in illustrator/photoshop.

In general I think people who can built complete products end to end are full stack developers.


👤 irvingprime
In most job ads, "full stack" means, "we don't want to pay for a full team so you'll have to do everything."

You have the misfortune of being a generalist in a world that does not value generalists. Best bet is to look for a job in one area you like, then continue to help out wherever needed. This is probably easier at a startup where roles have not yet hardened.

Good luck!


👤 stevenjgarner
A full-stack developer is expected to be able to work in all the layers of the stack. [0]

[0] https://en.wikipedia.org/wiki/Solution_stack


👤 wonderwonder
In the grand scheme of resumes, job posts and getting hired it just means you have experience working in both front end and back end technologies. Pretty much it, anything else is just noise. Know php and react? Congratulations you are a full stack developer.

👤 eatonphil
I just say I'm a developer who's done frontend, backend, and devops-y stuff for web systems. To anyone but a recruiter or manager who hasn't coded in decades, that's enough to clarify for them.

👤 aristofun
After some point of the experience you don’t care about the labels game at all.

You’re just a software engineer. Period.

And you try to avoid those inexperienced hiring managers/teams who still play these silly naming games.


👤 marssaxman
"Full-stack developer" refers to someone whose context is so tightly scoped to web application development that they don't realize how many other kinds of software there are.

👤 yummybear
If you need a system built and you can only afford one person.

👤 reportgunner
I agree with your definition but I think mostly javascript frontend devs who know Node.js mostly tend to use that definition when defining themselves.

👤 netsectoday
All of the children from the coding bootcamps need a way to compete with you so they call themselves Full-Stack Developers. The recruiters and hiring managers are hyping these under qualified people up so they can get their head-hunting fees. Now you have Full-Stack Developer meaning "any asshole who says they know react" because, you know... it's connected to a database or something just hire me I don't want to go back into construction.

Welcome to the new normal.