Projects


Learn from doing.
Enjoy the spark of inspiration.
Happy hacking.

Projects

Tensor News, an individual full stack news recommendation system
Feb.2017 - April.2017
URL: http://www.tensornews2017.com (Currently disable to avoid AWS cost)
  • Built a news scrapper to scrap news from different websites and a message pipeline with python and RPC calls, and used Redis as cache, Rabbit MQ as message broker queue and MongoDB as database.
  • Designed a time-decay user preference model and applied processors to update preference based on user behaviors.
  • Implemented a 2-layer CNN news classifier with Tensor Flow and NPL techniques, reaching accuracy of 60% (Now I improved it to 81%).
  • Designed a user flow to sign up/sign in, lazy-load news pagination, and read recommended news based on preference model and machine learning news classifier with React.js, Node.js, Express.
  • Deployed this app to AWS, used Nginx as caching reverse proxy and kept app alive with PM2 process manager.
prev
next

Duke Market, individual full-stack web application
April.2016 - May.2016
Demo with mock data: http://dukemarket.herokuapp.com.

  • This is an individual toy project for Duke students to share their information of selling furnitures, books, or other items in a small scale during 2016 graduation session. This project is built with the full-stack framework Meteor.js, along with MongoDB, Bootstrap, etc.
  • On this website, you can log as a user, share information of items you want to sell, like items, collect items into your own collect bucket(like pin in Pinterest), see the popular list, leave comments, and get the color palette of a certain item.
  • The design, coding, testing, management of this tiny project is done rapidly all by myself during my freetime.
  • This app stopped service because I already graduated and unfortunately, there was crash in Heroku deploying later and when I redeployed this year , I didn't replicate the data. Therefore, currently the URL just a demo with some mock data.
prev
next

React Hue, React.js front-end practice demo
Nov. 2016

React Hue is a color palette tool built in a combination of Meteor.js, React, Material UI, Bootstrap. This simple web app mainly to contribute to seek what are better colors for web, mobile, UI development.
Demo:http://react-hue.herokuapp.com


Hola Chat, a real-time chat app for code interview
Feb.2016
https://holachat.herokuapp.com
  • Built a real-time group chat application for code interview based on Node.js, Express, Socket.io, Redis and jQuery.
  • Inside the side, I also add a collaborative code editor which shows different on-line users' cursors and their real-time typing actions, and applied Redis to restore history snapshot of editing contents so that new users in the room can catch up editor context.
  • Tested code with Mocha test framework and deployed it to Heroku.

iOS Software Developer, Knected, North Carolina
Sept.2015 - Dec.2015

Knected is startup project, which is sponsored by Mr.Mark Alexander, an entrepreneur in Raleigh, NC. It is a social app based on sports live stream between fans, and it integrates social functionality and sports broadcast, including channel selection service, monitoring of content, athlete game commentators stream, and a broadcasting rights model. I am one student learning and working with the team, and responsible for the iOS development using Swift. The whole project was transferred to Mr.Mark Alexander and his team.


Chord Project

  • Techniques: C++, Distributed System
  • Contributor: Zhuo Jia
  • Description:
    Accomplished the Chord, a scalable P2P lookup protocol that can join, search and delete nodes in chord ring efficiently, and answer queries even if the system is continuously changing. I used consistent hash to keep the load balance and achieved Scalable Key location with O(logN) search cost.

Raft Consensus Algorithm

  • Techniques: Java, Distributed System
  • Contributor: Zhuo Jia
  • Description:
    I implemented Leader Election mechanism with randomized election time-outs to minimize and resolve split-votes. Also, I implemented Log Replication mechanism to maintain coherence between the logs on different servers and guarantees the safety of applying entries to state machine.

TCP-Reno

  • Techniques: C++, Network, TCP/IP
  • Contributors: Zhuo Jia, Wenquan Xing
  • Description:
    Completed the design and implementation of TCP-Reno, a reliable transportation protocol. More specifically, we implemented flow control and congestion control. The former ensures that a fast sender will not overrun a slower receiver, and the later ensuring congestion detection, slow-start, AIMD and fast recovery.

Routing Information Protocol

  • Techniques: C, Network
  • Contributors: Zhuo Jia, Wenquan Xing
  • Description:
    Built a virtual IP network running RIP using UDP in C, and utilized the distance vector protocol to set up the route table with “split horizon with poison reverse”, which can solve infinite loop issue. Also, we implemented IP fragmentation when the size of packets exceeds the minimal transfer unit(MTU).

Mini-Shell Project

  • Techniques: C++, Operating System
  • Contributors: Zhuo Jia
  • Description:
    Implemented a mini command shell, which can parse and execute commands and take care of input format gracefully. After finished the basic functionality, I improved the shell so it can support directory operations, redirection and pipe. A lot of fun.

Heap Manager

  • Techniques: C, Operating System
  • Contributors: Zhuo Jia, Trey Bagley, Jason Huang
  • Description:
    Implemented a library that provides APIs for split and coalesce operations of heap at high allocation successful rate and great efficiency. We also minimized fragmentation using best-fit algorithms for allocation, and reduced time complexity of freeing and coalescing operations to O(1). Finally, we improved usability of memory space by reducing space-cost for metadata.

Thread Library

  • Techniques: C, Operating System
  • Contributors: Zhuo Jia, Trey Bagley, Jason Huang
  • Description:
    Wrote a user-level library supporting multiple threads within a single Linux process, and provided functions support thread generation, context switch, semaphore support, etc. What' more, we optimized semaphore implementation to achieve hand-Off lock , which guarantees FIFO ordering and mininal spinning. Finally, we completed Operating System error handling of misbehaving user programs.

Expense Tracker

  • Techniques: C++, Qt Creator
  • Contributors: Zhuo Jia, Jingxiong Huang, Guoshan Liu
  • Description:
    We implemented a user-friendly software for personal financial management in C++, and optimized GUI using Qt Creator.The main features include balance tracking, category labeling, data visualization and smart shopping list. And we enhanced user-experience by generating weekly reports with QR codes that can be easily stored and shared.

Other Research Experience

This is a summary of my EE-related research experience during my undergraduate education. For more details, please read my formatted resume below.

#1 Title: Optimization Design of 2kW Digital Generators (2014)

Field: Power Electronics, Signal Processing, Electric Machine
Quick Link(Only Chinese version available this time)

#2 Title: EMI Filter Design of DC-DC Converter in Electric Vehicle (2013)

Field: Electric Vehicle, Electromagnetics, Signal, Power Electronics
* National Undergraduate Innovative Research Program, Supported by Chinese Ministry of Education