Projects
This Website!
[Vue.js, Nuxt, Tailwind]
This website was built with Vue.js, Tailwind CSS, and Nuxt.
I created it as a way to get familiar with the capabilities of Tailwind
and Nuxt. My last personal site was a table-layout throwback
intended to render well in text-based browsers like lynx and links.
WorkspacesIO
[Python, FastApi, Vue 3]
WorkspacesIO is a data management tool built on MinIO, ElasticSearch,
and Filestash.app that provides excellent browser and command line interfaces
for managing data collections called workspaces. It uses AWS STS tokens
to provide coarse-grained access control that allows client tooling
to interact directly with the storage backend.
kobodl
[Python, Flask, Tailwind CSS]
kobodl is a command-line tool and web service to download and
remove DRM from books purchased from kobo.com. I forked it from another project
to add audiobook support, multi-user support, a web interface,
and create proper distribution packages with pypi and docker.
Hosted Service Configurations
[Docker, Compose, Traefik]
This is a git repository where I keep compose configurations for all
the services I host. It's also a tutorial for how to set these services
up, and represents a lot of time and research about how to best
configure docker and traefik. /r/selfhosted provided a lot of inspiration.
VIAME Web
[Vue.js, Vuetify, Typescript]
I am currently engaged in several projects that involve displaying
and editing track annotations over video in the browser. Challenges
include rendering performance and managing code complexity, as traditional
MVC patterns often lead to performance bottlenecks.
Keepass Tusk
[JavaScript, Webpack]
Tusk is a browser extension for filling passwords from a
KeePass database stored in the cloud. I didn't start this project
(it began as CKP) but I created a fork with a new UI since the
original project lost steam. You can install Tusk for Chrome or
Firefox. I've since abandoned the project due to difficulties
with cloud storage APIs, particularly Google Drive.
HackNC
[Pug, Grunt, CSS]
In the summer and fall of 2016, I lead the development team to
build the website for HackNC, the annual undergraduate-run
hackathon at UNC Chapel Hill. This is the first decent bit of web
design I was involved in, and my first time working alongside a
talented dsgraphic designer.
Ray Tracer
[C++]
I implemented a basic ray tracer in C++ to render spheres
and planes with reflective surfaces and colors. Because ray
tracing is computationally expensive, I also created a low-resolution
ASCII renderer to do scene setup from the command line.
Conway's Game of Life
[JavaScript]
I implemented an infinite version of the classic Conway's Game
in native javascript. This is one of the first pieces of code
I was ever proud of, and the project was my first foray into browser
animation with canvases.
OpenCV Flight Simulator
[C++, Python]
Hardly worth mentioning, except that it was so much fun. My friend
and I hacked a joystick out of pipe cleaners and puff balls and used
OpenCV tracking to use it to steer a flight simulator. The project was
thrown together at Bitcamp where judges didn't even bother to look at us
because we weren't competing for any sponsored prizes. But I'm not bitter.
HackNotify
[Python, Google Sheets]
This is a command-line tool for sending SMS notifications to
hackathon participants based on live-updating Google sheets. At the
time, I was interested in 'serverless' apps that used Google sheets
as a persistence layer to avoid configuring more complex document stores.
I used this tool during HackNC 2016.
External Links