Visão Geral
O curso Grokking Modern System Design Interview tem como objetivo preparar os participantes para entrevistas técnicas focadas em design de sistemas modernos, abordando conceitos fundamentais de arquitetura distribuída, escalabilidade, desempenho, disponibilidade e design orientado a componentes.
Durante o curso, os alunos aprendem como estruturar suas respostas, aplicar trade-offs técnicos e desenhar soluções de alta qualidade para problemas reais de design em larga escala, como os exigidos em empresas de tecnologia de ponta.
Objetivo
Após realizar este curso Grokking Modern System Design Interview, você será capaz de:
- Compreender e aplicar os principais conceitos de design de sistemas modernos.
- Projetar sistemas escaláveis, resilientes e com alta disponibilidade.
- Estruturar respostas claras e eficazes em entrevistas técnicas de design.
- Utilizar abordagens e frameworks de design para resolver problemas de grande escala.
Publico Alvo
-
- Engenheiros de software que desejam se preparar para entrevistas de System Design em empresas como Amazon, Google, Meta e Microsoft.
- Arquitetos e desenvolvedores que desejam aprimorar suas habilidades em projetar sistemas escaláveis e distribuídos.
- Profissionais de tecnologia que buscam entender os principais padrões de design e práticas modernas de sistemas.
-
Pre-Requisitos
-
- Conhecimentos intermediários de programação (em qualquer linguagem).
- Familiaridade com conceitos básicos de rede, bancos de dados e arquitetura de software.
- Desejável conhecimento prévio de serviços em nuvem e sistemas distribuídos.
-
Materiais
Ingles/Portugues
Conteúdo Programatico
Module 1: Introduction to System Design Interviews
- Understanding the purpose and format of system design interviews
- Evaluating scalability, reliability, and maintainability
- The System Design Framework for structured problem solving
- Common pitfalls and strategies to stand out
Module 2: Core Concepts of Modern System Design
- Client-server model and layered architectures
- Load balancing, caching, and data partitioning
- Consistency, availability, and partition tolerance (CAP Theorem)
- Horizontal vs vertical scaling
- Latency and throughput optimization
Module 3: Data Storage and Databases
- SQL vs NoSQL: choosing the right database
- Indexing, sharding, and replication strategies
- Caching with Redis and Memcached
- Designing data models for scalability
Module 4: Designing Key System Components
- Designing APIs and communication protocols (REST, gRPC, WebSockets)
- Queue-based architectures: Kafka, RabbitMQ, and SQS
- Distributed file storage and content delivery (CDNs)
- Authentication, authorization, and rate limiting
Module 5: High-Level System Design Examples
- Design a URL Shortener (like Bitly)
- Design a Social Media Feed (like Twitter)
- Design a Messaging Service (like WhatsApp)
- Design a Video Streaming Platform (like YouTube)
- Design a Ride-Sharing Service (like Uber)
Module 6: Deep Dive into Advanced Topics
- Event-driven architecture and microservices
- Database scaling and denormalization
- Distributed consensus (Paxos, Raft)
- Monitoring, observability, and fault tolerance
- Trade-offs and back-of-the-envelope estimations
Module 7: Mock Interviews and Case Studies
- Step-by-step walkthrough of real interview problems
- Practicing structured responses under time constraints
- Evaluating design trade-offs with feedback
- System design whiteboarding exercises
Module 8: System Design for Cloud and Modern Environments
- Designing on AWS, Azure, and GCP
- Serverless design principles
- Edge computing and modern infrastructure patterns
- Designing for AI/ML-driven systems
TENHO INTERESSE