6 ms·
Poll: What does “Full Stack” mean?
Apparently (https://news.ycombinator.com/item?id=29806385) there is a great divide in what "Full Stack" really means. Since the dawn of man (the full stack developer = man), "Full Stack" just meant frontend and backend development. But now, there is a group of people who seem to be calling it only "Full Stack" if it also includes a set of feature-complete modules for doing the most common tasks, such as ORMs for interacting with databases, a way of handling caching or even reading/writing to queues.
So what is it, who is right, or is there even more definitions out there?
Once this poll is complete, we can hopefully all agree on a common definition.
- BoorishBears 5y agoFull stack means they don't want to pay for specialists. So you will now be expected to do three people's jobs: Dev Ops - Backend - Frontend You'll also be implicitly on-call at all times despite that fact never being verbalized.
- metaloha 5y agoYep, this is expected much of the time. Dev-Ops is basically always on-call. I've stopped marketing myself as full-stack because I don't want to be on call. I can (and will) still do the job if needed, but prefer to specialize in my old age.
- brimstedt 5y agoThis is not at all fullstack to me. Imho; a fullstack developer is a person who can develop all pieces of an application (or game, or whatever) and put it in production, maintain it, improve it. I.e. design the database or other persistence, implement the layers that manages the data, the business logic and the user interface. It can be very different from different applications, of course, since some may not have an ui, or a persistence requirement. It is a person who not only knows how to write code, but also understands how code communicates with services and humans. A fullstack developer understands OS and computing in general. When I build teams, I like to have a mix of fullstack, frontend and backend developers because the experts (i.e specialized Devs) often handle the nitty gritty details of front- or backend, whereas the fullstack glues together the front-, back- and ops. Usually fullstackers are the kind of people who say "oh, interesting problem, let's explore" rather than "I don't know this technology, I am a (Fe|be) developer. You will rarely hear a full stack developer say "I'm unable to continue, because I have to wait for the (dba|integration team|ops team)". They will solve their problems and often has enough experience to do it well.
- BoorishBears 5y agoYou confirmed my statement exactly: > You will rarely hear a full stack developer say "I'm unable to continue, because I have to wait for the (dba|integration team|ops team)". They will solve their problems and often has enough experience to do it well. There are many of us like this who will never take a fullstack role because the reality is, we'd rather work at places that solve that problem by... - properly sizing the integration/ops/db team for example? - setting timelines up so that developers aren't blocked as often? - account for downtime with things like codebase maintenance? It's not like in theory a company can't have their ducks in a row and benefit from a "fullstack dev"... The problem is if they're explicitly looking for full stack it tends to be a negative signal.
- brimstedt 5y agoBut it's not a question of "taking a role". It's a question of where your expertise is. You should definitely have proper time lines, that has nothing to do with full stack developers. Downtime? If downtime is an issue for your system, most likely you can build it so it can be live with some parts off and do maintainenance during working hours. (Redundancy, etc) Integration and dB teams, imo, is an antipattern. But what I really did not agree with with your original comment was that managers look for full stack devs because of cost. I look for the right people, and I build my teams with a mix of frontend, backend and fullstack devs. It has nothing to do with cost, it has to do with building efficient and dependentless teams.
- metaloha 5y agoIn my career (over 30 years now), full-stack in the context of web development has always referred to an engineer who could setup the tech stack and application from scratch. They can manage the servers, administer the network (as it relates to permissions for the various web-related processes), implement developer environments, code the back-end, code the front-end, some basic design skills, experience with developing UX, and is deeply familiar with the network protocols being used. Anyone claiming to be full-stack should be able to handle light dev-ops for a small to medium sized company for at least a few days without breaking things. They should be able to sit in any other generalist coder's chair for a week. They should be able to work closely with a designer to help develop the look and feel of the application and have an understanding of the domain tools and language. They should be able to work closely with a DBA to help develop the best database for the application. They should be able to debug complex app behaviour with their understanding of how the different sections work, even if they don't have explicit knowledge of specific areas of the application. A full-stack "developer" may only refer to the coding and design+UX portions of that description, but should still be very familiar with how the server software and network works. A single framework may provide a full-stack development solution (RoR, for example), but a full-stack engineer needs to cover a lot more ground than just development.
- deleted 5y ago[deleted]
- mac3n 5y agowell, for web it ought to include some knowledge of, and ability to debug, the underlying protocols, HTTP[S], TCP, IPv4/v6. And modern Ethernet switching. On the host side, network sockets and some kernel implementation chops. At the lower end of the stack, modern processor/memory performance architecture, beginning with a basic understanding of instruction sets. Ability in some hardware design language would be good, tristates, gates, latches and flops. But that's just my take on the full stack.
- seumars 5y agoIn what context would one realistically be able to debug TCP/IPv4/IPv6? Also in terms of network sockets and kernel implementation you're talking about apples and oranges.
- fragmede 5y agoAny context where network things don't work like they should. This would include why your home internet is 'flakey', why your load balancer doesn't quite balance loads, why some database connections are slow but others are fine. You may not need those skill but busting out tcpdump and looking at pcaps in wireshark is part of calling yourself full-stack. With the cloud it may not matter as much if you've never twiddled SACK settings, but there's a large body of knowledge that is entailed by full-stack that can't be covered in boot camp.
- mac3n 5y ago_slightly_ tongue-in-cheek, because i'm annoyed by people calling the top 3% "full" stack But, an example is discovering from the DSACK responses that your network performance sucks because the intel TCP offload firmware is retransmitting entire jumbograms when any packet gets lost. Also discovering that you can't get near full network bandwidth because some moron attaches a 3-byte SNAP header. And if you don't have some idea how your programming language works, how do you know what you're doing? When a memory cache miss costs the equivalent of several hundred instructions.
- mac3n 5y ago
- jspash 5y ago202x - Full Stack Engineer 201x - Web Developer 200x - Webmaster 199x - Guy with a computer That's how I remember it.
- jxm262 5y ago^ bingo. This is exactly how it's framed in my mind. Mostly it's the same work (In concept. Though it's infinitely more complicated now), just the verbage has changed.
- seumars 5y agoWebmaster is still the best title.
- SippinLean 5y ago> If Saskia could be guarded by men in bearskin hats riding horses, why, she could as well have a webmaster. Neal Stephenson, Termination Shock
- OJFord 5y agoGitHub would prefer the title Webmain of course.
- adfm 5y agoI recall the term "Full Stack Web Developer" being coined by Randy Schmidt (of Nerd Merit Badges fame) back in June of 2008. "Over the past few months, I have really started to admire what I call “Full Stack Web Developers”. A full stack web developer is someone that does design, markup, styling, behavior, and programming. Some examples of these types of developers are Jason Tremblay, Geoffrey Grosenbach & Tom Preston-Werner." --Randy Schmidt The original link is dead, but it's still available via the Wayback Machine. [^0] I still get a kick seeing people trying to describe what a full stack web developer is and almost every single instance neglects to reference Randy's original post. Let that sink in for a moment and consider the countless job descriptions you've seen in the last fourteen years. [^0]: https://web.archive.org/web/20110210194715/http://forge38.com:80/blog/2008/06/full-stack-web-developers/ https://web.archive.org/web/20110210194715/http://forge38.co...
- bitwize 5y agoFull stack means you are doing the work of several engineers for the price of one. And you'd better have NAND-to-Tetris levels of familiarity with all of the hardware and software running the company's web infrastructure, because if something goes wrong, anywhere on the stack, guess who the Boss will turn to to fix it and staunch the bleeding of revenue.
- dusted 5y agoFull stack? Must mean you're able to design an instruction set, design chips, circuit diagrams, pcbs and finally write the firmware for it so it can boot the operating system you'll write, along with the drivers you write, so you can finally write some applications that runs on this new machine ;) dunno, maybe it goes deeper.. something about sand, and how it's hard to make even a toaster from scratch* * https://www.youtube.com/watch?v=5ODzO7Lz_pw https://www.youtube.com/watch?v=5ODzO7Lz_pw
- whoomp12342 5y agobut wait the toaster had no electrical wires??
- titusjohnson 5y ago"Full-Stack Developer" is a term derived from the term "Application Tech Stack", which is a term used for a comprehensive description of all the major tech used to deliver an application. A Full-Stack Developer is capable of working through the entire Application Stack. It's a relative term, relative to the technology you work on and the domain you work within. Many components in the stack are off-the-shelf. It's tricky when talking about SPAs because while we call SPAs "applications" they almost universally are only thin-client frontends over an API. I wouldn't call the Washington Post's frontend an actual application, nor would I call the Mixpanel UI an application. It gets fuzzier with things like Slack and Spotify. Personally, when I hire, I only hire full-stack web developers and my expectation is that they're just as comfortable rendering HTML on the backend as the frontend (and they have a pragmatic sense for what is appropriate when), they have no problems manipulating the underlying database schema, they can manage the caching system, jobs system, email delivery, etc. Not everyone is amazing at everything but everyone needs to be familiar and moderately comfortable doing most things, and the team is there to backfill anyone's personal gaps.
- glonq 5y agoI've been programming (now mostly prototyping/managing/architecting) since the early 90's, so for me "full stack" includes: - Embedded software/firmware development in ASM/C/C++ (microprocessors, drivers, RTOS, various on-board and external interfaces and buses. - Various communication protocols running on top of various wired and wireless topologies. - Developing front-end applications as mobile apps, desktop apps, and web-based apps. - Developing back-end systems using a variety of architectures (monolithic, serverless, containers) - Designing and developing entities, schemas, and API's for the system. - DevOps - Gluing all this shit together so that it works.
- valenterry 5y agoCheap developer that can easily be moved to any kind of position? :)
- sponaugle 5y agoI made a joke on Facebook a few years back about true 'full stack' development. It was a post talking about some code I was writing to do some math computation on a simple OS I had written, running on a CPU I designed using my own custom instruction set, implemented in logic on a physical PCB I also designed and assembled. Of course even this is really only 'partial stack', since I didn't do the VLSI design of the 74x series ICs I was using. So when I think full stack, I think high level code all the way down the transistors. Anything else is weak sauce. ;) ;).
- andrewstuart 5y agoI'm surprised there's no product called: "Microsoft Fullstack" or "Google Fullstack" or "Amazon Fullstack" (formerly "Apache Fullstack", now forked and rereleased)
- alasdair_ 5y ago>"Amazon Fullstack" (formerly "Apache Fullstack", now forked and rereleased) Underrated comment of the day here.
- karmakaze 5y agoAll of the above: I interpret "Full Stack" to mean mostly web front-end. It generally doesn't mean mobile or desktop. It does also include back-end development but the trend is to use more off-the-shelf solutions and services so that there's less of it than there used to be. The reduction in back-end coding is taken up with the expectation that the "most commonly used functionality" is now in scope. + what other comments say where they want multiple specialists but are hiring one position for flexibility or cost.
- andrewstuart 5y agoSo HalfStack?
- deleted 5y ago[deleted]
- msarrel 5y agoIt means what marketing teams want it to mean at the time they're saying it.
- zaptheimpaler 5y agoIt mostly means "computers person"/"make me a webapp!" as written by a nontechnical person describing or trying to hire for a technical role. I'd prefer something cooler like "1337 hex wizard h4x0r g0d first of his name" but the HR people like full-stack better.
- OJFord 5y agoI think it's context dependent, so people disagree because they're familiar with different contexts. It's 'can work on all the pieces', but 'pieces' is understood to mean the relevant pieces; so for a webapp that's not hardware, not embedded, but for a smart watch company say it would be.
- deleted 5y ago[deleted]
- text2db 5y agoFull stack simply means that company do not want to hire separate resources for front end and backend , so 1 salary for 2 works.
- tjltjl 5y agoFrom machining parts to working with motors and pneumatics to microcontroller code to high-level code to machine learning algorithms in the cloud. My dream job :)
- mac3n 5y agoi guess it means as much as USB "Full Speed" (1998 USB 1.1 12Mbps)