A full-stack developer understands the entire software stack, from the GUI front end to the database back end. However, not everyone agrees on the level of mastery needed to earn the title Credit: SIphotography / Getty Images A full-stack developer is a jack of all trades and a highly sought-after job candidate. The title implies a breadth of knowledge that can be invaluable to short-staffed startups and big companies managing complex apps alike. However, the term “full-stack developer” is controversial among developers. Some disparage the idea that anyone could be equally competent across an entire software stack, while others believe that the term has been so overused by employees and employers that it has become somewhat meaningless. Defined: What is a full-stack developer? A full-stack developer is someone who is competent to deal with the technologies behind the entire application stack—that is, the different layers of technologies that make up a modern application. The term is meant to contrast with developers who focus exclusively on an application’s front end (the UI, usually a website or mobile app) or exclusively on the back end (the business logic that drives the application and the database where the information the application needs is stored). In theory, a full-stack developer would be as comfortable with the JavaScript code running in the user’s browser as they would be with the MySQL queries that get the information the user wants from a database. Of course, this calls for mastery of a lot of technologies, a skill so rare that people use the phrase “unicorn” to describe practitioners. In a long and influential diatribe, developer Andy Shora made the claim that these true full-stack developers are a myth—that everyone has more mastery of some aspects of the stack than others, but that the existence of term “full-stack developer” encourages people to overstate some of their skills. “The basics of the languages/frameworks we learn today can often be picked up in a matter of hours,” he says. “The problem is, I feel the difference between knowing something in web development and truly mastering it is now becoming an increasingly blurred line.” (Shora identifies himself specifically as a front-end developer.) Even if you can’t achieve total mastery across the stack, there is value in being comfortable with all the parts of an application. Codeup, which bills itself as a full stack coding bootcamp, offers what it calls a ”realistic” definition: “A full-stack developer is simply someone who is familiar with all layers in computer software development. These developers aren’t experts at everything; they simply have a functional knowledge and ability to take a concept and turn it into a finished product. Such gurus make building software much easier as they understand how everything works from top to bottom and can anticipate problems accordingly.” In other words, even if you spend most of your time working on an application’s back-end, you know enough about front-end development to be able to work well with those teams and see the big picture for the whole project. Web Designer Depot offers a take that similarly emphasizes a holistic vision rather than total mastery: “A full-stack developer … understands and has at least the basic skills to develop a product from start to finish.” Shora points out that short-staffed startups in particular are keen to get these kinds of generalists on staff. The term “full stack development” first arose in the early Web 2.0 era, as static web pages gave way to AJAX-powered dynamic ones. As Shora points out, the idea of full stack development was much simpler back when the typical software stacks were less complex, as in the 2000s when the four-layer LAMP (Linux, Apache, MySQL, Perl/PHP) was king. Today, full stack development involves more complex coding throughout the stack, with multiple choices for technologies and frameworks at each layer. Some shops will try to use a single technology throughout the stack as much as possible to make full stack development easier. For instance, thanks to Node.js bringing JavaScript to the server side, you can now be called a full stack JavaScript developer, and a quick walk through the job boards shows instances where other tech is used, like Microsoft’s .Net. Nevertheless, in most cases full stack development involves juggling multiple platforms and technologies. How to become a full-stack developer The simplest answer, then, of how to become a full-stack developer is to gain familiarity with a wide range of technologies. There are a variety of sources that will give you advice on the subject, from Web Designer Depot to, well, InfoWorld, but this guide from Coderbyte is fairly exhaustive, and covers: HTML/CSS JavaScript Back-end languages/frameworks (such as Node.js, Python, Ruby, and Java) Databases and web storage (such as MySQL/MariaDB, and MongoDB) Web application architecture Beyond these specific technologies, you should familiarize yourself with Git, the omnipresent version-control system, and basic algorithms and data structures of the sort taught in computer science classes. And if you want some info on some specific cutting edge tech that should be on your radar today, check out this list of libraries from software developer Andrei Neagoie. Full-stack developer courses This is, of course, a lot to chew on! And there are plenty of online courses that purport to give you at least the basics, including: Lynda Udacity Coursera Thinkful General Assembly There are also a number of boot camps that provide more in-depth, in-person (and expensive) education. Fullstack Academy has the golden name (though keep in mind it focuses on full stack JavaScript development); there’s a good comparison of various options at Course Report. Full-stack developer interview questions You can find several templates of typical interview questions for full-stack developers online, from job boards like Betterteam and training firms like Digital Vidya. Most are tailored to help HR make hiring decisions, rather than to help candidates study up, but some interesting patterns emerge, and some of the questions give you a sense of what your day-to-day life as a full-stack developer would be like. You need to have good answers about how you learn, for instance, because you can’t possibly know everything you’ll need to know for the job now, and employers want to know if you’re a quick study. You also want to talk about your teamwork and soft skills, because part of a full-stack developer’s tasks involves coordinating across teams, just as the developer contributes to different parts of the application. It’s not all touchy-feely stuff, though. You also have to jump through the usual computer-science hoops that technical interviews entail. Full-stack developer jobs This is a lot of hue and cry over a single job title, but there’s a reason for that: According to an analysis by compensation specialist PayScale, full-stack developer was literally the fastest growing job category in the United States in 2018. There is a hunger out there for job candidates, so plan accordingly. One thing that you may wonder about in your job hunt is the difference between a full-stack developer vs. a software engineer. There’s a particularly evocative comment on a Reddit career advice thread that considers a “developer” to be more like a general contractor—practical, more involved in the nitty gritty—while an “engineer” is like a civil engineer—more involved in theory and high-level concerns. But the truth is that “software engineer” is often used to mean “a developer who seems smart who we’ve promoted,” and there are plenty of jobs that have the “full stack software engineer” title that aren’t qualitatively different from full-stack developer jobs. Full-stack developer salary Estimating salaries isn’t an exact science, but the consensus is that full-stack developers pull down a decent wage. Engine Yard pegs the starting salary for full-stack developers at $97,000, and that can go up in expensive markets like the San Francisco Bay Area. Tech Republic estimates the average base salary of a full-stack developer at $111,640, and notes that the number of job ads looking for full-stack developers has tripled since 2014. So if the description in this article has intrigued you about this job, there’s good news: You can make a pretty good living at it. Related content opinion Developers don’t belong on an assembly line Software is a product unlike any other. Forcing developers to track the time on tasks of indeterminate duration has many downsides — and no upsides. By Nick Hodges Oct 30, 2024 6 mins Developer Careers Software Development feature AI is transforming the developer experience. Embrace the change By giving developers the freedom to explore AI, organizations can remodel the developer role and equip their teams for the future. By Andre Bechtold Oct 29, 2024 6 mins Developer Generative AI Artificial Intelligence analysis AI stagnation: The gap between AI investment and AI adoption Despite soaring investments in artificial intelligence, the shortage of AI skills is stifling enterprise implementations. By David Linthicum Oct 18, 2024 5 mins Software Deployment Artificial Intelligence Careers opinion The worst programmer I know You may have heard it said that ‘All code is legacy code.’ It’s a useful guiding principle — and truer than we want to admit. By Nick Hodges Oct 01, 2024 6 mins Developer Careers Software Development Resources Videos