Projects

Multi-core Operating Systems Implementation
UT Austin, Aug. 2016 - Nov. 2016

  • Coded physical memory management based on Barrelfish kernel (a capability-based research OS by ETH Zürich).
  • Spawned processes by memory allocator, capability and virtual address space initializer, ELF parser and dispatcher.
  • Wrote RPC and memory server for centric memory allocation, and dynamic self-paging with page-fault handler.
  • Booted multi-cores; established User-Level Message Passing and RPC between any two processes across the cores.
  • Developed user-space network driver, ping server and UDP server to process and echo ICMP and UDP packets.

Visual Recognition
UT Austin, Aug. 2016 - Nov. 2016

  • Recognized specific objects with local feature matching by nearest neighbor threshold, Lowe’s test and RANSAC.
  • Implemented an image recognition system for 25 object categories using deep Convolutional Neural Networks.
  • Developed image-based localization for self-driving car using Bag-of-Words and Deep Neural Network models.

Ingens: Coordinated and Efficient Huge Page Management
UT Austin, Nov. 2015 - May 2016

  • Implemented Linux page walker to track the access frequency of pages and utilization of memory regions.
  • Optimized performance of Java HotSpot 8 by enabling huge pages to different heap generations dynamically.
  • Modified Redis to aggregate frequently accessed objects into continuous memory and promoted it into huge pages.

Compilers
UT Austin, Jan. 2016 - Apr. 2016

  • Wrote a recursive descent parser for Bali programming language and SaM (a simple stack machine) code generator.
  • Implemented LLVM passes which analyze and optimize loops by hoisting loop-invariant codes out of the loops.
  • Generated expression tress from LLVM IR and wrote cost-augmented tree grammars using iburg specification.
  • Developed an x86-64 assembly code generator with register allocator for LLVM IR which supports integer arithmetic, arrays, strings, loops, and recursive function calls.

Operating Systems and Applications
UT Austin, Jan. 2016 - Mar. 2016

  • Developed a lightweight x86 kernel with 64-bit long mode and basic memory management module.
  • Built a simple userspace networked file system with FUSE to support transfer, cache and write-back of the files.
  • Developed (ELF) program loaders with all-at-one paging, demand paging and hybrid paging with page prediction.

Distributed Systems and Applications
UT Austin, TX Oct. 2015 - Nov. 2015

  • Implemented a distributed synchronized playlist based on the Three-Phase-Commit protocol with fault tolerance.
  • Designed a chat room service in the spirit of the multi-decree fault-tolerant Paxos system.
  • Developed an weakly connected consistent key-value store based on Bayou system with session guarantees.

Social Network Recommendation and Detection
SJTU, Sept. 2014 - Feb. 2015

  • Loaded LinkedIn network into Neo4j database with Py2neo, displayed it as a force-directed graph with Node.js.
  • Implemented friend recommendation and community detection algorithms with query language Cypher.

Routing and Congestion Control in SDN
SJTU, June 2014 - Sept. 2014

  • Simulated the network on MiniNet, analyzed the status of switch buffer and triggered events.
  • Designed routing control protocol based on these events, reduced the congestion and packet loss of the network.