The term full-stack developer is somewhat controversial in the tech community, while many dispute the existence of such a nomenclature, many do. Full stack comes from the English of "full stack" or better "all layers", then first we need to understand that this term has adapted its meaning. I remember when I started working with technology over 10 years ago, many used this definition for people who understood all layers of web development, including frontend, backend and infrastructure/database. Currently, when someone refers to a full stack, he is probably referring to a developer who works in two layers: Frontend and Backend.
There is a joke to refer to a full stack developer as the duck developer. Because the duck swims, walks and flies, but does not do any right. I think it's possible for a developer to be good at everything he does, but for sure the vast majority who call themselves full stack aren't. If you look at my blog or even my linkedin, you will see that I use the term full stack, although I don't like it very much, it's more because the term is used by people and recruiters when they find you. At the end of the article I'll talk a little more about why I don't think this term is the ideal one to use today.
Understanding Layers
A web application has layers of technology, summarizing we can list two main ones: Frontend (Client Side / Client Side) ; Backend (Server Side / Server Side) ;
The full stack developer currently has to be able to work in these two layers, be able to develop the business rule in the backend and develop the front. So if the developer can program in PHP, which is a backend language and knows how to build a basic structure in HTML/CSS/Javascript, theoretically he can already call himself full stack.
Pato Developer Controversy
These days I think it's very generic and maybe a little superb to call yourself full stack, all the layers have evolved too much and today you have internal divisions in frontend and backend. Formerly frontend was who knew how to work with HTML, CSS and Javascript, today we find frontend developers who only know Javascript, or only HTML and CSS. This specialization came thanks to advances in front frameworks, which became complex structures due to user demand for more interactive interfaces and better usability. The same scenario applies for backend and even infrastructure. In my view, we cannot consider the term full stack developer completely correct because, after all, all stacks should be included: We have the cloud environment (GCP, AWS, Azure), infrastructure (Linux, Windows), mobile (iOS, Android, Hybrids), and so on… So if all these layers are part of the application, the full stack developer, theoretically, should know how to move even a little in all of them. The stack grew too much, got too deep, and that's why I think it's unlikely these days to have a really 100% full stack developer. This is my position regarding the theory behind the nomenclature (so what?). The discussion is long but it's not worth wasting time, just understand that when someone refers to a full stack, he is probably referring to front and back. I don't judge who uses the term, as I explained at the beginning of the article, I still use it for reference reasons, and at the end of the day it doesn't matter, after all, in the IT world everyone can become an engineer.