System design is something that really starts to apply as you scale software. It's an esoteric skill as its hard to practise on your own, scale requires coordinated teams with specific complementary skillsets.
It is also one of the skills that is defined by experience and as a Senior Software Engineer you may not be a “Solution Architect” or an expert in Systems Design but you should have some knowledge of where your code touches on infrastructure components and how the whole end to end solution fits together. Fundamental Sys D concepts you should already have down and be able to guide less experienced colleagues in your area.
But if you need to upskill, or if you’re managing people, budgets, and deliverables and need to keep up to date.. how do you do this?
Well, luckily there are some good resources out there to learn, or practise if you’re not close to the detail day to day and need to revisit it.
This is a list of resources which some of the teams I have worked with have used. What is appropriate for you will vary depending on your context.
I hope this list is useful.
Sys Design Newsletters
Neo Kim
With nearly 100,000 subs Neo Kim has cornered the market for sys design and architecture. It is worth subscribing he has a lot of good examples to share and fundamental concepts to reinforce.
Bytebytego
Useful content which supports their training offering.
https://blog.bytebytego.com/?utm_source=site
Online courses
Design Gurus
Both the sys design and advanced sys design courses have lots of exercises and examples which are useful if you are learning or refreshing your knowledge.
https://www.designgurus.io/course/grokking-the-system-design-interview
Bytebytego
Has some good content, tests and examples.
Educative
Also good and worthy of consideration.
https://www.educative.io/courses/grokking-the-system-design-interview
Vendor Specific
Vendor-specific training can be mentally limiting to the uninitiated, as you tend to only think in terms of the solutions and products that you know. However, it can be beneficial for you as an engineer to get some practice “on the tools” for some key components and consolidate your theoretical knowledge. Vendor certs are super helpful for landing work and getting a pay rise. Do take them seriously, but don’t assume they get you what want without appropriate experience to support it.
Free tiers and practice projects.
Most of the cloud providers have a free tier that you can exploit to practise some of the fundamental concepts you need to learn. Be careful to set budget limits and alerts for budget thresholds. You don’t want to be that $10,000 AWS invoice whilst you’re living on a student budget horror story.
AWS
Adrian Cantrill has great courses and is really training you to be a Cloud Architect first and an AWS specialist second. Worth checking out.
Other courses:
Stephane Maarek’s course is also highly rated but he does anticipate that you know the fundamentals.
https://www.udemy.com/course/aws-solutions-architect-professional/
Azure, Google, Linux… (and AWS)
Andrew Brown is a very experienced infrastructure engineer and a good teacher his courses will help you hit exam targets and get familiar with the products and tooling.
Google’s training offering
https://cloud.google.com/learn/training/
Azure training
https://learn.microsoft.com/en-us/training/azure/
Ali B Cloud
These guys get overlooked by us in the West but their product offerings are as good as any of the US incumbents (if not better in some cases) and you have to use them out in the Asia Pac region. They have really good cost-efficient offerings. If you are located in East not the West! Then you are wise to consider adding their services to your skillset.
Other resources
Articles on dev.to and freecodecamp are really useful, for noobies who are really starting from the get-go, freecodecamp as some YouTube tutorials which are easy to follow.
But for Senior Engineers really just get building projects and stuck into the advanced training.