What Is a Full Stack Developer

Is full stack developer a myth today? That's is what David writes in his recent article, Is Full Stack Developer a Myth in 2020. This is what made me write this article to answer the question, what a full stack developer is. Before that, let's understand what a software stack is, how a stack becomes full stack. and what it takes to become a full stack developer. 
 

What is a full stack developer?

 
If you pay any attention to software development, I’m sure you’ve heard of the full stack developer job. A full stack developer is a software developer, web developer, or software engineer who works on all layers of a website or software application. If you search job boards such as Indeed or LinkedIn jobs, you will find more than 10,000 full stack developer jobs.
 
full stack developer salary
 
 
Let us take an example of web development. A typical website or application has three layers broken down based on the expertise level: a front-end, a middleware/middle layer (API or service or library), and a backend layer followed by a data source. Traditionally, software developers and engineers specialize in one layer of it. A front-end developer is good at creating user interfaces and often seen as an expert in creating user experiences.
 
Web full stack
 
 
A backend developer is someone who understands data and the front-end and creates a middleware service or API that is a bridge between the data store and the front-end.
 
Backend data store is usually a database where the data is stored and managed. Database Administrators (DBAs) are responsible for managing databases and data.
 
A full stack developer is a software developer who can build front-end user interfaces (web pages), business logic and algorithms, and also write code that interacts with the database and passes data back and forth between the front end and the data store, and sometimes can also work with databases directly, such as creating queries and procedures.
 

Software Stack

 
Before we delve deep into the full stack developer role, let’s understand what a full stack is.
 
A software stack is a package of software products that allows software developers to build complete software applications. A software stack may or may not include an operating system but they often include front end, backend, database, and service/middle layer technologies.
 
A software stack that provides software to build complete software applications is called full stack. A developer who is proficient in a full stack is called a full-stack developer.
 
Software stacks can be further broken down into web development stacks, front-end stacks, backend stacks, and so on.
 

Web development stacks

 
To keep things simple, let’s just focus on web development stacks, the software stacks that are used to build web applications.
Here is a list of the common web development stacks:
  • MEAN (MongoDB, Express.js, Angular, Node)
  • MERN (MongoDB, Express.js, React, Node)
  • MEVN (MongoDB, Express.js, Vue.js, Node)
  • LAMP (Linux, Apache, MySQL, PHP)
  • WISA (Windows, IIS, SQL Server, ASP.NET)
  • Serverless Stack

MEAN stack

 
MEAN is a web development stack. MEAN is short for MongoDB, Express.js, Angular, and Node. By using the MEAN stack, you can build complete web applications. Let’s review these technologies briefly.
 
MongoDB is a document-based open-source NoSQL database. In MEAN stack, MongoDB is used to store data of the application.
 
ExpressJS is the middleware and sits between Angular and Node as a part of the MEAN stack. ExpressJS is a NodeJS framework for creating server-side applications. ExpressJS provides many shorthand methods for writing the functionality provided by NodeJS.
 
Angular is an open-source, JavaScript-based client-side framework used to build user interfaces of a web application. In MEAN stack, Angular is used to build the front-end. Angular requires understanding of HTML, JavaScript, CSS, and TypeScript.
 
Node or Node.js is an open source, cross platform JavaScript based server-side runtime framework. In MEAN stack, Node is used to write server side code that can have business logic and even data layers and other functionality that runs on a Web server.
 
Here is a detailed article on MEAN stack: What is MEAN stack
 

MERN stack

 
MERN is short for MongoDB, Express.js, React, and Node. Everything in MERN stack is similar to MEAN stack except the Angular front-end framework is replaced by React, a front-end library.
 
React allows developers to create large web applications that can change data without reloading the page. The main purpose of React is to be fast, scalable, and simple. It works only on user interfaces in the application. This corresponds to the view in the MVC template. It can be used with a combination of other JavaScript libraries or frameworks, such as Angular JS in MVC.
 

MEVN stack

 
MEVN is short for MongoDB, Express.js, Vue.js, and Node. Similar to MEAN and MERN, everything stays same except the front-end is developed using Vue.js JavaScript library.
 

LAMP stack

 
LAMP is short for Linux, Apache, MySQL, PHP/Python/PERL. As you may guess, the technologies used in LAMP stack development are a little different than the previous stacks. Here, Linux is the operating system and Apache is the web server where a web application is hosted. The backend database is MySQL and front-end and backend code is developed in PHP, Python, or PERL. Several popular CMS such as WordPress are developed in LAMP stack.
 

WISA stack

 
WISA is short for Windows, IIS, SQL Server, and ASP.NET. This is a Microsoft stack to build Web applications. In WISA stack, Windows Server is the operating system, IIS is the web server, SQL Server is the backend database, and ASP.NET is the application development framework for both front-end and back-end.
 

Serverless stack

 
Serverless stack is a new concept where there is no one server involved in a software stack to build, deploy, and run software applications. It is a cloud stack where data may be stored in different data sources on the cloud, a Web API or web service is used to get data from the data sources, and the application can be all kinds of web, mobile, and other client applications. Cloud native is such an architecture.
 
The demand for serverless stack is growing rapidly. To learn more about cloud native, here is a good detailed article: Are you Cloud Native?
 

What are the expectations of a full stack developer?

 
When a company hires a full stack developer, the company expects that the developer is experienced enough to build an entire stack by himself/herself without needing help from other senior experts.
 
full stack developer qualities
 
 
Here is a list of expectations from a full stack developer. 
  • Work with business stakeholders to understand requirements and propose solutions
  • Build proof of concepts (POCs) and demonstrate to business stakeholders
  • Good at writing business logic and problem solutions
  • Analyze and propose optimal and best available solutions
  • Can work on entire stack of software development including front-end, middleware, and backend
  • Can lead a small team of developers and help them technically
  • Understand software architecture concepts such as design patterns and best practices
  • Hands on with front-end technologies such as JavaScript and HTML
  • Can test and debug issues in code
  • Experienced in DevOps, CI/CD to help and manage build and deployment pipelines
  • For cloud developers, experience in cloud technologies
  • Minimum 5 years of experience in software development
Now, let's put this in perspective. If you want to become a full stack .NET developer, here is good article, Skills Required to Become a Full Stack .NET Web Developer.
 

What is the salary of a full stack developer?

 
According to Salary.com, Indeed, and Glassdoor, the average salary of a full stack developer is about $110k a year in the US. The salary range for a full stack developer in the US is between $80k to $125k a year. The salary of a full stack developer also depends on the number of years of experience, location, and industry. A full stack developer in New York City working in a financial industry may earn 50% more than a full stack developer in Lancaster, PA working in a construction industry.
 

How long does it take to become a full stack developer?

 
Most of the full stack developers are often senior developers and engineers who have been writing code for several years, at least more than 5 years. It doesn’t mean you can’t be a full stack developer in less years but it’s going to take tons of learning. To become a full stack developer, you need to be proficient in all layers of a software stack. Being a full stack developer means, you are by yourself without the help of anyone else, and you can build an entire application from the backend to the front-end.
 

How can I become a full stack developer?

 
Learning. Working, Building software. That is all it takes to become a full stack developer. A full stack developer usually goes through years of learning and working on real projects.
 
Watch here a full video of how to become a full stack developer and how much time it takes to become a full stack developer.
 
 

Summary

 
The full stack developer role is one of the most in-demand jobs in the software development field. A full stack developer is usually a senior developer who works on an entire software stack including front-end UI, middleware business logic, data access, and even backend databases.
 
In this article, we learned what a full stack developer is, what full stack developers do, and what it takes to become a full stack developer.