A full-stack developer is an engineer who is proficient in all layers of application development, including the front-end (user interface), the back-end (server-side logic), and the database. They can build a complete, functional application from start to finish.