Building programming languages from scratch, one bytecode at a time
I'm a systems programmer passionate about understanding how programming languages work under the hood. Instead of just using languages, I build them — implementing parsers, compilers, VMs, and debuggers from scratch.
- 🦀 Writing language runtimes in Rust, C, Go, and TypeScript
- 🧠 Deep diving into JavaScript engines (QuickJS enthusiast)
- 🔧 Crafting parsers, bytecode VMs, and garbage collectors
- 📚 Teaching others through detailed tutorials and open-source projects
- 🌏 Based in China, coding in multiple (human & programming) languages
let skills = TechStack {
languages: vec!["Rust", "C/C++", "Go", "TypeScript", "JavaScript"],
domains: vec!["Compilers", "Interpreters", "Virtual Machines", "Parsers"],
interests: vec!["Language Design", "GC Algorithms", "Bytecode Optimization"],
learning: "Making QuickJS slow (but debuggable) 🐌"
};Language Implementation Stack:
- Frontend: Lexers, Recursive Descent Parsers, Operator Precedence Parsing
- IR & Backend: AST → Bytecode, Code Generation, Optimization
- Runtime: Reference Counting + Mark-Sweep GC, Closure Implementation
- Tooling: Debuggers, Heap Analyzers, Language Servers



