What Is This Course All About?

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-serverpeer to peer decentralized architecturemicroservices, the fundamentals of data flow in a web application, different layers involved, concepts like scalabilityhigh 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.

 

Who Is This Course For?

There is no prerequisite to taking this course. It is meant for anyone looking to build a good concept in web application & software architecture & for anyone who wants to strengthen their fundamentals on it.

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

It will also help you with the software engineering interviews, especially for the full stack developer positions.

This course does not contain any code, & has a thorough discussion on the architectural concepts. It also contains a lot of illustrations to help you grasp the concepts better.

 

Course Contents

In the course I’ve discussed different tiers in software architecture, client-server architecture, HTTP PUSH & PULL communication mechanism, concepts like scalability, high availability, monolith & microservices architecture, when to pick which for your app. Databases, different types of data, Relational, NoSQL databases, multi-model databases, different types of databases, how to pick the right database for your app, their use cases.

The course has a discussion on concepts like polyglot persistence, eventual consistency, strong consistency, CAP Theorem. Caching, different caching strategies. Message queue, commonly used messaging models in web applications. Designing real-time feeds and notification system with the help of message queues. Handling concurrents requests with message queues.

Stream processing, Data ingestion, their use cases, challenges involved, data pipelines, distributed data processing architecture. Event-driven architecture, concepts like blocking non-blocking, webhooks, different software architectures, peer to peer architecture, decentralized web, decentralized social networks, federated architecture, mobile application architecture.

Techniques for picking the right technology stack for your application. I’ve included a few case studies where I discuss designing apps like Google Maps and a baseball game ticket booking platform.

Also, this course will be continually updated & new content will be added from time to time.

You can view the full list of contents here

 

Where Can I Buy The Course?

Course url: Click here to buy the course on Educative.io

Educative is a platform that offers interactive programming courses, with embedded coding environments, for software developers, to make learning quick and efficient. No setup required, developer environments are pre-configured in the cloud. You can learn at your own pace with in-browser exercises.

A few preview lessons are available for the course.

 

Course Author

Hi, I am Shivang, the author of this course also the creator of this blog. I’ve been writing code from the past 8 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.

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 the experience gained in my years of software development, with all of you guys!!.

Here is my LinkedIn profile, in case you want to say Hi!!

About me page on this blog.

Cheers!!