TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: What is “full stack” actually?

36 pointsby serverhorrorover 10 years ago
I&#x27;m reading all those &quot;full stack&quot; topics and can&#x27;t help but scratch my head.<p>What does it describe? Is this some common basic term I&#x27;m actually missing?<p>To me full stack would start way down at the hardware design and end just when the computation has finished and (possibly) persisted to disk. A vast field that I can&#x27;t possibly hope to learn in a lifetime.<p>Dear HN please enlighten me

34 comments

IgorPartolaover 10 years ago
I define it in practical terms: can you start from scratch and deliver and maintain a product? This is a term that&#x27;s often used to describe web or mobile development, so in this context I take it as being able to do things like platform setup and maintenance, write a backend, write a front-end, do the design, etc.<p>This term really caught on with people who develop for the web because there actually is a divide here: some people really prefer the front-end work (JS&#x2F;HTML&#x2F;CSS), some people prefer the backend work (sysadmin&#x2F;app logic&#x2F;data stores) and some people prefer both.<p>So basically, if someone says &quot;full stack&quot;, they likely mean that you can develop and run the entire product, not just a part of it.<p>Having said that, I strongly encourage everyone to go deeper. Learn some C. Figure out the difference between a function and a syscall. Understand what the kernel does and how it works (whichever kernel you happen to use). Write a toy libc. Program for a microcontroller (try adding RAM to a microcontroller circuit for added fun). Play some Minecraft. Write a bit of assembly. Create a data store. Develop a JS framework for DOM manipulation. Create a toy programming language. Write a malloc implementation. Write a kernel module (maybe a driver to that microcontroller device you put together). Write a web server. I find that the more of this kind of stuff you do, the more aware you become of what `display: block;` will do and how to structure your code better.
评论 #9033219 未加载
评论 #9033530 未加载
评论 #9036546 未加载
评论 #9033248 未加载
amirmcover 10 years ago
There&#x27;s no fixed definition and I&#x27;ve found that people use it when they&#x27;re asking for &#x27;broad&#x27; skills -- where broad is defined by their own experience (cf. most of the other comments here). For example, most web developers would consider front-end <i>and</i> back-end as &#x27;full-stack&#x27;, whereas an OS&#x2F;systems person might consider knowledge of hardware up through kernels into the application layer as &#x27;full-stack&#x27;.<p>It&#x27;s about as useful as the term &#x27;Ninja&#x27; or &#x27;Rockstar&#x27; in that it&#x27;s used when people can&#x27;t articulate succinctly what they mean (or they don&#x27;t really want to take the time to do so).
评论 #9033023 未加载
notacowardover 10 years ago
1. Start at the top of the stack (nearest to the user, furthest from the hardware).<p>2. Keep learning about lower layers until you get tired or things just don&#x27;t make sense any more.<p>3. Define that as &quot;full stack&quot; and ignore anything still below.<p>For most people the process seems to terminate somewhere around the kernel&#x2F;user boundary, much like someone in a boat who&#x27;s aware of the vast shapes moving below but never gets a clear sighting. IMX a typical &quot;full stack&quot; engineer can manage things like routing tables and logical volumes, understands that context switches and page faults matter, but becomes increasingly unable to explain what they really are to others. By the time you get e.g. to different kinds of cache misses or database&#x2F;compiler internals (even those are still out in user space) forget it.<p>TBH I think most &quot;full stack&quot; engineers are half-stack at best. So am I. Twenty years ago the upper parts of a modern stack didn&#x27;t exist and I could explain pretty much everything in the lower parts from tty to network to disk plus VM&#x2F;schedulers&#x2F;etc. Maybe back then I could have called myself a full stack engineer. With today&#x27;s deeper stack (and my own career progression) I&#x27;m down to about half, somewhere in the middle. I don&#x27;t actually know anyone who&#x27;s truly full stack any more.
FooBarWidgetover 10 years ago
In my opinion &quot;full stack&quot; is what all developers actually should be.<p>15 years ago, it was normal that, as a developer, you know how to administer a server, know how Unix works, know how to setup&#x2F;debug the database. Maybe know a bit of C.<p>Fast forward to 2015. Lots of developers are purely frontend developers and don&#x27;t know how to setup a server, or don&#x27;t know how to administer the database. This is now the norm. The developers who could do all that stuff (as they should) are suddenly &quot;full-stack developers&quot;.
评论 #9032998 未加载
评论 #9033339 未加载
评论 #9035678 未加载
borednbeardedover 10 years ago
When I hear the term &quot;Full Stack&quot; or someone working as a &quot;Full Stack Engineer&quot; all I can think is someone who can hack its way through the full development stack when need be in a multitier architecture. I sometimes joke around that when a company says they need a &quot;Full Stack Engineer&quot;, they mean they want a &quot;Software Architect&quot; without the title,authority and a higher salary.
评论 #9033288 未加载
评论 #9033086 未加载
NDizzleover 10 years ago
I think &quot;full stack&quot; is a modern way to say &quot;generalist&quot;.<p>I have considered myself a generalist for some time, since the early 00s. I can handle all of the normal IT work in an office, in a colocation facility, networking, power delivery, cooling, server purchasing &#x2F; configuration, OS tuning &#x2F; patching &#x2F; securing, database design &#x2F; development &#x2F; optimization, application architecture &#x2F; maintenance, and project management.<p>Typically I work with people at a very early stage and get everything up and going, add in most of the automation layers, and hand over the keys to someone else. Then I do it again on a slightly bigger scale.
rman666over 10 years ago
This refers to a developer who can eat a large, or &quot;full stack&quot; of pancakes.
评论 #9033254 未加载
agentultraover 10 years ago
It should be called, <i>full heap</i> developer. &#x2F;snark<p>It&#x27;s a pretty generic term watered down by its lack of concrete meaning. There are probably going to be a couple of hundred varying opinions and fifty or so disagreements about what it means before this post disappears off of the front page.<p>To me this makes it a meaningless term and one I don&#x27;t feel bad poking fun at. It&#x27;s a term used by managers and start-ups to get more for less from a single developer. We used to call &quot;full-stack&quot; developers, &quot;generalists.&quot; Before that... I don&#x27;t know, &quot;whiz kids?&quot; &quot;Good with computers?&quot; &quot;Geeks?&quot;<p>Many people agree that it means someone who knows how the whole technology stack works from keyboard and screen down to the processor. That used to be just, &quot;programmer,&quot; but I suppose there is quite a bit more going on these days. I have my suspicions that few people actually know, &quot;what&#x27;s going on from keyboard and screen down to processor.&quot; Install just one software package on your machine and try to figure out how many dependencies it has, how many different languages and run-times, and &quot;APIs&quot; it uses. Then there&#x27;s the operating system itself (often in the case of application developers). I think what we&#x27;re really agreeing on is that &quot;full stack developer&quot; is a term for people who are capable of figuring out what broke when things go wrong and have a broad-enough range of experience to fix it.
评论 #9035455 未加载
atmosxover 10 years ago
If you have the knowledge to:<p>1) Write an application backend (e.g. Ruby&#x2F;PHP&#x2F;Python&#x2F;Java&#x2F;ASP&#x2F;JS)<p>2) Created a modern front-end (JS&#x2F;HTML&#x2F;CSS) for this application<p>3) Set up a VPS or go with AWS&#x2F;Heroku&#x2F;Whatever stack to deploy the app which means:<p>3.a) Set up the SQL or NoSQL database(s) 3.b) Set up the CDN for traffic control&#x2F;protection&#x2F;speed 3.c) Deploy a backup strategy 3.d) Write the firewall rules (if this is a VPN) and secure the host...<p>Well then by all means, you&#x27;re a full stack developer. Some badasses use their own VPN to handle email (setting up an SMTPd daemon), write custom firewall rules, setup reverse-proxies (nginx) and use chroot, containers or jails (FreeBSD).<p>It&#x27;s extremely hard to be good at all these, especially as the projects get larger and larger. Usually people are good either at systems administration (which is complicated and hard) or web-programming (which is complicated and hard).<p>Now being average on all of those, might be good for launching a startup-level MVP but I&#x27;m not sure it&#x27;s going to work in the real world. There people who <i>specialise</i> in using specific <i>cloud software</i>, e.g. Amazon AWS ... If you try to work out the documentation and vocabulary it&#x27;s a brand new world. I think Azure and Google might (almost) the same level of complexity for big projects.
vertex-fourover 10 years ago
A full stack web framework might mean a web framework that encompasses an ORM, routing, templating, email, possibly a built-in admin panel, and pretty much everything else that you need to develop a CRUD app. Recently, they might also encompass a front-end toolkit for doing AJAX-y things.<p>A web developer saying they work on the &quot;full stack&quot; means that they both write server-side and client-side code.
jader201over 10 years ago
To me, full stack has always meant vertical coverage, not horizontal coverage.<p>That is, not necessarily experience in multiple web languages, but rather skilled in a particular stack from top (presentation) to bottom (database).<p>I consider myself, and look for jobs that are full-stack development, particularly because I like to work with JavaScript, CSS&#x2F;HTML, server-side code, and database development.
barrkelover 10 years ago
Full stack software engineer, to me, means knowing the full stack of abstractions from Javascript &#x2F; Python &#x2F; Ruby through C to CPU machine code for at least one architecture. Knowing hardware design isn&#x27;t particularly relevant to software outside knowledge of how cache associativity works, cache hierarchy, CPU interrupts, page faults, that kind of thing - the API at the CPU architecture level. If you&#x27;re writing device drivers, you&#x27;ve gone beyond full stack software - you&#x27;ve got to know more about specific hardware.<p>Full stack in practice means knowing where to look on the next layer down when something goes wrong, and having good intuitions about how things behave and how you can expect things to be implemented given what&#x27;s available.<p>Full stack web engineer is less about depth of abstractions and more about breadth; knowing the browser, a back end language, a database, and enough about system administration to put it all together.
javajoshover 10 years ago
I like the &quot;he can make an application on his own&quot; definition, but this masks the juicy part of this question, which is &quot;well, what does that take?&quot; Realize that, these days, you could build an arbitrarily complex program using nothing more than GitHub Pages with a dynamic shared data structure layered on and connected with some javascript, e.g. with Firebase. Personally, I&#x27;d consider that to be a kind of a stack.<p>But yeah, most people don&#x27;t design software like that yet, so they mean server rendered pages, which means a server container of some sort, an application &quot;middleware&quot; process (something like node or PHP or Java), and a database process, all of which allow the user to, from one perspective, &quot;pan and zoom&quot; across some data corpus, and gives them the right to poke that data corpus at a few points.
emilsedghover 10 years ago
He could create a (good enough) [software] product alone.
评论 #9033021 未加载
deweyover 10 years ago
<a href="http://www.laurencegellert.com/2012/08/what-is-a-full-stack-developer/" rel="nofollow">http:&#x2F;&#x2F;www.laurencegellert.com&#x2F;2012&#x2F;08&#x2F;what-is-a-full-stack-...</a><p>tl;dr Someone who&#x27;s familiar with<p>- Hosting &#x2F; Server environment (SysOp things)<p>- Application development (Front &#x2F; Backend)
beenpoorover 10 years ago
Full stack = Frontend + Backend Frontend = Think Consumer. He&#x27;s the one that uses the backend, typically via browser. In the browser world, you have HTML + CSS + Javascript (add stuff like MVC framework, JS library etc). All these interact with backend to query or persist data on the backend Backend - Think producer. Typically these are your servers. Bunch of those actually. You will have servers to simple serve the HTML&#x2F;CSS and other assets as well as database to persist data. They can be built on a language of your choice - but these days Javascript since you can write both frontend and backend in the same language.<p>I think the simplest way to think fullstack is to think of an end-to-end experience and list all the components.
jdmoreiraover 10 years ago
I&#x27;m an iOS Developer. For me going full stack looks like this...<p>* Develop the app. Let&#x27;s say, swift + cocoa touch (front-end)<p>* Developing the backend services. Let&#x27;s say, Django REST Framework (back-end)<p>* Setup and manage the PaaS. Let&#x27;s say, Google App Engine or Heroku (infrastructure)
fit2ruleover 10 years ago
Full Stack in the modern context has been re-defined from what it used to be - its now more referred to in the context of web software development.<p>But in the 80&#x27;s and 90&#x27;s, it used to refer to someone who could handle development at any level of a stack of OS&#x2F;Framework&#x2F;API&#x27;s - from either building their own new API&#x2F;Framework, to using it, to using others, and so on. A Full-Stack Linux developer wouldn&#x27;t have any problems busting out the kernel sources to add features&#x2F;fix&#x2F;debug, compiling libraries (add&#x2F;fix&#x2F;debug), building user-space apps (dev&#x2F;fix&#x2F;debug), etc.<p>But these days you mostly only hear it in relation with web technologies.
评论 #9035849 未加载
aetover 10 years ago
An old school example of &quot;full stack&quot; is LAMP: Linux&#x2F;Apache&#x2F;MySQL&#x2F;PHP<p><a href="http://en.wikipedia.org/wiki/LAMP_(software_bundle)" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;LAMP_(software_bundle)</a>
评论 #9033056 未加载
awjrover 10 years ago
I call myself &#x27;full stack&#x27;. 1) DevOps (provisioning, load balancing, infrastructure design, code deployment, db backup strategies) 2) Backend Dev (primarily APIs these days) 3) Frontend (primarily AngularJS) 4) Database Administration 5) Internet of Things IoT setup, design and deployment. 6) Language agnostic. 7) System Architect<p>What I don&#x27;t do is draw pretty pictures. Don&#x27;t mind UI design but the moment we start discussing changing the look and feel and PSDs you get somebody else cheaper in to do that.
Xeoncrossover 10 years ago
A full stack developer starts out as a kid that is too poor to pay someone else to do the parts of an application they don&#x27;t understand.<p>So they learn databases, linux, Photoshop (wait, if poor; then GIMP), Javascript, PHRUBYPY, and $100 of free adwords credits.<p>These poor, full-stack developers try writing their own legal terms, finding the best examples of good UI to copy, and setting up social media accounts for their projects.<p>They also have a friend that is good with Canon&#x2F;RED cameras and can help record a promo video.
评论 #9033410 未加载
bulte-rsover 10 years ago
As far as I know, &quot;Full Stack&quot; is a misused term for developers who are able to do everything from devops to front-end development&#x2F;ui&#x2F;ux design.
评论 #9032980 未加载
评论 #9033017 未加载
jhildingsover 10 years ago
I would guess it mostly have to do with understanding the complete flow and parts of a web service or page. From the HTML&#x2F;CSS in the front end, javascript somewhere in between and then how the backend language&#x2F;API talks with the database.<p>Then how to configure&#x2F;update&#x2F;trouble shoot the web server and related issues like database performance and mail server errors
scotty79over 10 years ago
You are full stack basically if given a computer and access to server you can build and deploy custom webapp in reasonable time.
bryanlarsenover 10 years ago
I once ported Linux &amp; U-boot to a proprietary ASIC, and then set up the rest of the stack, including writing my own &quot;database&quot; as a kernel driver, installing an embedded HTTP server, giving it an HTTP API and AJAX web pages.<p>Full-stack can mean whatever you want it to mean. Often it just means you&#x27;re old.
AdrianRossouwover 10 years ago
This was my take on it : <a href="http://daemon.co.za/2014/04/what-does-full-stack-mean" rel="nofollow">http:&#x2F;&#x2F;daemon.co.za&#x2F;2014&#x2F;04&#x2F;what-does-full-stack-mean</a><p>The term is very difficult to define, because you keep on getting different answers for what the stack actually is.<p>It&#x27;s really a question of scope.
Dorian-Marieover 10 years ago
Most of the time it means backend and frontend programming skills (eg: JS for frontend and Ruby for backend).
joshcrewsover 10 years ago
In my context, Ruby in Nashville, full-stack has meant you can do front-end html&#x2F;css&#x2F;js, backend application code AND the hosting&#x2F;deployment&#x2F;linux systems administration stuff too.
psanikoover 10 years ago
It does not neccessarily imply mastery in all layers of the stack but rather familiarity and often the skills to understand and fix bugs in other areas other than your field of expertise.
Thaxllover 10 years ago
Full stack means you&#x27;re average at frontend and backend.
rvalueover 10 years ago
For me, A full stack developer is some one who has knowledge of ML, Web Design w&#x2F; UX, Application Development for web and mobile, Databases and Big Data
ameliusover 10 years ago
&quot;Full-stack&quot; actually sounds to me like a stack overflow waiting to happen :)
dublinclontarfover 10 years ago
HTML to SQL and all needed in between.
评论 #9033097 未加载
baccheionover 10 years ago
Being a Full-stack Engineer means you have an understanding and can demonstrate competence at all levels of the stack (database&#x2F;server administration, backend, frontend, architecture, design, marketing, product&#x2F;user&#x2F;business sense, and processing), not just one specific layer. When it comes to web or app development, being full stack means you can set up the web servers and database servers, administer those servers, design the information schema, write backend logic for the application (low-level code, middleware, and AI), write frontend logic, write client-side code, design the application&#x27;s interface, conduct A&#x2F;B user testing and get user feedback, optimize for search engines, set up internet marketing campaigns, and piece everything together. Essentially, a Full-stack Engineer can single-handedly create and market an application.<p>Full stack knowledge is typically needed and appreciated during the early stages of a startup, but larger companies dislike people with such broad-ranging knowledge and do everything to limit them, box them in, and prevent them from being hired. The typical excuse is that it&#x27;s not possible to have knowledge that broad and still have strong depth of understanding in each area, but this is absolute garbage. Most idiots in middle management don&#x27;t like Engineers like these because they&#x27;ll become too dependent on them (middle management is obsessed with being able to see everyone as expendable, something that is not usually the case with a Full-stack Engineer). Also, a legitimate Full-stack Engineer is rare and special (even though 10-15+ years ago it was the norm to be this way), and management doesn&#x27;t like people that are special.<p>By the way, while many job postings state they are seeking Full-stack Engineers, the term is usually just an empty buzzword used by management to lure in someone that knows Javascript. They don&#x27;t believe there is such a thing as a Full-stack Engineer and think anyone claiming themselves to be one is full of it. So, while it&#x27;s important for many companies (startups, especially) to have people with this skill set, they&#x27;re still playing the same game of hiring in those that are expendable (no, &quot;specialized&quot;), mediocre (can&#x27;t handle anyone that&#x27;s skilled), and compliant (can&#x27;t handle anyone challenging their authority).<p>I&#x27;m a Full-stack Engineer (if I&#x27;m not, then that&#x27;s where I want to be), so I&#x27;ll share my skill set as an example of what a Full-stack Engineer would know: - Hardware: VHDL, circuit board design - Backend: Python, Go, Java, Lua, C&#x2F;C++, PBASIC, SQL - Frontend: Javascript, HTML, CSS - Machine learning knowledge - Able to set up and maintain servers - Can create wireframes and design a user interface - Can set up A&#x2F;B tests and analyze user feedback - Can create and optimize internet marketing campaigns (most people don&#x27;t realize this is almost 100% an engineering and optimization problem) - Good business and user sense