What you'll learn
- Design and build massively Parallel Java Applications and Distributed Algorithms at Scale
- Create efficient Cloud-based Software Systems for Low Latency, Fault Tolerance, High Availability and Performance
- Master Software Architecture designed for the modern era of Cloud Computing
- Globally deploy Distributed Programs on the Cloud serving millions of users, billions of requests, & petabytes of data
Proficiency in the Java
Passion for Software Engineering and Computer Science
Multithreading and Concurrency: Recommended
Have you always wanted to build software that reaches millions of users and impact people's lives?
Have you been wondering how modern companies
- Handle massive amount of internet traffic and transactions?
- Securely store billions of our photos, videos and other data?
- Provide impeccable user experience and high performance 24/7 all around the globe?
Then you are in the perfect place!
In this course you will:
- Master the theory of Distributed Systems, Distributed Computing and modern Software Architecture
- Gain the practical skills necessary to build Distributed Applications and Parallel Algorithms, focusing on Java based technologies
- Deploy groups of distributed Java applications on the Cloud
- Scale Distributed Databases to store petabytes of data
- Build Highly Scalable and Fault Tolerant Distributed Systems
Along the way you will learn modern technologies like:
- Apache Kafka
- Apache Zookeeper
- Google Cloud Platform
- Java HTTP Server and Client
- Protocol Buffers
- Google Cloud Platform
- And many others
By the end of the course you will:
- Apply best practices for building and architecting real-life Distributed Systems
- Scale your Distributed System to handle billions of transactions per day
- Deploy your distributed application on the Cloud
- Choose the right technologies for your use case and Software Architecture
- Use modern Java based techniques to store and handle large amounts of data
So what are you waiting for?
Join us today on this incredible journey!
- What do I need to know to join the course?
Basic knowledge of Java will suffice. Knowing the fundamentals of Multithreading and Concurrency may help but is not required.
- Will this course help me in System Design Interviews?
Yes. Distributed Systems questions are frequently asked during System Design Interviews, especially by large companies that operate on a massive scale. The skills you will learn in this course will help you in your career both while interviewing and working on real projects
- Do I need to pay for any software or Cloud account?
No. All the technologies covered in the course are free and open-source. The lectures on the cloud don't require you to pay for anything. If you want to follow along, all cloud vendors provide free-tier accounts to play around with and practice for free. Please follow the specific cloud vendor's documentation for guidance.
- Can I run and develop a Distributed System locally on my personal computer?
Yes. You can develop and run a distributed system on your computer and you don't need to buy any additional hardware. Generally, most distributed computing development is done on a single computer before it goes to QA and production.
- Is this the right course for me if I want to become a Software Architect or Technical Lead?
Yes. This is the right place for you to gain practical Software Architecture and Distributed Computing skills to become a Software Architect and Technical Lead. Thanks to the advancement of Cloud Computing, most companies today run distributed systems and deploy them on the cloud. So the skills taught in this course are critical to being a successful Software Architect in the modern era.
Who this course is for:
- Students who want to build modern, Distributed Systems at scale
- Students who want to acquire new practical skills in Distributed Computing & Cloud Technologies
- Students proficient in Java who want to take their Software Engineering skills to a new level
About the instructor
Michael Pogrebinsky is an experienced software engineer and software architect.
In his professional career, he has developed numerous flagship products and has worked on cutting-edge solutions and technologies for companies like Google, Intel, and many others.
He is primarily interested in real-time and high-scale software and demonstrated his technical leadership skills working at many leading companies in their fields.
He is also programming language and technology agnostic and his teaching methods emphasize understanding the core fundamentals and developing the right way of thinking and good practices.
His passion for technology made him a good mentor for other engineers and students, and he is excited to share his knowledge and experience here at Udemy.