I have always liked making new things, whether it be origami, robots, food, or computer programs, and at the same time, I have always been eager to learn new concepts, ideas, and skills. I find that these two desires of mine tend to build off of one another: whenever I find myself stuck on a project, I would seek out education, and whenever I learn a new skill, the first thing I would want to do is to test it out, and then to share it with others. To me, innovation is not limited to just engineering or research; discovering everyday life hacks to save time and improve the quality of one's life is also quite important. Similarly, education goes beyond reading a book or listening to a lecturer talk; it includes all of the Googling for answers that we do, as well as all of the failed attempts that we may have. And when phrased this way, one naturally sees that innovation and education are really just two pieces to the same puzzle.
React Flask MongoDB Paddle
This project was completed at HackMIT 2017 in collaboration with Zachary Liu, Roland Fong, and Evan Wildenhain. In this project, we trained a neural network using Baidu's Paddle machine learning API to detect political leanings of users through sentiment analysis of their Facebook or Twitter feeds, and then used this information to generate recommendations of news articles that may challenge their beliefs in hope of expanding their exposure to differing opinions and eventually shattering the political echo chambers that we tend to find ourselves in nowadays. We also use the same neural network to determine the political leaning and the amount of incendiary content (i.e. resentment) found in articles, and we choose to offer those with low amounts of such content as recommendations so that the users would not be immediately repulsed by them. We earned a $10,000 dollar award for this project.
Modeling Routing Algebras and the Stable Routing Problem in Cubical Type Theory
This is my thesis research project, completed during my undergraduate studies. In this project, I used new techniques the functional programming language Agda, which is based on the newly developed cubical type theory, to encode proofs about the Stable Routing Problem. Agda's type checker can then be used to verify that the logic in the proofs is correct. I was awared the "Outstanding Computer Science Senior Thesis Prize" for this work. I was advised by David Walker and Matthew Weaver.
Web Assistant for Room Draw (WARD)
Flask Pony ORM JQuery Select2
This project was completed as part of the course COS 333 in collaboration with Theodore Ando, Eitan Zlatin, Yafah Edelman, and Alexandra Palocz. The goal of this project was to design a web app that students at our university could use to plan, research, and coordinate room draw with their friends, all in one place. Our app allows users to search among available rooms using fuzzy search and filters, save rooms in favorite lists (which is then synced with their draw groups), compare different rooms side by side, and upload photos and reviews of their own rooms to the central database where other users can view them. We also used a statistical model to predict the likelihood that users would be able to draw into a room of their choice based on historical data.
Establishing a Good, Portable Development Environment
One of the keys to simplifying the development process is to set up a easy-to-use development environment. This mainly includes automating many of the common tasks in development. In this article, I will explain some ways in which one could set up a lightweight, portable, and easily replicable development environment for smaller and medium sized projects.