Full-stack developer at @microsoft by day, indie creator by night, and a cool dad always.

I started in competitive programming (NOI ‘08, ‘09 in China), where I learned to enjoy coding and building cool stuff. Now, I spend my time building apps, games, and compilers.

I also translate tech materials and write short stories.

projects

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.

Posts/Reports:

WeWord

AI-generated dictionary, thesaurus and crosswords


WeWord is an AI-generated dictionary, thesaurus and crossword puzzles.

It helps to see how the AI sees our world by letting it explain our language.

weword.io

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.

charts.land

charts rendering service


charts.land is a chart image and animation rendering service. The ultimate goal is to provide an unified API that can render any chart from different libraries (e.g. d3, plotly, echarts, chart.js, vega, etc.).

references.wiki (discontinued)

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

  • rails.style: a curated resource hub for Rails developers
  • wiki flutter: a wikipedia client in flutter
  • streaming guide: help to decide which streaming service (nf, hulu, disney+) should you subscribe to

packages/libraries/utilities

publications

as a translator

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