What does the term “full-stack programmer” mean? What are the defining traits of a full-stack programmer?

What does the term “full-stack programmer” mean? What are the defining traits of a full-stack programmer?

A full stack developer is capable of performing tasks at any level of the technical stack in which they reside. It means:

  • Working with systems infrastructure (knowing what hardware to ask for , what OS to install, how to prepare the system and dependencies for all software)
  • Understanding, creating, manipulating, and querying databases
  • API / back-end code in one or more languages, e.g. Ruby, Java, Python, etc.
  • Front-end code in one or more languages, e.g. HTML, JavaScript, Java, etc.
  • Project management / client work, e.g. gathering requirements, creating technical specifications and architecture documents, creating good documentation, managing a project timeline (e.g., someone who knows Agile/SCRUM/Kanban)

In general a full-stack developer has knowledge that is a mile wide, but not necessarily very deep, and has core competencies in the pieces of the stack in which they work most.
In my work I have core competencies in Linux (Debian, CentOS, Amazon Linux), Database design, manipulation, and query (PSQL and MySQL), back-end technologies (Java, Ruby, and Python), and some front-end design (HTML, vanilla JavaScript, and jQuery), as well as act as SCRUM-master and lead Agile development for my team, interfacing with clients both internal and external to the business to gather requirements, execute tasks, and document all efforts.

Typically these skills are developed over many years in the contexts of different jobs, so as Ian mentioned being a full-stack developer means being pushed outside of your comfort zone to constantly learn new skills.



Leave a Reply