Algorithms, Data Structures and Programming

I am very much interested in algorithms and data structures once I get to know them. I often think about Had I learnt them earlier... But then my life probably will not be what it is today (is it a good thing? :| ).

Competitive Programming

I enjoy solving algorithmic problems in the contests, though I am never an expert competitive programmer.

Currently I am the coach of the NYU Programming Team. I am also an active participant of various programming competitions including TopCoder, CodeForces, CodeChef, etc.

As an ICPC participant, my team championed in the ICPC Greater New York Regional 2013 and advanced to the ICPC World Finals 2014 in Ekaterinburg, Russia. We placed 13 out of 122 teams and won the North American Champion (1st among North American teams).

Knowledge Sharing

I love introducing algorithm and data structure concepts to others. Occasionally I offer algorithm crash course to my friends who want to improve in programming and algorithmic problem solving. I am also a fan of algorithmic problem solving discussion panels.

Media Design

I am not a professional media designer but I did much media design, from posters to Flash animations and games. Flash animation is my most experienced field (Unfortunately Flash is about to retire!) I enjoy digital painting on Wacom tablet (though I don't have much painting skill).


I have played billiards for 5 years. I was an active member of the Billiards Association of Peking University. Unfortunately it is hard to find a good place to play in the US, especially for my favorite Snooker.


I am an amateur piano player and music composer. I learnt MIDI composition in high school and continued to explore music composition thereafter. Recently I play my Kawai CA67 at home.