What is a Full Stack Developer?

A full stack developer is a software engineer that is familiar with all the layers in computer software development. These developers have the functional knowledge and ability to take a concept and turn it into a finished product. They understand how everything works from top to bottom and can anticipate problems accordingly.

While each 'end' (front end and back end) involves learning a significant amount of information, a full stack developer can comfortably speak both database and browser. They can work with databases, PHP, HTML, CSS, JavaScript and everything in between.

What does a Full Stack Developer do?

Web development specializations exist for a reason, and the idea of a full stack developer isn't about being an expert in every possible technology there is. It's more about someone with a familiarity and an understanding in each layer, and a genuine interest in all software technology.

It's also about being able to communicate intelligently with team members and to be a helpful asset if the situation requires it. Personal interaction and communication skills are necessary in order to manage and work with front-end developers and back-end developers.

A full stack developer working on his computer.

Full stack developers understand how every part of the web development process takes place and can guide on strategy and best practices. These developers will have an increasingly important role in the web development of the future, and are able to look at the 'big picture'. They are knowledgeable with the server side as well as the client side’s user experience.

A full stack developer has knowledge in all stages of software development, and would be proficient, if not fluent, in:

  • Server, Network, and Hosting Environments - this involves understanding what can break and why; appropriate use of the file system, cloud storage, and network resources; knowing application scale given the hardware constraints; and working side by side with DevOps
  • Data Modeling - this involves knowing how to create a reasonably normalized relational model, complete with foreign keys, indexes, views, lookup tables, etc; being familiar with the concept of non-relational data stores and understanding where they shine over relational data stores
  • Business Logic - having solid object oriented skills
  • API layer / Action Layer / MVC - knowing how the outside world operates against the business logic and data model; using frameworks; being able to write clear, consistent, and simple to use interfaces
  • User Interface - understanding how to create a readable layout; being able to acknowledge the need for help from artists and graphic designers to implement a good visual design; using HTML5 / CSS; using JavaScript (node, backbone, knockout…)
  • User Experience - can step back and look at a process that needs seven clicks and four steps, and get it down to one click; write useful error messages
  • Customer and Business Needs - having a grasp of what is going on when the customer uses the software; having a grasp of the business

To reach this level of qualification, it clearly takes years of work experience in different languages, roles, and industries. Because of this, full stack developers are few and far between, making them very employable and in-demand.

Are you suited to be a full stack developer?

Full stack developers have distinct personalities. They tend to be investigative individuals, which means they’re intellectual, introspective, and inquisitive. They are curious, methodical, rational, analytical, and logical. Some of them are also artistic, meaning they’re creative, intuitive, sensitive, articulate, and expressive.

Does this sound like you? Take our free career test to find out if full stack developer is one of your top career matches.

Take the free test now Learn more about the career test

What is the workplace of a Full Stack Developer like?

A full stack developer may work full or part-time in an office setting, or may choose to conduct business at home. Travel may be involved if one chooses to freelance. Some full stack developers freelance their skills to various organizations, while others choose to outsource their skills to organizations by using their expertise to act as consultants or independent contractors.

Frequently Asked Questions

Which languages do full-stack developers use?

Full-stack developers must use a wide range of programming languages to accomplish their goals; these can be grouped into front-end and back-end languages.

Front-end languages are used to present content and - increasingly - to handle interaction with the program. These languages include HTML - which is used to build web pages, CSS - which is used to style the HTML web pages, and Javascript - which is used to add interactivity to HTML pages.

Back-end languages are typically used to store and manipulate data, manage user permissions, and do all of the complicated calculations required by the program. There are a wide variety of languages that can be classified as back-end, including: Ruby, Python, PHP, Java, Go, and Swift.

While it is possible to create complicated and powerful programs using just these languages, most developers rely on libraries that add additional features to the languages of their choice. Examples of such Javascript libraries include jQuery, React, and Angular. On the back-end, the Ruby on Rails, Django, and Laravel libraries allow for the easy creation of websites using the Ruby, Python, or PHP language. Many of these libraries are so feature-rich and powerful that they require significant amounts of time to master in their own right.

In addition to being comfortable with both front-end and back-end languages, a full-stack developer should also have an understanding of the technology that runs alongside their programs. This includes a rough understanding of the SQL database language and the HTTP communication protocol.

The requirements of a full-stack developer can seem daunting at first, but it is important to remember that it is a "jack of all trades, master of none" profession. A full-stack developer will find themselves using multiple languages on a daily basis, but they will also typically find themselves working alongside dedicated front-end or back-end developers who have a much deeper understanding of their chosen technologies.

In the past few years, a new technology has increased the capabilities of the full-stack developer. Javascript - long considered to be a front-end language - is now being used to power applications on the back-end as well. This change allows full-stack and front-end developers to focus their energy on a smaller set of languages, and a solid understanding of Javascript is becoming increasingly important.

Continue reading

How do full-stack developers stay up to date?

The technology industry moves at a fast pace, and the broad range of technologies used by full-stack developers means that they will need ongoing training.

The first step in staying up to date is understanding which new technologies and frameworks are gaining popularity. The best way to do so is to follow online technology blogs and communities, such as Hacker News or Stack Overflow. Github - the most popular host of open source code - publishes a list of up-and-coming projects.

Once you know what to focus on, the next step is to find good resources to learn from. There is a wealth of online information for languages and libraries, and most of these will have resources and getting started guides on their websites. Youtube is increasingly a good source of tutorials, and most technology conferences upload their talks and occasionally even stream them live on the site.

The most reliable source of training will come from online MOOCs - Massive Open Online Courses. These courses emulate a traditional university course, and in some cases can even lead to certification upon completion. Examples of companies that produce high-quality technical MOOCs include Treehouse and General Assembly.

Continue reading

Full Stack Developers are also known as:
Full Stack Software Engineer Full Stack Engineer Full Stack Web Developer Full Stack Coder