MVC (Model-View-Controller) is a software architecture pattern that organizes an application into three distinct parts: the data, how it is displayed, and the logic linking the two.
Each part has a specific role:
- the model manages data and business rules (reading and writing to the database, validation)
- the view displays information to the user
- the controller receives user actions, calls on the model and picks the view to return
This separation makes code more readable, easier to test, and allows the interface to change without touching business logic. The principle was born in the 1970s around the Smalltalk language.
It is the structure of many server-side web frameworks: Symfony, Laravel, Ruby on Rails, Spring MVC, or Django in a variant. Modern front-end interfaces have moved away from it toward component-based architectures.
Why it matters when hiring
MVC is part of the fundamentals taught everywhere: knowing it is not a criterion. The useful signal is the ability to explain its limits, for example controllers that grow until they become unreadable, and how to structure an application that has outgrown the pattern. It makes a good interview question for an experienced back-end developer.
