Everybody is hiring full-stack engineers! Startups and big corporations throw big salaries for hiring such profiles. But let me tell you why you shouldn't contribute to that trend.
In the beginning, the label full-stack was coming with another precision: which stack? Nowadays, we just consider a full-stack having the mastery of front-end and back-end. But there is no one stack.
Back-end systems are composed of plenty of micro-services and integrations of different sorts. A front-end can be a website, a mobile app, a smartwatch app, etc. There are also dedicated stacks for Analytics and QA. So which stack are we talking about?
This is for a simple reason: time.
While you should always learn and improve, you can't overpromise. You are an important actor in the risks' evaluation! Put your overconfidence aside, and ask yourself: "Am I alright if I am wrong?"
In the past, being a full-stack meant working with HTML/CSS/JS on a LAMP (Linux, Apache, MySQL, PHP) stack. And use FTP to update your site.
Today full-stack means having the mastery of HTML, CSS, JS, SASS, React, NPM, Shell, Docker, Python, Linux, MySQL, Redis, AWS S3, AWS EKS, AWS EC2, Google Analytics, Selenium, Git, Travis CI, Kubernetes, etc.
There are many and many. And that makes our job more complicated than ever.
So in the end, what should you be? My answer is a software engineer. He/she is versatile by definition. Also, as a software engineer, you won't be trapped in any role and be able to grow your skills in the directions you want.