RevDecode is a Viterbi-based algorithm engineered for detecting malware within binary function libraries. It leverages sequence decoding techniques to overcome challenges inherent to binary reverse engineering—such as variations in compilation, optimization, and obfuscation—by transforming binaries into structured, directed layered graphs that enable robust function matching.
Under the guidance of Professor Robert J. Walls, this thesis presents a CUDA-based, GPU-accelerated implementation of RevDecode that reduces processing time for identical-size datasets from roughly 16 minutes on a CPU to about 10 seconds on a GPU—representing nearly a 100× speedup. The implementation leverages three kernel approaches—Naive, Segment-Based Estimation, and Fine-Grained—to optimize performance, scalability, and accuracy in processing binary function libraries, thereby advancing efficient malware detection through accelerated sequence decoding and function matching. Notably, this work was recently submitted to the USENIX Security Symposium 2025.
Learn more at the project page.
KernelNet is a C++ library built from scratch offering core tensor operations and automatic differentiation with CUDA support. It delivers a dependency‑free framework for building and training neural models.
The framework offers multi‑dimensional arrays' operations—element‑wise arithmetic, broadcasted addition, matrix multiplication, reductions and argmax—on both CPU and GPU, while recording computation graphs for gradient back‑propagation. On top of this foundation, KernelNet includes neural building blocks (Dense, , Embedding, Conv2D, LSTM), activation functions (ReLU, Sigmoid, Tanh, Softmax), optimizers (SGD) and loss functions (MSE, Cross‑Entropy) to support end‑to‑end model development.
A complete upstream data pipeline for CIFAR‑10 and Penn Treebank is included to enable dataset loading, batching, and preprocessing, and to provide built‑in benchmarking tools to evaluate user‑customized CNN and RNN models’ performance and computational efficiency.
For full details on function signatures, class interfaces, and usage examples, visit the KernelNet API reference.
LightSim3D is a GPU-accelerated renderer that uses CUDA for Monte Carlo path tracing and OpenGL for interactive display. It efficiently handles global illumination, soft shadows, and reflections through an optimized Bounding Volume Hierarchy (BVH) for ray-primitive intersection tests.
The project supports various rendering techniques, including direct light sampling and physically based rendering (PBR), letting users to switch between material effects such as metallic and matte finishes. With dynamic camera control via keyboard inputs and object rotation through mouse movement, LightSim3D offers an engaging platform for real-time rendering and interactive visualization.
Learn more at the project page.
The MiniJava Compiler is a toolchain that translates a subset of the MiniJava language into MIPS assembly code. Its structure is divided into clear modules: a lexer that tokenizes the source code, an LL(1) parser that builds an abstract syntax tree, a semantic analyzer that verifies type and scope rules, and a code generator that produces the assembly instructions.
This project serves as a practical reference in compiler design by illustrating the typical stages of language translation and the design decisions involved. It provides a grounded example of applying traditional compiler techniques to a modern subset of a programming language, contributing to ongoing discussions and educational efforts in the field.
Learn more at the project page.
Virginia Tech Aug 2021 - Dec 2021
Supporting CS 3304 - Comparative Languages, I led weekly office‑hours for 60+ students covering paradigms and runtime‑behavior concepts in Scala, C++, and Prolog; graded programming assignments—from Scala parser projects to Prolog logic‑rule implementations; and managed the course forum to clarify requirements and assist students.
China Eastern Airlines May 2020 - Aug 2020
During my internship at China Eastern Airlines, I designed and implemented end‑to‑end ETL workflows in Pentaho Data Integration—authoring Jobs (.kjb) to orchestrate Transformations (.ktr) with control‑flow logic for error handling, branching, and variable injection—extracting flight and passenger records from public APIs, validating and normalizing fields into a unified JSON schema, and loading the results for operational reporting.
On the front‑end, I acted as a React.js developer for an internal health‑monitoring mobile app, building responsive UI components, integrating them with RESTful services, defining and reviewing API contracts with backend engineers, writing unit and integration tests, and maintaining technical documentation.