A starting point to design a large-scale distributed system

Aerial view of coffee shop

Though I am a software engineer, I always dream about opening a coffee shop one day. A while ago, I wrote about compilation from the perspective of two people ordering poutines. Today, let’s talked about system design from the perspective of a coffee shop owner, Joe.

System Design Jargon

We’ll cover these system…

And can it get better?

Frustrated child on tablet

There are three types of technical interviews:

  • coding
  • system design
  • behavior

The coding interview is the most essential to software engineers.

For entry-level software engineers, they may face 3–5 rounds of interviews. Each round of interviews ranges from 45 minutes to 1 hour, and they are most likely all coding…

Build a custom log formatter for Sublime Text using Python

Sublime Text is a clean, fast, and lightweight text editor. Its rich support for plugins also makes it extendable and powerful. In today’s tutorial, we’ll look into how to create a plugin of our own.

Plugin Idea —A Custom Log Formatter

Imagine we have a logger that logs all the API requests and responses. …

Tap into the power of Google Drive

Google APIs are a huge umbrella. Check out the almost 200 entries from the Google API explorer. Among all these APIs, some of popular ones include: Google Drive, Gmail, Cloud Datastore, Google Cloud Storage, etc. …

There are plenty of beginner tutorials about building TODO apps, recipe apps, habit tracker apps, etc. Most of them focus on building UI, which undoubtedly is one of the most important topics for a mobile application. However, nowadays, most interesting apps also contain a server-side component.

UIStackView simplifies the view layout by reducing the number of constraints


UIStackView is one of the most important and powerful UIKit components introduced in iOS 9. It is so powerful and elegant that it really speeds up a lot of us pushing to drop support for iOS 8.

For people that work with Auto Layout a lot, you will know that…

Python is known to be good for data visualization. There are many tools in Python enabling it to do so: matplotlib, pygal, Seaborn, Plotly, etc. Among these, matplotlib is probably the most widely used one. On one hand, it offers a lot more flexibility; on the other hand, it is…

In this block post, we’ll package applications with Docker containers, and then deploy them with Kubernete in a local minikube cluster. We’ll cover some Kubernete concepts such as Pod, Deployment, Service, etc. Source code is published here.

This is a semi-rerun of an older blog Developing Microservices with minikube. If…

This is a follow up for DNS configurations for dev environment (Part 1), with some useful troubleshooting tips and tricks here.

System DNS configuration

View the DNS configuration used by this system. It is expected to see the following.

$ scutil --dns...
resolver #8
domain : local.zone
nameserver[0] …

The goal of this blog post is to forward requests to *.local.zone to for local development purposes. local.zone can be any domain in general.

Using /etc/hosts

A simple solution is to add entries in /etc/hosts. This file overwrites the DNS resolving. Whatever is specified in this file, it will be automatically…

Yuchen Zhong

I work as an Engineer in the day time. At night and over the weekend, I play with various stuff and write about them, either related or not related to work.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store