I am a first-year PhD student in Computer Science at the University of Texas at Austin, advised by Prof. Emmett Witchel. Previously, I graduated with major of Computer Science and Electrical and Computer Engineering at the University of Michigan and Shanghai JiaoTong University. During my undergraduate at UMich, I have been fortunate to work at OrderLab advised by Prof. Ryan Huang.
In my freshman and sophomore year, I was doing game engine architecture research advised by Prof. Manuel Charlemagne.
I have broad interest in computer systems, including operating systems, compiler systems and game engines. I am also broadening my research interest in distributed systems and machine learning systems. I enjoy designing and building powerful systems.
I am also interested in programming languages (for systems). I have programming experience and skills in more than 20 programming languages. Currently I use Rust 🦀 to start my new projects.
ePass is an in-kernel LLVM-like compiler framework that introduces an SSA-based intermediate representation (IR) for eBPF programs. It provides a lifter that lifts eBPF bytecode to ePass IR, a pass runner that runs user-defined passes, and a code generator that compiles IR to eBPF bytecode. Users could write flexible passes using our LLVM-like APIs to analyze and manipulate the IR.
ePass also provides an in-kernel supervisor that cooperates ePass core with the verifier to improve its flexibility (i.e. reduce false rejections) and safety (i.e. reduce false acceptance at runtime). It could also be used in userspace for testing.
Puka is an experimental 2D game engine designed to improve concurrency and keep simplicity for the users at the same time.
Users could write game logic in Lua scripts (called components) and specify the relationship between all the components and Puka will infer the best possible way to map components to CPU cores. For each CPU core Puka will create a Lua Virtual Machine (VM) to execute game codes.
Lua doesn't support multi-core execution, so Puka uses a mechanism to do automatic synchronization between different Lua VMs. See the blog post for more design details.
Messenger is a state-of-art 2D game engine with many design concepts borrowing from operating systems. It has a new architecture using "typed message passing", powered by the functional programming language Elm.
More than 100 students used Messenger to build great games. See SilverFOCS Game 2023+ games.