Elevate your skills in 2024: learn about System Design
Episode #12: New Year's Resolutions for Software Engineers: improve your System Design skills, learn about Cloud Services and Distributed Systems concepts.
New Year's Resolution for Software Engineers
The new year is behind the door, so this is definitively the best time to think about New Year's resolutions.
I'm not talking about running a marathon or ascending Mount Everest.
I'm a Software Engineer, after all, my body is not built for those kinds of challenges. I made peace with that. 😊
I'm talking about what sort of skills you should pick up in the new year so that you can get an edge over your colleagues, maybe go for a promotion, or at least survive one of the many tech layoffs that are plaguing our industry lately.
I think you should at least learn the basics of System Design.
You don't need to be an expert but at least you should know the basics very well.
It is like Pareto's principle all over again, 80% of the results come from 20% of the effort.
Beyond the basics
You see there is a lot of material out there for beginners.
Everyone seems to be reinstating the same concepts over and over.
That's great if you are just starting, but what to do if you have already mastered the basics?
I can see quite a few more problems with those tutorials for beginners:
they explain only the basic concepts without putting them in context
or they might explain how a specific company has improved a certain use case without mentioning that pattern is used in a lot of other use cases
or they might just cover enough for the system design interview and nothing else
Once you mastered the basics (like what a Load Balancer is or what is horizontal scaling), you might want to put them in context by learning how cloud providers have implemented their services and how you can benefit from those without having to reinvent the wheel.
Have you mastered those skills as well?
Why don't you learn some advanced distributed system concepts (like bloom filters) that might be useful in your next technical interview or to solve a particularly challenging problem?
My New Year’s resolution
So here is my resolution for next year.
I'm going to teach you the basics of System design from the very ground up.
With every article, I am also going to link to more advanced concepts, cover the why of certain choices, put all of it in context with actual implementation by cloud providers, and help you survive in this jungle of hosted services.
There is a lot to cover and I'll definitively have to go deeper in some of those concepts myself, but I am up to the challenge.
From to time, I might post a review of an article that I read from other authors.
I'm sorry in advance if I might sound very critical or offend someone, but I am only doing this for the benefit of their readers and mine. So that we have a discussion and learn from each other mistakes.
Want to connect?
👉 Follow me on LinkedIn and Twitter.
If you need 1-1 mentoring sessions, feel free to check my Mentorcruise profile.
System Design has always been one of those "I have got to get better at this" but never found the time. I'm looking forward to this.