Ongoing works

I've been going all-in on JAMstack apps this past year. My foray into Svelte + Sapper was easily my favorite venture; it's just so much simplier than React in my opinion. Also, my heavy frontend focus gave me some valuable CSS learnings!

Complete works

I've touched a lot of CS corners these past few years. Web tech was definitely a theme, but I never settled on any frontend framework in particular (Angular's the worst one though 😛). I also found some time for games, whether it be a virtual tennis match or real life roomba bowling!

Bits of Good Homepage

May 2019 - present

JAMstack
SvelteJS
Explore the live siteScour the Svelt-ified codebase

This was my first experience with rebuilding a brand from the ground up. We spend months in the design and user discovery phase to decide on the best logo, fonts, colors, and general "feel" of the website. A year later, we've built everything from a reimagined splash page to in-depth journey maps for all of our nonprofit projects. Oh, and it's built on the incredible Svelte + Sapper JS framework!

This very website

Jan 2020 - present

JAMstack
No frameworks
PugJS
Scan my way-too-complex codebase

This was a seriously big undertaking, mostly because of how I approached it. In short, this is a statically generated website with zero JS or CSS frameworks to be found. In fact, everything from client-side routing to the design were built from scratch. More than anything, this was meant as a learning experience in how JAMstack sites really work, but also a testament to how powerful raw CSS and ES6 have become. If you're curious how I approached it, check out the source code + the README

Dolphin field recording visualizer

Oct - Dec 2019

Research
Angular 2+
Play with dolphins... in recording formBrowse our undocumented codebase

This was a research project with interesting goals: a) to understand the language of dolphins, and b) to find a way to communicate with them as humans. This involved countless field recordings that needed to be compiled and analyzed for commonalities. So, I led a small dev team to build an audio visualizer using Angular 2+ to view researcher annotations and AI generated models on an easy-to-understand timeline. With some added WASM magic, it's now the team's go-to resource for compiling and viewing audio files!

Volunteer Management System

Jan - May 2019

MERN stack
Social good
ReactJS
Check out how the project has evolvedRead our big takeaway on CSS frameworksCheck out progress updates along the way

This was a major milestone as a developer: my first time taking ownership of a production-ready project. Since this Bits of Good student team was short-staffed, I ended up being the team-lead-SCRUM-master-client-communicator-designer-developer (my longest title so far!). It was also an amazing chance to make full stack architecture choices my team could agree on, and an opportunity to pair up and teach others as we worked towards the deadline. Though our nonprofit partner parted ways with BoG, the codebase has been reimagined as a general solution for volunteer management that all nonprofits can use!

Peloton Careers Page

Jul - Aug 2019

Product MVP
ReactJS
TypeScript
Redux
Check out the production deploymentRead about our team's process and lessons learned

This is the first Peloton project I took full ownership of. I worked as the head engineer on a multi-disciplinary team, getting involved from the ideation phase to MVP deployment. I spent time researching what was technically possible using the Greenhouse job posting API, working with designers to get my breakpoints pixel-perfect, and managing tasks with a product manager. I also wrote a neat blog post explaining the entire process + lessons learned along the way!

32 Bits Rackets - GameBoy

Oct - Nov 2018

Video game
C Basic
Emulator
Play the AAA titlePretend to understand my C Basic

Though I've found my niche in frontend dev and design, my interest in programming started making simple games using Java Swing. I had yet to rekindle this passion until college, when a system fundamentals class tasked us with creating a game in C using a Game Boy emulator. The end result: a tennis simulator against a CPU skilled enough to send shivers down Serena William's spine. I pushed the emulator to its limits calculating arc velocities, jumpshots, angle characteristics, and match-based scoring!

Roombowling

Mar 2019

Hackathon
SvelteJS
Python server
Experience the suck-iest frame of bowlingScour the Sveltastic instructional UI

I attended my fair share of hackathons as a GA Tech student, but BuildGT2 was easily my favorite win. Our team's goal was simple: reserve the Roomba dev kit ASAP and wing it from there. Inspired by the childhood classic Wii Bowling, we created an over-engineered, 1-round game with a Roomba as the ball!
Some serious tech was involved: A Kinect motion camera to detect fallen pins, A webapp using SvelteJS + web sockets for gameplay instructions and scoring, and a Raspberry Pi to communicate with the Room-ball.