Web Application and Software Architecture 101
Master the Fundamentals of Web Architecture and Large Scale Systems
Course Curriculum
Click on the expand arrow ▼, below the curriculum, to view all 120 lessons
- What is web architecture?
- Client-server architecture
- Client
- Types of client
- Server
- Communication between the client and the server
- Web architecture quiz - Part 1
- Understanding APIs
- API paradigms
- REST
- GraphQL
- Understanding RPC API
- HTTP Push and Pull - Introduction
- HTTP Pull - Polling with AJAX
- HTTP Push
- HTTP Push-based technologies
- Client-side vs. Server-side rendering
- Web architecture quiz - Part 2
- What is monolithic architecture?
- When should you pick a monolithic architecture?
- What is a microservice architecture?
- When should you pick a microservices architecture?
- Monolith and microservices – Understanding the trade-offs – Part 1
- Monolith and microservices – Understanding the trade-offs – Part 2
- The big ball of mud
- Layered architecture
- Modular monolithic architecture - Part 1
- Modular monolithic architecture - Part 2 - (Inter module communication)
- Hexagonal architecture
- Event-driven architecture - Part 1 - (Blocking, non-blocking)
- Event-driven architecture - Part 2 - (Understanding events)
- Event-driven architecture - Part 3 - (Real-world use case)
- Summary
- Monolith and microservices quiz
- Introduction and types of data
- Relational database
- When should you pick a relational database?
- NoSQL databases - Introduction
- Features of NoSQL databases
- When to pick a NoSQL database?
- Is NoSQL more performant than SQL?
- Database quiz - Part 1
- Polyglot persistence
- Multi-model databases
- Eventual consistency
- Strong consistency
- CAP theorem
- Database quiz - Part 2
- Types of databases
- Document oriented database
- Graph database
- Key value database
- Time series database
- Wide-column, column-oriented and column-family databases – Part 1
- Wide-column, column-oriented and column-family databases – Part 2
- Database quiz - Part 3
FAQ (Frequently Asked Questions)
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 Software Architect learning track, 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 Software Architect Learning track (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 track 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? Do I Need to Have Coding Knowledge to Understand this Course?
There are no prerequisites to taking this course. Also, you do not need any coding knowledge for this course. The course provides a thorough discussion on architectural concepts with the help of several illustrations to help you understand the concepts better.
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.
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 two 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 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 :)
Who is the Course Author?
Hello, I am Shivang. I've been writing code for the past ten years professionally and fifteen years personally. In my career, I've gotten the opportunity to work on large-scale internet services for some of the industry giants in several domains, including 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.
My last job was at HP - Hewlett Packard Enterprise as a Full-Stack developer in their Technical Solutions – R&D team.
Here is my LinkedIn profile, in case you want to say hello!
Cheers!!
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.
Zero to Software Architect Learning Track
This unique learning track 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. Check it out.
User Reviews
Check out what users are saying about my courses by clicking here.
Follow My Blog & Subscribe to My Newsletter
Subscribe to my newsletter for the latest content on distributed systems, software architecture, cloud and system design. You'll also find related content on my blog scaleyourapp.com