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.
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.
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.