I write different kinds of code.

I participated in competitive programming as a teenager (NOI ‘08, ‘09 in China), and now I work as a full-stack developer for @microsoft.

I’ve been working on indie games, compilers, and regular full-stack developments.

I also translate tech materials and write short stories.


Track HN

Data tracking and analysis project for Hacker News

Track HN is a project to track, archive, visualize and analyze data from Hacker News.

The project consists of web tracker, database, server-less functions, no-code dashboards, browser extension, and twitter bot.


fiber note

a bi-directional networked note-taking app

fiber note screenshot

fiber-note is a bi-directional networked note-taking app which is open and self-hosting, inspired by roam-research, obsidian and others.

I’m working on a series of dev diaries around the building of fiber-note:

ruby on rust

An implementation of ruby in rust

ruby-on-rust is an implementation of ruby language in pure rust, consists of (barely working) lexer and parser, and a WIP interpreter.

I started this project as a way to learn rust. Eventually, I’ve learned more than that, including lexer & parser, ragel, and a lot of ruby’s hidden magic.

Lots of the grammar rules and AST conventions are ripped from the parser gem. For lexer, I adapted some rules from parser and ported from ragel-6 to ragel-7. For parser, I use syntax-cli as the parser generator.


tracking pop culture references

references.wiki screenshot

I watched/played so many tv shows/video games that I have to build references.wiki to organize and visualize pop culture references between tv shows, video games, fictional characters, etc.

I composed scrappers to fetch and parse the occurrences of pop culture references in different wikia (fandom) sites. Currently I’ve parsed around 5000 references between 1000 works/celebrities.

I built my own knowledge base to cross-reference sources like wikidata, google kg, and wolfram alpha. I implemented a customized editor for user to create new references between works.

The next step will be UGC workflow (I’m considering a git-based one), editing history and data visualization.

project yoru

visual novel generator

project yoru screenshot

project yoru screenshot

Project yoru is a set of projects to build cross-platform visual novel games from only assets and scripts, without coding.

To build this project, I was using polymer, lots of gulp scripts, phonegap build, which are all practically dead by now :|

tiny projects



as a translator

  • I’m a co-translater of the simplified Chinese version of MongoDB: The Definitive Guide from O’Reilly