explaingit

lifei6671/interview-go

5,546GoAudience · developerComplexity · 2/5Setup · easy

TLDR

A Chinese-language collection of Go technical interview questions and answers covering concurrency, goroutines, Redis, MySQL, and system design, organized to help backend developers prepare for engineering interviews.

Mindmap

mindmap
  root((interview-go))
    What it does
      Go interview prep
      Chinese language
      Q and A format
    Go Topics
      Channels and goroutines
      GPM scheduler
      Memory management
    Database Topics
      Redis data structures
      MySQL indexing
      Cache consistency
    System Design
      Flash sale inventory
      Distributed tracing
      Social graph design
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Study Go concurrency interview questions on channels, goroutine coordination, and the GPM scheduler model with worked answers before a technical interview.

USE CASE 2

Review Redis and MySQL architecture questions covering indexing, B+ trees, eviction strategies, and replication that appear in Chinese backend engineering interviews.

USE CASE 3

Practice system design scenarios such as flash-sale inventory deduction, Redis-MySQL cache consistency, and distributed tracing design with span and trace IDs.

Tech stack

GoRedisMySQL

Getting it running

Difficulty · easy Time to first run · 5min

Documentation-only reference, no installation required, read on GitHub or the linked companion site at interview.disign.me.

No license is specified for this documentation project.

In plain English

Interview-go is a Chinese-language collection of Go programming interview questions and answers, organized into sections covering different topic areas. It is intended to help developers prepare for technical interviews at Chinese tech companies, where Go is widely used. The Go section includes practical coding questions on topics like string manipulation, concurrent map access, channel behavior, goroutine coordination, and memory management. Specific questions ask things like what happens when you read from or write to a closed channel, how to implement a concurrency-safe map with blocking reads, or how to add a timeout variant to sync.WaitGroup. There are also theory questions covering Go's concurrency scheduler (the GPM model), garbage collection, and common causes of memory leaks. Each question links to a dedicated answer file with explanation. Beyond Go itself, the collection covers Redis data structures, persistence mechanisms, eviction strategies, and master-slave replication. The MySQL section addresses indexing strategies, B+ tree internals, and multi-version concurrency control. A sorting and algorithm section covers bubble sort, selection sort, linked-list operations, and string-matching algorithms expected in coding rounds. More recent additions cover architecture design scenarios: how to model a follower/following social graph, how to handle inventory deduction during a flash sale, how to keep Redis caches consistent with a MySQL database, and how to design a distributed tracing system with spans and trace IDs. There is also a small section on large language model interview basics, suggesting the collection has expanded beyond traditional software engineering topics. The repository links to a companion site at interview.disign.me where the content is also published as a browsable guide. The README is entirely in Chinese.

Copy-paste prompts

Prompt 1
Based on the interview-go collection, explain what happens when you read from a closed Go channel and when you write to one, with a code example for each case showing the output.
Prompt 2
The interview-go repo covers concurrency-safe map access in Go. Show me how to implement a map that blocks readers until a write completes, without using sync.Map.
Prompt 3
Using interview-go as a reference, explain Go's GPM scheduler model, what G, P, and M represent and how goroutines are multiplexed onto OS threads.
Prompt 4
Based on interview-go's system design section, describe how to keep a Redis cache consistent with a MySQL database during high-traffic write bursts without stale reads.
Open on GitHub → Explain another repo

← lifei6671 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.