I've seen many definitions of what is a full-stack developer, for me it is basically a developer that dominates all aspects (or stacks) of an application, from databases, to APIs, page rendering by servers, front-end implementation and design. I think this is fearsome for anybody who is in the stage of panic because of the enormous amount of technologies there is out there.
Since my early days of college I was always a good programmer, I had more affinity with C and C++ than with HTML and CSS, now after graduating and starting my first job I'm now a back-end developer using principally Java. In our company we have web designers that makes all the shiny and colorful layouts and we, as back-end developers, give life to their great, but still static pages. It looks a harmonious relationship to me. I've heard that designers and programmers don't get well together, but it has been very good so far, luckily for me.
I do make some adjustments on the front end though, not in the layout, but on the Javascript code, using jQuery most of the time. After seeing and interacting with layouts the entire day, even adding events through jQuery to make it more dynamic, you end up understand the structure really well, although I wouldn't even think about building one from the ground up right now. It is like knowing how to speak a language, but not write, an incomplete knowledge.
Other definitions of a full-stack developer allows more flexibility, you can be more about back end and understand well front end, but not completely. Therefore, can I considere myself a full-stack developer at this stage? For the many job descriptions I've seen so far, I'm definitely not a full-stack developer because of my poor knowledge in front-end. It seems that to be full-stack you need to dominate at least either Angular, or React, or Vue these days, besides CSS, SASS, Bootstrap, etc., to know all about design, implementation, database... Again, it is fearsome...
Isn't it to much burden in an only person? The theory in development that always proved good: divide and conquer, doesn't apply for development jobs? Is it valid at this day and age know one side more deeply, in my case back end, and know the other just enough to understand the designer's job? Or is it the future (or even the present) understand fully all aspects? What's your definition of full-stack? Do you agree with my definition?