I am a senior software engineer specialized in functional programming, meta-programming and transpilers.
The rise of ReactJS, NodeJS sparks my interest in front-end programming as well.
University of Pennsylvania, Master in Computer Sci., 2011 - 2013
Research Interests: Programming Language Design, Domain Specific Languages and metaprogramming
Tsinghua University, Bachelor degree of Electrical Engineering., 2005-2009
GPA ranked #1 out of 200+ in the last year
Creator of OCamlscript
Creator of Fan
Fan is a is a compile-time metaprogramming system for OCaml, which is specialized in helping make writing compilers easier. It is bootstrapped by itself. Major features:
OCaml Compiler maintainer 2012 - 2013.
The compiler-dev team is composed of less than 20 people who are mainly accomplished professors in INRIA, I am honored to help maintain the part of Camlp4 and front end of OCaml.
The administrator of OCaml Beginners mailing list
Invited to the Panel Session of ML workshop 2012
Bloomberg L.P. 2014 - Senior Functional Programmer
UI generation for algebraic data type based on in-house OCaml compiler extension. Mapping OCaml's algebraic data type into a specific JSON format which fits into Bloomberg Terminal UI
POC: OCaml backend ported to AIX mainframe and most OCaml foundational libraries and OCaml to existing C/C++ API bindings
Develop a YAML based declarative build system to replace the old style Makefiles
Bloomberg L.P. 2013 Financial Software Developer Summer Intern
Automatic Termsheet Generation
Microsoft Research Asia 2009-2010 Research Assistant
Designed and implemented a DSL, Wukong based on FRP, which helps designer express animation in a declarative way.
Hulu Recommendation Algorithm Group 2010 Algorithm Designer, part-time
Designed and developed the recommendation algorithms based on collaborative filtering which recommends appropriate videos based on the user's watch history using F#.
University of Pennsylvania 2012 - 2013 Teaching Assistant
Compilers CIS 341 Spring 2013
One of the major contributors to the Quaker OAT compiler framework. The compiler compiles the OAT programming language to a subset of LLVM IR, and also translates such subset into X86 Assembly without using LLVM backend.
OAT is a subset of C++ without multiple inheritance and templates, it supports objects, dynamic dispatching and most features of C programming language.
Advanced Functional Programming in Haskell CIS 552 Fall 2012