(Photo is from this great blog: https://rubygarage.org/blog/technology-stack-for-web-development)
A generalist, not a specialist.
A developer who knows at least one technology for every layer of the development stack required to solve a problem. So in short it’s a person who knows at least one path to creating a complete solution.
What is a development stack?
Traditionally we divide a problem into three layers; top to bottom they are Presentation, Logic, and Data layers respectively.
Presentation/View
—
Logic/Controller
—
Data/Model
This fits nicely with Client/Server architecture where typically the client is the presentation layer, the server is the logic layer, and a relational database is the data layer.
In web development we further divide the front end client into three parts. Arguably HTML content is the data, CSS formatting is the presentation, JavaScript manipulation is the logic.
The back end web server is similarly divided into the web server for presentation, the dynamic language for logic, and a relation (SQL) database for the data layer.
In this way common web architecture is like a fractal.
Even something as atomic as a checkbox component on a web page has all three layers. What it looks like (check or unchecked), the true or false state it represents is the data model, and the interactions that can change its state are the control logic.