Distributed Bitcoin Miner

  • Building a distributed server-client communication bitcoin mining system

  • Programming a custom Protocol built on UDP in Go to provide reliable communication and traffic control between echo servers/clients

  • Implementing client-server model with Go-style concurrency and marshalling

  • Handling failures, layering, and protocol multiplexing to ensure scalability and consistency


Raft Consensus Algorithm

  • Implemented Raft, a more understandable alternative consensus algorithm to Paxos , in Go

  • Defined routine for leader, candidate and follower, implemented leader election, log replication to provide fault tolerance, data replication and consistency

  • Used only Go Channels to achieve asynchronous consistency instead of Mutex

  • Github link: Raft_Implementation


Tribbler Social Network System

  • Collaboratively developed a large-scale system in Go with multiple different components communicating via RPCs, allowing users to make posts, subscribe to users and see others’ posts

  • Implemented a general backend key-value store based on consistent hashing and sharding to enable request routing and fault tolerance

  • Implemented a caching protocol with Lease Callback mechanism to improve throughput while keeping cached data consistent

  • Github link: Tribbler_Implementation


CMU Computer Science Academy

  • Worked in a team to create a CS education platform for high school students in Pennsylvania, now adapted by 14 high schools

  • Built interactive animation/interface for curricular content in Javascript and Django

  • Involved in website creation which launched a pilot version used by 400 students, collected user feedback to improve the system

  • Github: https://github.com/cmu-cs-academy

  • Website: https://academy.cs.cmu.edu/


Natural Language Processing Q&A algorithm

  • Built a Python Question-Answering System by scraping Wikipedia content, generating features with the Stanford NLTK package, parse tree and incorporating the trigram model

  • Utilized POS tagging, tokenization and various NLP techniques to parse and generate questions/answers

  • Generated questions and answers with highest relevancy and won best Q&A algorithm among 20 teams against other grad students


Besiege, Physics Simulation Game

  • Integrated Pygame with Box2D and designed 2D physics game in Python

  • Implemented animation interface together with physics simulation

  • Let user draw their vehicle and try to get to the designated area through physics simulation

  • Demonstration url: www.youtube.com/watch?v=IFIK0hnPA4k