AreYouBoard is a Python3 Flask webapp designed to make board game recommendations based on user input. We collected data from BoardGameGeek and perform several query techniques such as SVD, TF-IDF Vectorization, review sentiment analysis etc to make good recommendations. Users can search for games similar to a particular (or combination) of games, or build their own ideal game in our advanced search query. I was primarily responsible for all things backend and deployment. The website is hosted on Google Cloud's Kubernetes Engine.
EzraCoinL is a cleverly named cryptocurrency plus webapp built from scratch in Java at Cornell. We implemented a simple Bitcoin-like cryptocurrency protocol along with a wallet application to be used with it. The emphasis was on usability - we feel a weakness of these protocols is that people do not use them because they are difficult to understand. We built all features from the ground up. I was primarily reponsible for planning, designing and analyzing the system, and built much of the underlying cryptocurrency protocol.
LiteTrader is a Python3 Cloud-Based Distributed Algorithmic Trading Platform. Leveraging Amazon Web Services (EC2 and S3), we built a system where users can register using their AWS and GDAX keys to run algorithmic traders with 24/7 uptime. The user runs the servers themselves, so they get to dictate how powerful they want the traders to be. This allows us to trivially scale our service as if it were a standard web server. Ongoing work is focused on integrating social analysis into our TensorFlow based traders. I was primarily responsible for building the cloud infrastructure and fault tolerance mechanisms, and am spearheading the ongoing work.
HyperFlow was my masters project. We modified and extended the RISCV simulator (Spike) and toolchain to implement processor level information flow policy primitives. On top of this new architecture we began to modify FreeRTOS to run on top of it. We were successfully able to bootstrap FreeRTOS, but most extensions require further work. This involved writing both C++ and RISCV assembly in addition to understanding Andrew Myers' prior work on Non-Malleable Information Flow Policies. This project was part of joint work between the CS and ECE departments, involving ongoing work improving the HyperFlow system beyond what was described in the original paper. Professor Ed Suh was my advisor.
In this project we sought to solve a similar problem to IBM Watson's QA System. Our advantage though was that we were given the context and the questions with the desire to determine which questions are 'answerable'. This required experimenting with several classification techniques, such as decision tree, logistic regression and multi-layered perceptron. We ultimately made use of an (LSTM) Recurrent Neural Network utilizing encoded word embeddings as it's primary input with multiple hidden layers. This was done in Python3 using a variety of libraries such as Keras, TensorFlow and PyTorch.
While I interned as Assured Information Security (AIS) I integrated previous work on adding nested virtualization and guest UEFI support to OpenXT, a Xen-based platform for secure computing. This involved getting very familiar with UEFI, building OS images (mkosi) and testing OS images at the hypervisor-level.
Research project involving filesystem benchmarking on top of the Xen Hypervisor. We tested several different file systems, such as GFS2, NFS and a standard NTFS. We found some interesting results - most related work involved using the network file system, and our benchmarks confirm it is a solid choice but also showed clustered file systems may be a valid approach as well.
We implemented a solver for text-based adventure games, such as Dunnet. While we found Dunnet to be a very daunting task, we built some of our own games and tested out our solver. The solver enters basic commands into the terminal to move between rooms and pickup/drop items. To win the game the solver must visit every room and move the proper items into the correct rooms. The solver tries to find an optimal path using a variation of A* to win the games.
PortOS is the main project associated with the CS 4411 project course. We built components of a basic operating system in C, including a thread package, basic and multi-level feedback queue scheduler, UDP, TCP, DSR (dynamic source routing) and a Unix filesystem.
Anonymix is a research project implementing an anonymous transaction system for Bitcoin, built under the supervision of Professor Sirer and Soumya Basu at Cornell. The system utilizes a DC-Net structure to securely transmit messsages between peers to perform a Coinjoin transaction. I was primarily responsible for building the Bitcoin backend for the system, which required extensive familiarity with the Bitcoin protocol. I also performed benchmarking, testing and debugging.
In this project we sought to leverage the power of Hidden-Markov and Maximum Entropy Models to recognize named entities. We implemented the entire interface from scratch in Python3. This required us to feature engineer for things like capitalization of adjacent words, word embeddings and part of speech. We achieved the second highest accuracy out of around 80 teams.
Theoretical research work on Proof of Stake based systems. We essentially did a survey of these types of cryptocurrency protocols, investigating what types of research and deployed protocols are out there and how successful they have been. We also did some attack analysis, and found that one coin (PeerCoin) may have sufferred history rewrite attacks in the past using a well documented vulnerability.