Full-Stackism and Being a Well-Rounded Developer
Full-stackism is one of the best ways to become a well-rounded developer
I don't think I intentionally moved into being a full-stack developer.
I always had a back-end focus, in large part because I struggle with design and beautification and art and... well, making things look pretty. Just take a look at my blog and the GrabbrApp front page for proof of that...
I moved to full-stack in part out of necessity. My first couple of dev positions were essentially solo hacker dev positions, meaning I was the only person working on a very hack-y, proof-of-concept type project. There wasn't much polish necessary, the design could be ugly and it just had to work. That sounds great, but it meant that I no longer really had an excuse to develop backend-only CLI programs... I needed to learn at least a little front-end.
So learn I did. I cracked into React with some great Udemy coursework and became... passable. I could create ugly UI's with horrible UX, which at the time was enough. Then I moved into more formal full-stack roles, and things started to change. The stakeholders wanted some polish. They weren't asking for incredible design, just something that didn't punish the eyes. They wanted better UX and solid functionality.
This pushed me in a really positive way. Being a full-stack dev means you have to think about most of the aspects of a project, most of the time. If you have a function that is asynchronous and may take a second to run on the back end, you need a loading spinner on the front end or some way to reflect that things are running. If you have a pricing page on the front end with a cheap monthly deal, you have to make sure that deal is present on the back end so you don't end up scamming your customer.
Fast forward to now. Now I'm working as a full-stack dev in the cyber security space full-time. Now, I'm working on my weaknesses: dev-ops, real design, serverless microservices and databases. I'm working on GrabbrApp on my own as a (very) full-stack development project.
I won't lie, this is hard.
You lose the ability to blame "the other side" when you're a full-stack dev. Excuses like "well the front-end team didn't mention that they wanted that functionality" or "well what's the point in designing the dashboard if the backend team is just dragging their feat on developing the features" disappear like smoke in the wind when you are the front and back-end team.
That said, it's also incredibly rewarding.
You get a full understanding of the entire guts of your project. You can go from TypeScript page to button to API endpoint to Lambda to database query and all the way back. I thoroughly enjoy it, and I genuinely think that front and back-end developers alike can benefit a ton from doing at least a little bit of full-stack work. Learn how the other side of the coin works and you'll gain a lot of value.