This is part of our hiring checklist series, where we share insights to help you screen developers. You can find our other checklists here:
- Assessing Junior vs. Senior Developers
- Assessing Data Analysts vs. Data Scientists vs. Data Engineers
- Assessing DevOps Talent
- Assessing Back-End Developers
- Assessing Front-End Developers
Full-stack developers are the ultimate jack of all trades; they're developers that can, in theory, work across the front and back-end to create a minimum viable product (MVP) without any additional support.
They're a hot topic in tech—and a controversial one, at that. Though a whopping 24% of developers call themselves Full-Stack Developers (according to our 2018 Developer Skills Report), the tech community disagrees on what, exactly, full-stack means.
You can get a quick taste of the controversy here. And if you’re interested in learning more about the ongoing debate, bookmark this piece for later. It’s a loaded term, so it’s worth understanding the backstory before jumping into the hiring process.
Otherwise, for the purpose of this checklist, we’ll be focusing on the closest consensus definition of the role, based on a literature review of the top 5 most referenced definitions available online:
“Full stack development is a methodology which addresses all stack layers and in doing so creates a complete, implementable solution to business requirements. Full stack developers have broad experience among all stack layers and expertise in a few layers. They should be able to render a minimum viable product in a given stack.” – Shropshire et al., 2018
Within this definition, a Full-Stack Developer should have working knowledge (or better) of all layers of a stack, including front-end technologies, back-end technologies, databases, and DevOps:
Note: each company (and even project) utilizes its own preferred stack of technologies, depending on the demands of the project. If you’re looking to deep dive into the tech your company utilizes, check to see if they’re on StackShare.
With all that in mind, here’s what to look for when assessing a Full-Stack Developer:
- Self-sufficient: capable of designing, implementing, and building an MVP (minimum viable product) independently, if necessary
- Stack match for your team: comfortable with your tech stack, with expertise in the layers your team needs most
- Comfortable thinking at a high technical level: understands how all components of the codebase work together, and how to best build around its needs
- Understands tech beyond their stack of expertise: can advise on what stack is most effective to utilize on a project, even if it’s not in their repertoire
- Drives best practices: leverages knowledge from both ecosystems of the codebase (front-end and back-end) to promote best practices within a product’s tech stack
- Synced on methodology: Comfortable with your team’s development style of choice (e.g. agile, waterfall, and so on)
- Good mentor: Can leverage wide breadth of technical knowledge to help subteams (e.g. front-end and back-end) create more cohesive work
- Strong technical communication skills: able to effectively communicate with front-end, back-end, and DevOps
- Team player: collaborates effectively with a variety technical stakeholders
- Humble: willing to learn from and listen to input from their teammates, especially those with different specialties
- Lifelong learner: dedicated to staying up to date on new technologies through continual self-education
- Problem-solver: Comfortable digging deep to solve issues with little to no help
- Self-starting: Track record of managing their own workload and identifying problems to work on
- Global thinker: Capable of understanding the goals of a given project, and how users will utilize it
- Agnostic and objective: knows that the best solution revolves around what the project needs, not what they’ve done before
- Strong product owner: passionate about the feature or product they’re building from both an engineering and end user perspective
Determine what “full-stack” means to your team
The term “full-stack” has a multitude of meanings, depending on whom you ask. If your team decides they’d like to bring on a Full-Stack Developer, it’s likely they want someone with full-stack knowledge, but a focus on either front or back-end technologies. You’ll rarely find someone that’s an expert in every layer of the stack: make sure you understand what your team is prioritizing.