Personal projects and other work
A rust library for orthogonal array generation and verification. It contains constructors for orthogonal arrays as well as functions that can verify whether a given point set is a valid (strong) orthogonal array. Development is currently in progress, as we are currently working on efficiently generating strong orthogonal arrays. The library is available at crates.io.
A port of the PCG random number generation library, written in pure Rust.
A ray tracer written in Rust, which follows Pete Shirley’s book, “Ray Tracing in One Weekend.” It features multithreading, and (soon to be completed) serialization.
Ensh stands for “Enayet Shell.” It is a basic shell written in Rust, designed
to be modern and efficient. It is currently a stable viable shell for MacOS and
Linux. It uses Travis CI for testing and the Cargo package manager to manage
unit tests. At the time of writing (can’t always promise I’ll update this page
as soon as I update the project), the
ensh binary size is only 160K, which I’m
working on paring down.
I originally started this project to learn Rust, and learn Rust as a systems programming language. This project also taught me about process management in Unix and a lot about maintaining and deploying a product.
A multithreaded HTTP 1.1 server written in C. I wrote this to get a better handle
on BSD sockets and because I haven’t really written any code that deals with
networking. The server can handle a decent number of mime types, and functions
as a fairly basic HTTP server. It can receive
GET requests to a particular path,
and will serve the file from that path to a browser. The server is also
multithreaded (using POSIX threads) and can accept multiple connections at
cttp uses the
pthreads library and cmocka
to manage unit testing. Travis CI is used for deployment and testing.
A personal website/blog powered by Jekyll and Travis CI. Pushing to Github triggers a build from Travis, which ensures that the website builds properly. You’re looking at it right now!
I am working on the Matasano Cryptopals Challenge, a set of challenges designed to teach some of the basics of cryptography. The challenges can be found here.
tiny search engine (TSE)
For a software development class, we created a small search engine in C. It downloads the contents of a webpage, indexes it, and ranks the results of a boolean query and displays it to the user. It follows the Unix development philosophy. At the instruction of our professor and Dartmouth College, the source code cannot be made public, but I can provide the source code upon inquiry. Email me if you want to see the source.
An app that replicates a guitar looper pedal for free. Available on the Play Store. Has over 6,000 downloads.
Created with three other students at Dartmouth College, 21.Days is designed to help users consistently build a habit. It utilizes Firebase and good app design practices.
An encryption app that utilizes Android intents to allow a user to send encrypted messages through any app on their phone. Download on the Play Store.
Provides diagnostic information about a phone’s battery, including charge capacity, temperature, and rate of discharge. Download on the Play Store.
A fitness/run tracker app created for a computer science class at Dartmouth College. Encourages good development practices, modularity, and MVC. Uses a variety of Google/Android services like location, accelerometer, and is multithreaded. Also uses machine learning to infer the type of activity a user is carrying out.