- For each problem solved:
- Code solution in Ruby or Go
- Add time and space complexity analysis
- Write a short "pattern takeaway"
- Store in
leetcode/<category>/<problem>.md
- Two pointers: two-sum, three-sum, container with most water
- Sliding window: longest substring without repeats, minimum window substring
- Prefix sum: subarray sum equals k, maximum subarray
- Interval problems: merge intervals, insert interval
- Group anagrams
- Subarray sum problems
- LRU cache implementation
- Reverse a linked list
- Detect/remove cycle
- Merge two sorted lists
- Merge k sorted lists
- Copy list with random pointer
- Min stack
- Next greater element
- Largest rectangle in histogram
- Daily temperatures
- Valid parentheses
- DFS and BFS traversals
- Binary search tree validation
- Lowest common ancestor
- Level order traversal
- Serialize/deserialize binary tree
- Topological sort (course schedule)
- Shortest path: BFS and Dijkstra
- Union-Find: connected components, Kruskal MST
- Fibonacci variations
- Climbing stairs
- Coin change (min coins and combinations)
- Longest increasing subsequence
- Longest common subsequence
- Palindromic substrings
- Edit distance
- Word break
- Knapsack variations
- Binary search variations
- Search in rotated array
- Median of two sorted arrays
- Kth largest element (Quickselect/Heap)
- Implement Trie (prefix tree)
- Word search (backtracking)
- Regular expression matching (DP)
- Sudoku solver
- Each scenario gets a Markdown doc in
system-design/ - Include:
- Assumptions (traffic, scale, SLAs)
- Architecture diagram (draw.io / Excalidraw / ASCII)
- Component choices and tradeoffs
- Risks and mitigations
- Load balancing: L4 vs L7
- Caching strategies: write-through, write-back, write-around, TTL
- Message queues: SQS, Kafka, RabbitMQ
- Database scaling: sharding, replication, indexing
- Storage design: object store, block storage, distributed file systems
- API design: REST, GraphQL, gRPC
- Authentication and authorisation
- TLS and certificate management
- Secrets management
- URL shortener
- Twitter feed / Facebook news feed
- WhatsApp / Slack real-time messaging
- YouTube / Netflix video streaming with CDN
- Rate limiter (token bucket, leaky bucket)
- Search autocomplete
- Payment system (idempotency, retries, consistency)
- Metrics and monitoring pipeline
- CI/CD pipeline design at scale
- CAP theorem: consistency vs availability
- Strong vs eventual consistency
- SQL vs NoSQL
- Push vs pull models
- Batching vs streaming
- Each lab in
aws-labs/<lab-name>/ - Deliverables:
README.mdwith Objective, Steps, Expected Outcome, Cleanup- Terraform or CloudFormation templates
- Screenshots or CLI outputs proving success
- Notes on what failed or broke
- EC2: launch templates + autoscaling groups, serve a web app behind ALB and then NLB
- ECS Fargate: deploy a containerised app behind ALB, scale, observe CloudWatch logs
- ECS EC2 + capacity providers: run same app with EC2 hosts and test scaling
- EKS: deploy app with Deployment, Service, Ingress, HPA
- Lambda: event triggers from S3, API Gateway, DynamoDB streams
- Step Functions: orchestrate Lambda workflow
- VPC: custom VPC with public/private subnets, NAT, IGW
- Security groups vs NACLs: block/allow traffic and test
- PrivateLink, VPC peering, Transit Gateway connectivity
- IAM: policies, roles, permission boundaries
- KMS: encrypt/decrypt flow
- Secrets Manager vs SSM Parameter Store
- S3: versioning, lifecycle rules, signed URLs, replication
- RDS: multi-AZ failover, read replicas
- DynamoDB: GSIs, LSIs, streams
- ElastiCache: Redis failover drill
- CloudWatch: logs, metrics, dashboards, alarms
- CloudTrail: track IAM events
- X-Ray: trace Lambda or API Gateway app
- CodeBuild + CodePipeline: ECS Fargate deploy pipeline
- GitHub Actions → EKS deploy with kubectl/Helm
- Blue/green and canary deployment demos
- Terraform basics for each of the above
- Each demo is a directory in
aws-labs/demo-apps/ - Includes
README.md, Terraform, Dockerfile, and app code
-
Rails or Go API → ECS Fargate
- Push image to ECR
- Deploy service behind ALB
- AutoScaling and CloudWatch alarms
- CI/CD with CodePipeline
-
Same app → EKS
- Deployment, Service, Ingress
- ConfigMaps and Secrets
- HPA for autoscaling
- Monitoring with Prometheus/Grafana
-
Extend app with RDS + ElastiCache
- Connect to Postgres and Redis
- Failover testing
-
CI/CD for ECS and EKS
- ECS via CodePipeline
- EKS via GitHub Actions
- Blue/green and canary demos
-
Monitoring and Security
- CloudWatch dashboards
- SNS alerts
- KMS encryption for data
- Secrets Manager rotation
Deliverables: notes and test commands
- netstat, lsof, tcpdump, strace
- Debugging CPU, memory, IO issues
Deliverables: Git repo with branches demonstrating each
- Rebase, cherry-pick, bisect
- Submodules, hooks
Deliverables: markdown writeups of what happened
- Chaos testing: kill pods or instances
- DR strategy document
- Backup and restore workflow test