Zero to Mastering Software Architecture

Web Application and Software Architecture 101

Master the Fundamentals of Web Architecture and Large Scale Systems

Web Application and Software Architecture 101

Course Contents (What You’ll Learn)

1. Introduction
  1. About this Course (preview)
  2. Significance of Software Architecture (preview)
2. Different Tiers in Software Architecture
  1. Introduction
  2. Single-Tier Applications
  3. Two-Tier Applications
  4. Three-Tier Applications
  5. N-Tier Applications
  6. Quiz
3. Web Architecture
  1. What Is Web Architecture?
  2. Client-Server Architecture
  3. Client
  4. Types Of Client
  5. Server
  6. Communication Between the Client and the Server
  7. Web Architecture Quiz – Part 1
  8. What Is a REST API?
  9. HTTP Push and Pull – Introduction
  10. HTTP Pull – Polling with Ajax
  11. HTTP Push
  12. HTTP Push-Based Technologies
  13. Client-Side vs. Server-Side Rendering
  14. Web Architecture Quiz – Part 2
4. Scalability
  1. What Is Scalability? (preview)
  2. Types Of Scalability
  3. Which Scalability Approach Is Right For Our App?
  4. Primary Bottlenecks that Hurt the Scalability Of Our Application
  5. How To Improve and Test the Scalability Of Our Application?
  6. Scalability Quiz
5. High Availability
  1. What Is High Availability?
  2. Reasons For System Failures
  3. Achieving High Availability – Fault Tolerance
  4. Redundancy
  5. Replication
  6. High Availability Clustering
  7. High Availability Quiz
6. Load Balancing
  1. Introduction to Load Balancing
  2. Understanding DNS – Part 1
  3. Understanding DNS – Part 2
  4. DNS Load Balancing
  5. Load Balancing Methods
  6. Load Balancing Quiz
7. Monolith & Microservices
  1. What Is A Monolithic Architecture? (Updated)
  2. When Should You Pick a Monolithic Architecture?
  3. What Is A Microservice Architecture?
  4. When Should You Pick A Microservices Architecture?
  5. Monolith and Microservices – Understanding The Trade-Offs – Part 1
  6. Monolith and Microservices – Understanding The Trade-Offs – Part 2 (preview)
  7. The Big Ball of Mud (Recently Added)
  8. Layered Architecture (Recently Added)
  9. Modular Monolithic Architecture – Part 1 (preview)
  10. Modular Monolithic Architecture – Part 2 – Inter Module Communication (Recently Added
  11. Hexagonal Architecture (Updated)
  12. Event-Driven Architecture – Part 1 – (Blocking, Non-Blocking) (Updated)
  13. Event-Driven Architecture – Part 2 – (Understanding Events) (Updated
  14. Event-Driven Architecture – Part 3 – (Real-world Use Case) (Recently Added
  15. Summary
  16. Monolith and Microservices Quiz
8. Micro Frontends
  1. Introduction to Micro Frontends
  2. The Need For Micro Frontends
  3. Micro Frontends Integration
9. Database
  1. Introduction & Types of Data
  2. Relational Database
  3. When Should You Pick A Relational Database?
  4. NoSQL Databases – Introduction
  5. Features Of NoSQL Databases
  6. When To Pick A NoSQL Database?
  7. Is NoSQL More Performant than SQL?
  8. Database Quiz – Part 1
  9. Polyglot Persistence
  10. Multi-Model Databases
  11. Eventual Consistency
  12. Strong Consistency
  13. CAP Theorem
  14. Database Quiz – Part 2
  15. Types of Databases
  16. Document Oriented Database
  17. Graph Database (preview)
  18. Key Value Database
  19. Time Series Database
  20. Wide-Column, Column-Oriented and Column-Family Databases – Part 1 (preview)
  21. Wide-Column, Column-Oriented and Column-Family Databases – Part 2 (Updated)
  22. Database Quiz – Part 3
10. Caching
  1. Introduction
  2. Do I Need A Cache?
  3. Reducing the Application Deployment Costs Via Caching
  4. Caching Strategies
  5. Caching Quiz
11. Message Queue
  1. Introduction to Message Queues
  2. Publish Subscribe Model
  3. Point to Point Model
  4. Notification Systems & Real-time Feeds with Message Queues
  5. Handling Concurrent Requests With Message Queues
  6. Message Queue Quiz
12. Stream Processing
  1. Introduction
  2. Data Ingestion
  3. Different Ways Of Ingesting Data and the Challenges Involved
  4. Data Ingestion Use Cases
  5. Data Pipelines
  6. Distributed Data Processing
  7. Lambda Architecture
  8. Kappa Architecture
  9. Stream Processing Quiz
13. More On Architecture
  1. Web Hooks
  2. Shared Nothing Architecture
  3. More On Architecture Quiz – Part 1
  4. Peer to Peer Architecture – Part 1
  5. Peer to Peer Architecture – Part 2
  6. Decentralized Social Networks
  7. Federated Architecture
  8. More On Architecture Quiz – Part 2
14. Picking the Right Technology
  1. How to Pick the Right Server-Side Technology?
  2. Key Things To Remember When Picking the Tech Stack
  3. Conclusion
15. Case Studies
  1. A Web-based Mapping Service Like Google Maps
  2. A Baseball Game Ticket Booking Web Portal
16. Mobile Apps
  1. Introduction
  2. Before You Design Your Mobile App
  3. Responsive Interfaces
  4. Types Of Mobile Apps – Part 1
  5. Types Of Mobile Apps – Part 2
  6. Choosing Between A Native & A Hybrid App
  7. Progressive Web Apps
  8. Mobile Backend as a Service
  9. Zero to Mastering Software Architecture Learning Path
  10. Epilogue
  11. Change log

You’ll have 5 years of access to the course content. Please read the FAQs below before making the purchase.

Who is this Course for?

This course is meant for software developers, aspiring architects, product managers, product owners, engineering managers, IT consultants and anyone looking to get a firm grasp on the fundamentals of web and software architecture.

If you are a beginner just starting your career in software development, this course will strengthen your fundamentals in the domain. Designing software is like fitting Lego blocks together. With this course, you’ll develop an insight into how to fit them together and build cool stuff.

This course, along with the Zero to Mastering Software Architecture learning path, will help you with the software engineering interviews, especially for the full-stack developer positions. By the end of the course, you’ll have a comprehensive insight into web application architecture.

If you have a startup idea and 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.

Will this Course be Helpful In My Career Growth?

This course is the fastest way possible to master the fundamentals of web architecture. Knowing software architecture gives us an edge as a developer or in any role that entails decision-making.

When implementing new features in our application, when designing new modules from the bare bones or when trying to scale our service, we can make better decisions by applying our architecture knowledge, saving ourselves or our employer a ton of money. This skill will make you stand out amongst your peers.

Most internet companies today have an essential software design round in their interviews, regardless of whether you are an absolute beginner or someone with years of industry experience. They want you to be an individual contributor. They want you to take ownership of your work and be capable of designing and writing software from the bare bones all by yourself, without relying on anyone for assistance.

The Zero to Mastering Software Architecture learning path (this course included) prepares you for just that and more.

As opposed to going through tons of articles, videos, books and whitepapers, you’ll find all the needed concepts in this learning path which will save you months, if not years, of your time.

I’ve spent a decade developing and managing distributed systems for the big guns in the industry and I’ve put that experience in the content.

Investing in this course will significantly increase your knowledge in the domain, subsequently increasing your pay scale. I wish I had a similar learning product in the initial years of my career.

Are There Any Prerequisites to this Course?

There are no prerequisites to taking this course. The course provides a thorough discussion on architectural concepts with the help of several illustrations to help you understand the concepts better. It holds good for even those who are in any management role like being a product manager/owner making key technology decisions.

Why is this Course Text-based?

My courses are intentionally text-based. The text format of the course enables you to learn faster than the videos. Learning through reading is way faster than sitting through hours of videos. It is easy to take notes—no pausing the videos to take notes or screenshots of diagrams. You can always go back to specific topics immediately when you need them.

Also, my courses are frequently updated. New information is continually added. It is easy for me to update the text-based content as opposed to re-recording a video every time a tiny update needs to be made. Imagine that. It would be killing.

How Long Do I Have Access to the Course Content?

You will have up to five years of access to the course content from the date of purchase.

Why Aren’t You Offering Lifetime Access?

I would be happy to but cannot primarily due to two reasons:

1. I have significant recurring monthly expenses in the form of platform fees, hosting charges, marketing, international tax compliance and other maintenance costs. Offering lifetime access would significantly spike the price of the courses. In order to keep the content affordable, I had to time restrict access to the platform.

2. The content of my courses is continually updated besides the new content that is added. The software design and development domain continues to evolve and as it evolves the courses get updated accordingly. With my courses, you’ll stay on top of the latest developments in the domain. And, as you might have figured this demands continual time investment 🙂

I Have a Question. How Can I Get in Touch?

You can send in your queries at [email protected]. You can also send me a message on LinkedIn here.

Course author

Course Author

Hello there, I am Shivang. I have industry experience of more than ten years designing and developing scalable web systems, right from idea to production. I’ve designed, developed, and maintained code, as well as worked in the production support for systems receiving millions of hits every single day.

I’ve worked on large-scale web services for some of the industry giants in several domains, including E-commerce, Fintech, Telecom and Travel & Hospitality. My last job was at HP as a full-stack developer in their Technical Solutions – R&D team.

As an independent consultant, I’ve helped businesses build scalable services with fitting software design and technology. This included helping them improve their development processes resulting in better code quality, maximum test coverage, minimal bottlenecks, less technical debt and fewer bugs.

Here is my LinkedIn profile if you want to read more about my professional experience or want to say hello! Cheers!!

Zero to Mastering Software Architecture Learning Path

Check out the Zero to Mastering Software Architecture learning path . This unique learning path educates you step by step on software architecture, cloud infrastructure and distributed system design, starting right from zero. It takes you right from having no knowledge on the domain to making you a pro in designing web-scale distributed systems like YouTube, Netflix, ESPN and the like.

Student Reviews

Check out what those enrolled are saying about my courses here.

Check Out My Blog

I write about distributed systems, software architecture, cloud, system design and backend engineering in general on my blog Check it out.