Ever wondered how ride-sharing platforms like Uber handle millions of users, match riders with drivers in seconds, and track locations in real-time? In this deep dive, we'll explore a scalable architecture built with microservices, event-driven communication, and cutting-edge technologies like H3 geospatial indexing.
[Read More]
System Design: Building a Scalable Distributed Web Search Engine
Explore the architecture behind a web-scale search engine capable of indexing 100 billion pages. Learn about distributed crawlers, URL frontiers, inverted indexes, sharded databases, and the fascinating engineering challenges of building a system that handles petabytes of data and millions of queries per second.
[Read More]
System Design: How Would You Build YouTube? A Beginner's Guide
Continuing our system design series, we dive into building a YouTube-like video platform. Learn about object storage, asynchronous processing, CDNs, video chunking, and how YouTube's architecture evolved from a simple MySQL setup to a globally distributed system handling billions of daily views.
[Read More]
System Design: Understanding Twitter's Architecture - A Deep Dive
After a long break, I'm back! In this first blog post about system design interview preparation, I explore the high-level architecture of a Twitter-like social network. Learn about load balancers, caching strategies, database sharding, and the fascinating trade-offs engineers make to handle billions of reads daily.
[Read More]
Rewriting a JavaScript Classic in React: A Learning Journey
This post documents the journey of rewriting the 'Blockcode' visual programming toolkit from the book *500 Lines or Less* in React. Follow along to see how a classic JavaScript project was modernized using a component-based architecture, React hooks for state management, and an interactive drag-and-drop interface.
[Read More]
Lab 2 khóa MIT 6.5840: Xây dựng Key/Value Store và Distributed Lock với tính nhất quán tuyến tính
Bài viết thứ hai trong chuỗi bài về hệ thống phân tán qua các bài lab của khóa học MIT 6.5840. Bài viết này trình bày cách xây dựng một máy chủ key/value đơn node với tính nhất quán tuyến tính (linearizability ) và sau đó sử dụng nó để...
[Read More]
MIT 6.5840 Lab 2: Key/Value Server and Distributed Lock with Linearizability
The second post in a series on distributed systems through the MIT 6.5840 labs. This post covers building a single-node key/value server with linearizability, then using it to implement a distributed lock.
[Read More]
Lab 1 khóa MIT 6.5840: Xây dựng framework MapReduce từ đầu
Bài viết đầu tiên trong chuỗi bài về hệ thống phân tán qua các bài lab của khóa học MIT 6.5840. Bài viết này trình bày cách triển khai MapReduce bằng Go, một mô hình lập trình phổ biến để xử lý dữ liệu lớn song song.
[Read More]
MIT 6.5840 Lab 1: Building a MapReduce Framework from Scratch
The first post in a series on distributed systems through the MIT 6.5840 labs. This post walks through implementing MapReduce in Go — a popular programming model for large-scale parallel data processing.
[Read More]
Build your own X: Xây dựng ORM framework với Go - Phần 7
Phần cuối trong chuỗi bài xây dựng ORM framework với Go. Bài viết trình bày cách tự động cập nhật cấu trúc bảng database khi struct thay đổi, thông qua tính năng Migrate — hỗ trợ thêm và xóa field mà không cần viết thủ công câu lệnh SQL.
[Read More]