Some of us have teams that split up different functions (i.e. front end/back end developers, DBAs) which makes one become more of a specialist on that which they spend the most time on.
Other work set ups entail the person doing it all by themselves, which makes them more of a generalist.
Just because you are working as a generalist doesn't mean you can't reconfigure yourself to become a specialist, and vice versa. It just depends on what you spend most your time on and how you divide up work between your team.
Learn Go / Python and SQL.
Write an app using these technologies.
Congrats, you are a full stack developer.
The best of the so called DevOps have deep understanding of the technology they use (hardware, networking protocols, CDNs, programming language internals, security issues with each language and operating environment choice, etc.). It can be done, and specialization in many things for specific things is a requirement for the very high paying jobs (Python, Java, C, C++, Ruby, etc.).
As the more you know (theory and in practice due to hands on experience over time) the more valuable you are and can make serious waves where ever you choose to work. If you really want to get good at the systems and software engineering sides use your favorite programming language and a new one you have not used to fully automate all of your operations and development deployment tasks.
This will force you to learn a new programming language (at least the core concepts of it) and evaluate it to see if it can help improve things at work. If it can, then you begin to get into the internals of the language and do not forget many of the details as the start to become similar with other languages especially since most are written in C or C++.
The hardcore engineers have the big thick books on their desks and read them from the cover to the back on a regular basis, as we know that understanding things at a deep level is extremely beneficial and financially rewarding. Four years is a short period of time but if your doing heavy engineering then it is possible to master multiple things but you have to have the time to do it which is normally the hard part.