Cloud Inter
Cloud Inter
AWS, learn foundational networking, learn how DNS works, routing, ip subnetting, OSI 7 layer
model. Encryption, VLANs
infrastructure as code
Terraform
Packer
Ansible
DNS / Linux
Couchbase
# Previous Experience
#Behavioral
# Debugging
# DSA – Heap Sort
# Big Data
# Large Files
# OS
# Networks
# Database
# System Design
# Cloud
ystem design cheat sheet for interviews and revision of basics I wish I had when I was
preparing for my interviews.
• Key Fundamentals:
1. Scalability: https://lnkd.in/gpge_z76
2. Latency vs Throughput: https://lnkd.in/g_amhAtN
3. CAP Theorem: https://lnkd.in/g3hmVamx
4. ACID Transactions: https://lnkd.in/gMe2JqaF
5. Rate Limiting: https://lnkd.in/gWsTDR3m
6. API Design: https://lnkd.in/ghYzrr8q
7. Strong vs Eventual Consistency: https://lnkd.in/gJ-uXQXZ
8. Distributed Tracing: https://lnkd.in/d6r5RdXG
9. Synchronous vs. asynchronous communications: https://lnkd.in/gC3F2nvr
10. Batch Processing vs Stream Processing: https://lnkd.in/g4_MzM4s
11. Databases: https://lnkd.in/gti8gjpz
12. Horizontal vs Vertical Scaling: https://lnkd.in/gAH2e9du
13. Caching: https://lnkd.in/gC9piQbJ
14. Distributed Caching: https://lnkd.in/g7WKydNg
15. Load Balancing: https://lnkd.in/gQaa8sXK
16. SQL vs NoSQL: https://lnkd.in/g3WC_yxn
17. Database Scaling: https://lnkd.in/gAXpSyWQ
18. Data Replication: https://lnkd.in/gVAJxTpS
19. Data Redundancy: https://lnkd.in/gNN7TF7n
20. Database Sharding: https://lnkd.in/gMqqc6x9
21. Database Index's: https://lnkd.in/gCeshYVt
23. WebSocket: https://lnkd.in/g76Gv2KQ
24. API Gateway: https://lnkd.in/gnsJGJaM
25. Message Queues: https://lnkd.in/gTzY6uk8
• Design Patterns:
1. https://lnkd.in/g5xXEsyb
2. https://lnkd.in/gPBKWucA
3. https://lnkd.in/gBmu2Z7h
4. https://lnkd.in/gHtg_wZ6
5. https://lnkd.in/gVVSCYvN
6. https://lnkd.in/gQ3ZCNgX
7. https://lnkd.in/gFbuxsQZ
8. https://lnkd.in/gF-tRnQR
9. https://lnkd.in/gJBUrcgm
10. https://lnkd.in/gCkgTjQh
11. https://lnkd.in/gPJCscbj
12. https://lnkd.in/gzJDEMt9
13. https://lnkd.in/g6Ma6VyB
14. https://lnkd.in/gPwejHqP
15. https://lnkd.in/gxqrdgBw
16. https://lnkd.in/gp7neH2D
17. https://lnkd.in/gXYHNniN
18. https://lnkd.in/gm6qqNPc
19. https://lnkd.in/gqjWa9tw
20. https://lnkd.in/g2MBCiE3
21. https://lnkd.in/gKjhZ8cK
22. https://lnkd.in/gRB_kBZS
23. https://lnkd.in/g7k9wJkX
24. https://lnkd.in/gYz9Nsvi
25. https://lnkd.in/gKd_zK-N
26. https://lnkd.in/ggZJR3a3
27. https://lnkd.in/g3E_rGrA
28. https://lnkd.in/gsbetRE3
29. https://lnkd.in/gczTCFNp
30. https://lnkd.in/gh7b4bDt
• Architecture Patterns
1. Event-Driven Architecture: https://lnkd.in/dp8CPvey
2. Client-Server Architecture: https://lnkd.in/dAARQYzq
3. Serverless Architecture: https://lnkd.in/gQNAXKkb
4. Microservices Architecture: https://lnkd.in/gFXUrz_T
--
Dynamic Programming
1. https://lnkd.in/eWbVc2EY
2. https://lnkd.in/eMJc6FFx
3. https://lnkd.in/ebdSXE7T
4. https://lnkd.in/eQFyt-FB
5. https://lnkd.in/eVX2kq-7
6. https://lnkd.in/e5e8VDDM
7. https://lnkd.in/eZdsPSax
8. https://lnkd.in/ecSMYtGp
9. https://lnkd.in/eN-P-MsM
10. https://lnkd.in/e26yJabc
11. https://lnkd.in/exWeY6CC
Strings
1. https://lnkd.in/ejjJ_8cx
2. https://lnkd.in/eEYze3yB
3. https://lnkd.in/euVfY5iH
4. https://lnkd.in/eZkiKrx2
5. https://lnkd.in/eaa4syG6
6. https://lnkd.in/exeASjz4
7. https://lnkd.in/eUvzRPzd
8. https://lnkd.in/ezCMekqv
9. https://lnkd.in/e2NxmNgi
10. https://lnkd.in/eR6y-Bm7
Tree
1. https://lnkd.in/e64kBRac
2. https://lnkd.in/ehp4PNEY
3. https://lnkd.in/ep8VubDn
4. https://lnkd.in/ew6hcqzt
5. https://lnkd.in/eiyJzPSx
6. https://lnkd.in/es7a7eV2
7. https://lnkd.in/ehWHPyJn
8. https://lnkd.in/ef3acviH
9. https://lnkd.in/eEFvqcCZ
10. https://lnkd.in/eFDPuf63
11. https://lnkd.in/edKznwGv
12. https://lnkd.in/e2-74Vgq
13. https://lnkd.in/e3n8snkn
14. https://lnkd.in/eKKgX25x
DSA was extremely hard for me initially until I found these 16 problem-solving patterns.
These are game-changers!
1) https://lnkd.in/giASrwds
2) https://lnkd.in/gjatQ5pK
3) https://lnkd.in/gBfWgHYe
4) https://lnkd.in/g9csxVa4
5) https://lnkd.in/gbpRU46g
6) https://lnkd.in/gcnBActT
7) https://lnkd.in/gKEm_qUK
8) https://lnkd.in/gVkQX5vA
9) https://lnkd.in/gKja_D5H
10) https://lnkd.in/gKE6w7Jb
11) https://lnkd.in/gdYahWVN
12) https://lnkd.in/gmMMST5J
13) https://lnkd.in/gkNvEi8j
14) https://lnkd.in/gPgpsgaQ
15) https://lnkd.in/gd4ekfQe
16) https://lnkd.in/gMZJVkFf
2. 𝐕𝐞𝐫𝐭𝐢𝐜𝐚𝐥 𝐒𝐜𝐚𝐥𝐢𝐧𝐠: Upgrade your database server by adding more CPU, RAM, or storage
to handle increased load.
3. 𝐂𝐚𝐜𝐡𝐢𝐧𝐠: Store frequently accessed data in-memory (e.g., Redis, Memcached) to reduce
database load and improve response time.
4. 𝐒𝐡𝐚𝐫𝐝𝐢𝐧𝐠: Distribute data across multiple servers by splitting the database into smaller,
independent shards, allowing for horizontal scaling and improved performance.
5. 𝐑𝐞𝐩𝐥𝐢𝐜𝐚𝐭𝐢𝐨𝐧: Create multiple copies (replicas) of the database across different servers,
enabling read queries to be distributed across replicas and improving availability.
8. 𝐕𝐞𝐫𝐭𝐢𝐜𝐚𝐥 𝐏𝐚𝐫𝐭𝐢𝐭𝐢𝐨𝐧𝐢𝐧𝐠: Split large tables into smaller, more manageable parts
(partitions), each containing a subset of the columns from the original table.
10. 𝐌𝐚𝐭𝐞𝐫𝐢𝐚𝐥𝐢𝐳𝐞𝐝 𝐕𝐢𝐞𝐰𝐬: Pre-compute and store results of complex queries as separate
tables to avoid expensive recalculation, reducing database load and improving response
times.
Books
1) Clean Code
2) Head First Design Patterns
3) Designing Data-Intensive Applications
4) Building Microservices
5) Designing Web APIs
0 𝐌𝐢𝐜𝐫𝐨𝐬𝐞𝐫𝐯𝐢𝐜𝐞𝐬 𝐏𝐚𝐭𝐭𝐞𝐫𝐧𝐬
Microservices patterns are design strategies that help developers create, build, and manage
microservices architectures. These patterns solve common issues that come up when working
with microservices, like finding services, communication, and ensuring systems stay reliable.
𝐀𝐏𝐈 𝐆𝐚𝐭𝐞𝐰𝐚𝐲 𝐏𝐚𝐭𝐭𝐞𝐫𝐧: Acts as the single entry point for all client requests, directing
them to the right microservice and handling tasks like authentication and load balancing.
𝐂𝐢𝐫𝐜𝐮𝐢𝐭 𝐁𝐫𝐞𝐚𝐤𝐞𝐫 𝐏𝐚𝐭𝐭𝐞𝐫𝐧: Monitors the health of services, stopping requests to failing
microservices, and rerouting them to backups to prevent system-wide failures.
𝐒𝐞𝐫𝐯𝐢𝐜𝐞 𝐑𝐞𝐠𝐢𝐬𝐭𝐫𝐲 𝐏𝐚𝐭𝐭𝐞𝐫𝐧: Keeps a central list of all microservices, making it easier to
find and coordinate them through load balancing and health checks.
𝐒𝐞𝐫𝐯𝐢𝐜𝐞 𝐌𝐞𝐬𝐡 𝐏𝐚𝐭𝐭𝐞𝐫𝐧: Manages how services interact with each other, handling service
discovery, balancing, security, and monitoring.
𝐒𝐚𝐠𝐚 𝐏𝐚𝐭𝐭𝐞𝐫𝐧: Manages transactions that span multiple services by breaking them into
steps, with the ability to undo steps if something goes wrong.
𝐒𝐢𝐝𝐞𝐜𝐚𝐫 𝐏𝐚𝐭𝐭𝐞𝐫𝐧: Pairs each microservice with a dedicated container to handle tasks like
logging and security, allowing the main service to focus on its core job.
𝐂𝐐𝐑𝐒 𝐏𝐚𝐭𝐭𝐞𝐫𝐧: Separates data handling into two parts: one for reading (query) and one for
writing (update), improving performance and scalability.
A successful candidate will have 5+ years of experience with backend and mid-tier services
using Spring Boot, REST API, Java, Spark, BigQuery, BigTable technologies
Nice to Have
Experience with workflow engines or business process orchestration (e.g., Temporal,
Cadence, Apache Airflow)
Experience with GoLang (primary language of our orchestration engine)
Contributions to open-source projects in distributed systems
Experience with cloud-native technologies (Kubernetes, containers)
Background in building developer tools or platform infrastructure
Comfortable developing scalable and extendable core services used in many products.
15+ years of experience in software development, focusing on big data processing, real-time
serving and distributed low latency systems
Expert in multiple distributed technologies (e.g. Spark/Storm, Kafka, Key Value Stores,
Caching, Solr, Druid, etc.)
Proficient in Scala or Java and Full Stack application development.
Deep knowledge in Hadoop ecosystem, like HDFS, Hive, MapReduce, presto etc.
Advanced knowledge of complex software design, distributed system design, design
patterns, data structures and algorithms.
Experience working as a Machine learning engineer closely collaborating with data
scientists.
Experience working with ML frameworks like TensorFlow and ML feature engineering.
Experience in one or more public cloud technologies like GCP, Azure, etc.
Excellent debugging and problem-solving capability.
Experience in working in large teams using CI/CD and agile methodologies.
Domain expertise in Ad Tech systems is a plus.
Experience working with financial applications is a plus.
Excellent team player with strong coding, analytical and problem-solving skills
Hands-on experience with cloud distributed systems and high scale designs and in
developing high performance distributed software applications
Strong proficiency in Golang or Python
Hands-on experience in NoSQL, SQL databases
Familiarity with event-driven architecture and message queues like Kafka, RabbitMQ
Experience with backend development (Rest APIs, Databases, Serverless computing)
of distributed cloud applications.
Proficiency in Docker and Kubernetes ecosystems
Knowledge of infrastructure as code (IaC) tools like Terraform
Experience with CI/CD processes
Good understanding of public cloud design considerations and limitations in areas of
microservice architectures, security, global network infrastructure, distributed systems,
and load balancing with strong cloud service trouble-shooting skills.
Working knowledge of TCP/IP and Networking is plus
Experience with cloud deployments on platforms like Azure, AWS, and GCP
M.S/B.S degree in Computer Science or equivalent and 8+ years of relevant
experience required.
High energy and the ability to work in a fast-paced environment with a can-do
attitude
Extensive experience with Microsoft Azure, Google Cloud and understanding of various cloud
storage abstraction layers to select the right technology for the application storage needs,
with a focus on designing solutions that meet the performance requirements at an optimal
cost.
Very high proficiency with Unix/Linux, TCP/IP, DNS, load balancers, autoscaling,
file systems and different types of data stores.
Proven results applying ML and other data-driven techniques appropriately to solve difficult
optimization problems
Experience with open-source frameworks and technologies like AWS, NoSQL, Big Data
Technologies (Flink, Spark, Kafka, Elastic Search, Hive, Iceberg, Hudi etc.)
Expe
Familiarity in Big Data technologies like Hive, Kafka, Hadoop, SQL, developing APIs
Experience working with data pipeline authoring system, such as Airflow, Flyte, DBT
You have 8+ years of experience designing, developing and launching backend systems at
scale using languages like Python or Kotlin.
1. How would you implement a priority queue in Python without using built-in libraries?
2. Given a large dataset, how would you identify and handle missing values using Pandas?
3. Explain how you would handle exceptions in a Python-based ETL pipeline to ensure data
integrity.
4. What strategies would you employ to optimize the performance of a Python script
processing terabytes of data?
5. Discuss the differences between threading and multiprocessing in Python. When would you
use each in data engineering tasks?
6. How would you use Python to extract data from a RESTful API that requires authentication
and rate limiting?
7. Compare and contrast JSON and Avro formats. How would you use Python to convert data
between these formats?
8. What approaches would you take to unit test a Python function that transforms data within
a pipeline?
9. How would you implement logging in a Python application to monitor data pipeline
performance and errors?
10. Describe how you would use Python to validate incoming data against a predefined
schema before processing.
11. Using Python, how would you efficiently load a large CSV file into a PostgreSQL database?
12. Explain how you would implement a real-time data processing solution in Python using
tools like Kafka or Spark Streaming.
15+ years of proven experience building sophisticated applications and APIs in Cloud
and hybrid cloud environments at large scale preferably in Python.
Familiarity with gen AI application building, search and chatbots
Proven expertise of performance, reliability in sophisticated distributed systems and
the teams that build them.
Strong proficiency in multiple programming languages and technologies relevant to AI
and system development.
Proven track record to lead sophisticated projects and deliver results in a fast-paced,
multifaceted environment.
Technical leadership designing products as well as mentoring and developing high
preforming teams.
Extremely motivated, highly passionate, and curious about new technologies. Take
pride in your work and strive to achieve incredible results and possess superb
communication and planning skills.
Has delivered software in a cloud context and is familiar with the patterns and process
of managing cloud infrastructure.
Excellent leadership, problem-solving, analytical and communication skills, capable of
inspiring and leading a technical team.