Zero to Software/Application Architect learning track is a series of four courses that I am writing (2 courses published) with an aim to educate you, step by step, on the domain of software architecture & distributed system design. The learning track takes you right from having no knowledge in it to making you a pro in designing large scale distributed systems like YouTube, Netflix, Google Stadia & so on.
Software (backend) design is a crucial skill that I believe every developer should be deft in. With this architecture series not only you’ll be interview-ready for your system design interview rounds but you’ll also develop a solid foundation on the domain, becoming a better software engineer as a whole.
The courses included in this series help you understand various architecture styles, technology stacks, their trade-offs & why they are used in the industry. You’ll get an insight into the intricacies of distributed systems/services that have to deal with heavy traffic influx on a continual basis. You’ll understand concepts such as distributed locking, high-frequency transactions, data consistency, thundering herd problem, ways of efficiently managing petabyte-scale data & much more.
With this being said, let’s see what the first course in the learning track has to offer:
Course #1: Web Application & Software Architecture 101
This course is a 101 on web application & software architecture. It walks you step by step through different components & concepts involved when designing the architecture of a web application. We’ll learn about various architectural styles such as the client-server, peer to peer decentralized architecture, microservices, the fundamentals of data flow in a web application, different layers that are involved, concepts like scalability, high availability & much more.
In this course, I also go through the techniques of picking the right architecture and the technology stack to implement our use case. I walk you through different use cases which will help you gain an insight into what technology & architecture fits best for a certain use case when writing a web application. You’ll come to understand the technology trade-offs involved.
By the end of the course, you’ll have a comprehensive insight into the web application architecture. If you have a startup idea & you are asking yourself, how do I implement my app? What technologies do I use? Where do I start? This course will help you kickstart your entrepreneurial journey.
Course #2: Cloud Computing 101 – Master The Fundamentals
This course will help you understand the physical infrastructure on which our apps are deployed. You’ll gain an insight into how clusters work, how multiple server nodes running in a cluster communicate with each other to scale our workload and the data in real-time, code deployment workflow & much more!
This is a 101 on cloud computing. It takes you through the fundamentals of the cloud covering all the important aspects that are applicable when we develop & deploy our application on a cloud platform.
This course is platform-agnostic & the concepts discussed apply to all the cloud platforms be it AWS, Google Cloud, Azure, IBM Cloud, Netlify & so on. Once you are done with this course, you’ll have a thorough understanding of the basic concepts of the cloud.
After having spent a decade in the industry writing code, I strongly believe that every software engineer should have knowledge of cloud computing. It’s the present and the future of application development & deployment.
Be it on-premises or on a public cloud, every business prefers to run its service on cloud infrastructure due to multiple technical and economic reasons that we will discuss in detail in this course. There is an ever-rising demand for cloud experts & having the knowledge of cloud computing gives you an edge over other engineers.
Here are a few popular services that scaled with millions of users, deployed on the cloud platforms of these service providers:
- Pokemon Go, the augmented reality mobile game that became a phenomenon, was developed by Niantic and hosted on the Google Cloud Platform. According to Google Cloud blog, the game right after the launch attracted a massive number of players up to 50 times the anticipated traffic and had to scale exponentially to ensure a smooth gaming experience to the players.
- Fortnite by Epic Games is an online multiplayer game that runs on AWS servers handling a load of a whopping 200 million players (according to this case study). Fun Fact – 200 million is 24 times the population of Newyork.
- Hotstar, a leading streaming media & video-on-demand service in India with a user base of over 200 million users, runs its services on AWS cloud. In the latest edition of IPL T20 Cricket tournament, the streaming platform received record traffic of
10.311.4 million concurrent users smashing its previous record of 8.26 million concurrent users. Here is a post on it that I’ve written on my blog.
- Netflix is powered by AWS.
According to research by Gartner the cloud services market is forecasted to grow by 17% in 2020 to a total of $266 billion. In the cloud, SaaS (Software as a Service) remains the largest market segment.
In another report by Forbes, 83% of the enterprise workloads will be in the cloud by 2020.
This course does not contain any code. But it contains a lot of illustrations to help you understand the concepts better. After going through this course, you’ll not require any other course on the fundamentals of the cloud. You can directly move on to take more advanced courses on the domain such as DevOps, Cloud Architecture & so on.
Course #3 Data Architecture (In Development)
This entails learning the art of scaling databases & understanding the techniques, technology & the intricacies of managing petabyte-scale data, that almost all of the large scale services have to deal with in today’s application development landscape.
Course #4 System Design (In Development)
Apply all the concepts learnt in the above courses in designing both compute-intensive & data-intensive applications like YouTube, Netflix, Slack, Gmail, Google Stadia & more!!
If you wish to be notified of the launch announcements of the upcoming courses in the learning track, product updates & the new content published on the blog. Consider subscribing to my newsletter.
Know thy Instructor
Hello there, I am Shivang. I’ve been writing code from the past 10 years professionally & 14 years personally. In my career, I’ve gotten the opportunity to work on large scale internet services for some of the industry giants on several different domains such as E-commerce, Fintech, Telecom and others.
I’ve written applications from the bare bones, right from the idea to production. I’ve maintained code, as well as worked in the production support for systems receiving millions of hits every single day. I’ve also worked as a developer on support with the DevOps teams.
My last job was at Hewlett Packard Enterprise as a Full-Stack developer in their Technical Solutions – R&D team.
Via this course, I’ve tried my best to share the knowledge, insights, and experience gained in my years of software development, with all of you people!
Here is my LinkedIn profile, in case you want to say Hi!!
- Distributed Systems & Scalability #1 – Heroku Client Rate Throttling
- Zero to Software/Application Architect – Learning Track
- Java Full Stack Developer – The Complete Roadmap – Part 2 – Let’s Talk
- Java Full Stack Developer – The Complete Roadmap – Part 1 – Let’s Talk
- Best Handpicked Resources To Learn Software Architecture, Distributed Systems & System Design