Writing software is my passion. Building web applications, websites, tools, utilities, or artsy code sketches is what I do in my free time and want to do for my career as well. Here is a collection of the notable software projects that I've undertaken and published. The list isn't comprehensive and is always growing.
A homepage for myself with the primary purpose of showcasing my professional skills and achievements as well as personal projects and interests. I aimed to create something that demonstrates my skills as a web developer as well as gives others insight into myself and what I do.
The goal of this project is to create a web-based music creation application that can be used entirely within the browser. Since the modern WebAudio API provides everything necessary to create complicated synthesizers and perform advanced audio processing, I believed that the web could work as an accessible environment in which to build this.
A React port of the control-panel (https://github.com/freeman-lab/control-panel) library. I maintained 100% visual appearance and functionality parity with the original library while making it usable from React. I also added several additional features such as making panels draggable, making UI state external, and adding an Proxy-based interface for manipulating the UI state externally.
Server and TUI for managing and deploying static websites and files. Deployments are created as subdomains, allowing a directory of static files (such as one produced by `yarn build`) to go from your computer to being hosted at `project.ameo.design` with a single command.
A tool for viewing data about the popularity of various stocks on the Robinhood brokerage. Allows users to view the most (and least) popular stocks held by its users and view trends over time. Robintrack gained significant popularity, with several people reaching out to use the data it collected for school or personal research and the Robinhood team reaching out to me directly about it.
A friend and I wanted to work on a game together, trying out some tech that we were interested in and building up all parts of a game from scratch. I handled the frontend and the physics while my friend focused on setting up the backend server. At the end, we came up with a networked physics engine based on a popular Rust physics framework that runs the same code on both the client and the server. A variety of techniques were used for handling network delay, synchronizing state, and keeping track of game data both internally on the client as well as on the server.
A web application developed using Rust + WebAssembly for creating and visualizing compositions of noise functions. 3D noise functions are projected onto a 2D canvas after being mapped through a colorizer function, creating intricate and psychedelic effects. Includes a web backend for sharing + browsing compositions from other users.
A simulation engine that operates on a finite 2-dimensional universe populated by cells and entities. It is designed to provide a modular system on top of which simulations of various types can be designed. Can be compiled into WebAssembly and run in the browser, optionally including client/server functionality. Minutiae is used in several of my other projects.
A live depth-of-market (DOM) web-based visualization for live orderbook data from the Poloniex cryptocurrency exchange. Allows traders and quantitative analysts to gain unique insight into the current state of the market by viewing complex market activity in real time.
A web application providing an overview of a user's portfolio on the Poloniex cryptocurrency exchange. It shows detailed visualizations of current holdings, demonstrates how portfolio value has changed over time, and provides a variety of advanced analytics detailing a user's trading history and account activity.
TickGrinder is a high performance algorithmic trading platform written primarily in Rust. It is designed with the goal of efficiently processing event-based market data as quickly as possible in order to automatically place and manage trades.
Site that tracked the gameplay statistics of League of Legends players. Users could view as their rank changed as they played and view a variety of other statistics about their gameplay habits. Elotrack was eventually taken offline due to the League of Legends API that it made use of being discontinued.
Site where players of the game osu! can track their progress and view the progression of others. Pulls data from the osu! API, storing time series data and creating a variety of charts, plots, statistics, and other visualizations for a variety of different metrics. An in-game chat bot and Discord bot were also written to allow users to update their stats from in-game. Thousands of players a month continue to use osu!track.