Hi Alex/Rahul!
I know y'all have mentioned DSA is somewhat of a parasitic activity, so do you recommend creating side projects to level-up after work / studying system design instead of DSA? I am asking in case I get let go again or if I am looking for a new position after this one. I basically want to future-proof myself.
Also, how do I excel in my current position as a mid-level web developer, while having these things in mind? Thanks in advance!
At the junior to mid-level range, the best way to future proof yourself for work is to write more code at work.
Work code is the code that's most reflective of what code you write within most of your hours spent as a software engineer. Someone is measuring the effect of your work code: if your code is "better" than your peers (by speed, quality, impact, or all of the above), you will be rewarded more (more money, less likelihood of being cut). The more code you write, the faster you will hit the inflection point where you don't need to write as much code to understand how the world around you work. The less code you need to write to provide value, the more time you can spend on higher-level behaviors that will further future proof your career (evaluating business constraints, leading without authority, xfn communication).
Side projects and system design will help you learn and grow more as a software engineer, but lack the nuances of business constraints that shape and influences our decisions as engineers. To reference Harry Potter in book 5: there's a difference between reading about the Defence Against the Dark Arts and having Lord Voldemort throwing Unforgivable Curses at your general direction. One of things is theoretically happening in real life in a controlled enviroment, and the other is actually real life with tight constraints around the decisions you make.
Garry Tan says it really well here: https://twitter.com/garrytan/status/1784801740568801483
A lot of people with CS degrees can't actually build anything
But the world will unfold for you if you not only prove you can build, but that you build for fun
So my recommendation is to do side projects. Here's how to do that: [Masterclass] How To Build And Grow Tech Products To 500k+ Users For Free
I also like Jonathan's perspective: getting stellar reviews at work is the ideal way to future-proof yourself. If you can build stuff in the corporate bubble without the red tape that slows you down, build extra tools for your company!