EP77: My Recommended Materials for Cracking Your Next Technical Interview

EP77: My Recommended Materials for Cracking Your Next Technical Interview

This week’s system design refresher: My recommended materials for cracking your next technical interview Cheat Sheet for Monitoring Infrastructure in Cloud Services Top 5 Caching Strategies Uber Tech Stack How many message queues do you know? The 2023 Observability Forecast report is here! (Sponsored)  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌
Forwarded this email? Subscribe here for more

This week’s system design refresher:

  • My recommended materials for cracking your next technical interview

  • Cheat Sheet for Monitoring Infrastructure in Cloud Services

  • Top 5 Caching Strategies

  • Uber Tech Stack

  • How many message queues do you know?


The 2023 Observability Forecast report is here! (Sponsored)

The third annual Observability Forecast by New Relic is out now! We surveyed 1,700 technology professionals—making it the largest, most comprehensive study of its kind in the observability industry. The survey results show that observability continues to deliver a clear, positive business impact and a 2x median annual return on investment (ROI). Organizations continue to see the business value of observability—and expect to invest more in it.

Read the free report


My recommended materials for cracking your next technical interview

Coding

  • Leetcode

  • Cracking the coding interview book

  • Neetcode

System Design Interview 

  • System Design Interview Book 1, 2 by Alex Xu, Sahn Lam

  • Grokking the system design by Design Guru

  • Design Data-intensive Application book

Behavioral interview

  • Tech Interview Handbook (Github repo)

  • A Life Engineered (YT)

  • STAR method (general method)

OOD Interview

  • Interviewready

  • OOD by educative

  • Head First Design Patterns Book

Mock interviews

  • Interviewingio

  • Pramp

  • Meetapro

Apply for Jobs

  • Linkedin

  • Monster

  • Indeed

Over to you: What is your favorite interview prep material?


Latest articles

If you’re not a subscriber, here’s what you missed this month.

  1. How to Choose a Message Queue? Kafka vs. RabbitMQ

  2. Why Do We Need a Message Queue?

  3. Database Indexing Strategies - Part 2

  4. Data Replication: A Key Component for Building Large-Scale Distributed Systems

  5. Common Failure Causes

To receive all the full articles and support ByteByteGo, consider subscribing:


A nice cheat sheet of different monitoring infrastructure in cloud services

This cheat sheet offers a concise yet comprehensive comparison of key monitoring elements across the three major cloud providers and open-source / 3rd party tools.

Let's delve into the essential monitoring aspects covered:

  • Data Collection: Gather information from diverse sources to enhance decision-making.

  • Data Storage: Safely store and manage data for future analysis and reference.

  • Data Analysis: Extract valuable insights from data to drive informed actions.

  • Alerting: Receive real-time notifications about critical events or anomalies.

  • Visualization: Present data in a visually comprehensible format for better understanding.

  • Reporting and Compliance: Generate reports and ensure adherence to regulatory standards.

  • Automation: Streamline processes and tasks through automated workflows.

  • Integration: Seamlessly connect and exchange data between different systems or tools.

  • Feedback Loops: Continuously refine strategies based on feedback and performance analysis.

Over to you: How do you prioritize and leverage these essential monitoring aspects in your domain to achieve better outcomes and efficiency?


One picture is worth a thousand words - Top 5 Caching Strategies

When we introduce a cache into the architecture, synchronization between the cache and the database becomes inevitable.

Let’s look at 5 common strategies how we keep the data in sync.

  • Read Strategies:
    Cache aside
    Read through

  • Write Strategies:
    Write around
    Write back
    Write Through

The caching strategies are often used in combination. For example, write-around is often used together with cache-aside to make sure the cache is up-to-date.

Over to you: What strategies have you used?


Uber Tech Stack

This post is based on research from many Uber engineering blogs and open-source projects. If you come across any inaccuracies, please feel free to inform us. The corresponding links are added in the comment section.

Web frontend: Uber builds Fusion.js as a modern React framework to create robust web applications. They also develop visualization.js for geospatial visualization scenarios.

Mobile side: Uber builds the RIB cross-platform with the VIPER architecture instead of MVC. This architecture can work with different languages: Swift for iOS, and Java for Android.

Service mesh: Uber built Uber Gateway as a dynamic configuration on top of NGINX. The service uses gRPC and QUIC for client-server communication and Apache Thrift for API definition.

Service side: Uber built a unified configuration store named Flipr (later changed to UCDP), H3 as a location-index store library. They use Spring Boot for Java-based services, uAct for event-driven architecture, and Cadence for async workflow orchestration.

Database end: the OLTP mainly uses the strongly-consistent DocStore, which employs MySQL and PostgreSQL, along with the RocksDB database engine.

Big data: managed through the Hadoop family. Hudi and Parquet are used as file formats, and Alluxio serves as cache. Time-series data is stored in Pinot and AresDB.

Data processing: Hive, Spark, and the open-source data ingestion framework Marmaray. Messaging and streaming middleware include Apache Kafka and Apache Flink.

DevOps side: Uber utilizes a Monorepo, with a simplified development environment called devpod. Continuous delivery is managed through Netflix Spinnaker, metrics are emitted to uMetric, alarms on uMonitor, and a consistent observability database M3.


How many message queues do you know?

Like a post office, a message queue helps computer programs communicate in an organized manner. Imagine little digital envelopes being passed around to keep everything on track. There are a few key features to consider when selecting message queues:

  • Speed: How fast messages are sent and received

  • Scalability: Can it grow with more messages

  • Reliability: Will it make sure messages don’t get lost

  • Durability: Can it keep messages safe over time

  • Ease of Use: Is it simple to set up and manage

  • Ecosystem: Are there helpful tools available

  • Integration: Can it play nice with other software

  • Protocol Support: What languages can it speak

Try out a message queue and practice sending and receiving messages until you're comfortable. Choose an easy one like Kafka and experiment with sending and receiving messages. Read books or take online courses as you get more comfortable. Build little projects and learn from those who have already been there. Soon, you'll know everything about message queues.

 
Like
Comment
Restack
 

© 2023 ByteByteGo
548 Market Street PMB 72296, San Francisco, CA 94104
Unsubscribe

Get the appStart writing


by "ByteByteGo" <bytebytego@substack.com> - 11:35 - 16 Sep 2023