SIGN UP FOR APRIL BATCH 

WHY THIS COURSE?

- Do you want to learn how to design and build fault-tolerant distributed systems like Google's Spanner or Amazon's DynamoDB?
 - Ever wondered how Bitcoin and Ethereum can handle transactions at scale without a central authority?
- Are you interested in mastering how RAFT and PAXOS help scale adistributed databases like Cassandra, CockroachDB or Aerospike?
- Curious about how BitTorrent can distribute large files to millions of users across the globe?

As software engineers, we use a wide range of tools and technologies to build complex systems that power the world around us. However, many of us don't have the time or opportunity to truly understand the workings of these systems underneath.

That's why learning about distributed systems is so important. By understanding how systems like Kafka, Cassandra, Consul, Raft, and Bigtable work under massive scale, you'll be better equipped to design and build complex systems that can handle the demands of the modern world.

In our course on Distributed Systems for Software Engineers with Go, you'll gain practical knowledge and hands-on experience building distributed systems using Go. This will not only help you become a better engineer, but it will also give you a deeper appreciation for the complex systems that power our world.

So if you're ready to take your skills to the next level and become a better engineer in designing complex systems at scale, then our course is the perfect opportunity to do so. Sign up today and see how you can learn about distributed systems and apply that knowledge to your work.

HOW IT WORKS

Learning distributed systems is crucial for modern engineers as it enables the creation of scalable, fault-tolerant and efficient applications that can handle the vast amounts of data generated by today's interconnected world.

This is an intermediate-level cohort-based course aimed at software developers (including those coming from a non CS background) who have always been interested in learning more about Distributed Systems, but did not know where to start. The program will cover most of the topics under Distributed Systems including but not limited to - Architecting Large Scale Networks, Databases and High Scale Distributed Systems.

The program will be a blend of Live Classes happening on Weekends, 1:1 Mentorship sessions, and hands on coding labs. In the course, we will

  • Learn the fundamentals of distributed systems, including distributed computing, fault tolerance, and scalability.
  • Learn how to design and implement distributed systems that are scalable, reliable, and fault-tolerant
  • Gain a deep understanding of the challenges and trade-offs involved in building distributed systems, and how to navigate them
  • Work on distributed systems using hands-on labs that simulate real-world scenarios and challenges

About the instructor 👋

My name is Farhan, and I am a software engineer currently building an immutable, cryptographically verifiable database. I have a passion for sharing my knowledge and experience with others, and on this website, you will find a variety of content covering the fundamentals of computer science. Topics include distributed systems, blockchain, database internals, and system architecture. 

I started my journey from a non-CS background and learned computer science by reading research papers and implementing them. At the start of my career, I joined a payments startup where I handled critical payment transactions at scale. Later, I worked at GreedyGame, an adtech company where I wore several hats, including backend, platform, and data engineer roles. My work there involved building and scaling a platform that could handle at least one billion requests per day and creating data pipelines to ingest 4-5 TB of data in a single day for analytics. After GreedyGame, I worked at Cisco, where I built a Peer-to-Peer system on top of routers for the Cisco Meraki group. I worked with Gossip Protocols and CRDTs to manage scaling router configuration on distributed devices.

Following that, I worked at VMWare as a Platform Engineer to handle large-scale Kubernetes clusters, building operators to handle multi-tenancy in a multi-cluster environment adhering to several compliance norms. Currently, I am working as a Core Database Developer building immudb, where I am working on data retention and consensus and replication protocols to scale the database.

I've built several projects from scratch to further by understanding in distributed systems, right from research papers like Chord, Kademlia to constructing databases from scratch like flashDB.

My goal is to help aspiring engineers and computer science enthusiasts improve their skills and become better at what they do. Whether you're a beginner or an experienced professional, there will be something for you here. So, subscribe now and join me on a journey of learning and discovery as we delve into the exciting world of computer science and technology.

Course Curriculum

Our Features

Interactive Labs

Practice building distributed systems with hands-on labs that simulate real-world scenarios and challenges

Real-World Applications

Learn how distributed systems are used in practical applications such as social networks, cloud computing, and big data processing

LIVE CLASSES

Learn concepts, practice questions & get your doubts cleared instantly in the LIVE Classes.

DISCUSSION FORUM

Get access to 24*7 Live Discussion group with the instructor and other folks.

Beginner-Friendly

Our course is designed for engineers of all levels, including those with non-CS backgrounds

Cohort based course

A cohort is a small group of students who work through a curriculum together to achieve the same learning objective.

Tech With Aly

© Copyright 2023 techwithaly