Understanding & Hiring Full Stack Developers

What is a Full-Stack Developer?

A full-stack developer works on both the front end and back end of a website or application.

What skills are required to be a Full-Stack Developer?

Like their name implies, a full-stack engineer will be comfortable with a wide range of technologies. On the front end, full-stack developers will be comfortable with HTML, CSS, and JavaScript. On the back end, many will work in a primary programming language like Ruby, PHP, or Python. Most full stack engineers will be comfortable with at least a couple of programming languages and will be able to pick up new ones, if needed.

What is the role of a Full-Stack Developer?

A full-stack developer usually builds and supports a web application. Often a team will choose to hire full-stack developers instead of splitting the job between separate front end and back end developers in order to move quickly and allow for more flexibility. Many software features require changes to multiple parts of the application. A full-stack developer will be able to make all those changes themselves rather than needing to take on the extra overhead of splitting the work between multiple developers. For some companies, there may not always be the same amount of front end work as back end work, so having full-stack developers that can move between different areas can be helpful. Not all full-stack developers will always be generalists. Often, they'll focus more in some particular area.

As a company grows, it eventually becomes impractical for every engineer to understand large parts of the application and a lot more specialization is needed. It’s common to see small to medium sized companies with more full-stack developer roles than larger companies.

Full-Stack Developer archetypes

API-Focused Full-Stack Engineer

Archetype

This is a full-stack web engineer who focus mostly on building APIs and back-end business logic. They step in and do front-end work when needed (in order to own a feature). But their strength is on the server side. They are strong in multiple back-end languages and have experience with databases and schema design.

CS-Focused Full-Stack Engineer

Archetype

This is a full-stack web engineer with strong CS fundamentals. They are comfortable doing complexity analysis and reasoning about binary heap data structures. They enjoy solving mathy programming problems. Their experience is in full-stack engineering (and they want to work in this area). However, what stands out about them is their skill solving hard programming problems.

Productivity-Focused Full-Stack Engineer

Archetype

This is a full-stack web engineer whose most notable characteristic is their productivity. They do both front-end and back-end work (and can own a feature from end to end). But what really stands out about them is their high level of productivity. They are a move fast and break things programmer.

Product-Focused Full-Stack Engineer

Archetype

This is a full-stack web engineer who focus on building user-facing products. They are comfortable with databases, and step in and do back-end work as needed to own a feature from end to end. However, they tend to focus more on the front-end, building user-facing products. They are strong in JavaScript.

Browse all engineers