Ask HN: What does “Full Stack” even mean anymore?

Yesterday, we were entertaining some other companies. I counted 4 times, that the term "full stack" was used in different ways. One was the classic way I thought of it: someone who works both frontend and backend web apps.

At another point though, it was someone who did zero web, but instead could do embedded C, and native mobile apps for said devices. And the other two were more variations.

The only real abstraction I could apply that made all of these fit under the same umbrella was something like "Given any product's technology stack, where the stack contains a plurality of languages and/or libraries, a 'full stack' developer is one who is not inhibited by the variation in technologies to be able to contribute meaningfully to most of the product". Or something like that.

Are others seeing this?

5 points | by travisgriggs 615 days ago

7 comments

  • mikewarot 615 days ago
    If you want to go "No True Scotsman", it means knowing the skills that John Plant demonstrates on his youtube channel "Primitive Technology", and going all the way from there up to past Sam Zeloof who makes integrated circuits in his garage, continuing on to writing your own OS, Network Stack, Servers and Browsers. But that's an interesting diversion.

    I think it should be someone who understands all the layers from the ethernet hardware, arp, ip, tcp, http, https, bufferbloat, dns, caching, etc. along with the various software stacks on the servers, and clients, along with their "apps"

    If you don't know how to fix a DNS issue, you're not there yet. You don't appreciate all the failure modes.

  • gregjor 615 days ago
    I’m not sure it ever meant anything specific. I understand the term to loosely mean “can write code for front end and back end,” meaning both client-side (HTML, CSS, Javascript) and server-side (PHP, Javascript, Python, Ruby, etc. plus SQL). It may or may not include infrastructure, system admin, or “devops.”

    I’ve met people who call themselves full stack who seem lacking in parts of the stack — cannot navigate the Linux command line, can’t write SQL, etc.

    Like so many apparently descriptive labels in the software/tech industry the term “full stack” got applied to so many collections of skills at various degrees of ability to lose any useful meaning. See also “senior” and “engineer” and “architect.”

  • IceMetalPunk 615 days ago
    According to my company's upper management and their push for everyone to become "full stack", it means "someone who can write front-end code in one language, back-end code in another language, container configurations, handle all deployments, and generally do literally everything from start to never-finished in every language and framework we use; that way we can fire employees dedicated to specific tech and just pay one team their current salaries to do it all".
  • JoshCole 615 days ago
    The more general someone is, the more cost specificity has, because there is more to be specific about. So people reach for words that describe generality. The problem is that a word like tall, though general, isn't specific enough to be accurate. Different communities have different ideas of what tall means, because the height distributions are different. Full stack means there exists a stack for which the person who claims to be full stack has expertise across the entire stack, but since different companies have different stacks it isn't clear what exactly that means except that describing it another way would presumably take more words.

    It tells you something true about them, but does it in a way that has a lot of error. That might seem bad, but it isn't.

    In communication there is this idea of progressive revelation. If you were sharing the shape of the world, you start by calling it a sphere. As greater interest is shown you proceed to pointing out it isn't actually a sphere, but an ellipsoid. Still greater interest leads to revealing that it is actually an irregular ellipsoid. Only if they are interested in getting more specific do you venture into talking about the irregularities of the mountains and the canyons. The full description of the shape isn't realistically shared - you live on the Earth, but you don't know its shape and if you ever tried to articulate it a stray gust would move a sand dune while you weren't paying attention and you would still be wrong.

    Someone who is saying they are full stack is like someone calling the world a sphere - it is true to a point, but needs elaboration to produce a better understanding.

  • spansoa 615 days ago
    Full stack is a valid term, but it tends to focus on the 'Übermensch'[0] type who specializes in many areas. Also see the Great Man[1] (or woman!) theory.

    Personally I don't try to spread myself too thin across disciplines. If a certain prescribed set of requirements is made out by a potential employer, I reject the employer, not the other way around. Luckily we have that choice. It wasn't the case earlier where you had to fit into neat little boxes to get employed.

    [0] https://en.wikipedia.org/wiki/%C3%9Cbermensch

    [1] https://en.wikipedia.org/wiki/Great_Man_theory

  • throwaway413 615 days ago
    Native mobile apps could arguably be considered “frontend” such that they are the client the user uses to interface with your backend. Frontend !== “web”. I would say this is where it gets slippery, because previously there wasn’t such a silo between “native mobile aka native frontend” engineers vs “native platform aka backend” engineers. Now there is, and so the term frontend is evolving to mean anything exposing a UI of sorts.

    With that in mind, IMO the examples you outlined seem to fit the fe/be full stack paradigm.

  • hey2022 615 days ago
    In my experience it’s used more and more as a proxy term for a “generalist”.

    You should feel comfortable to work across different layers of a stack, whatever that stack is.

    Edit: one clear difference I noticed between full stack and non-full stack engineers is that the former are often required to navigate problems that require architectural fluency.