I build full-stack web and mobile apps using primarily JavaScript and Python tooling. React and Svelte for frontend web, React Native for mobile, and Node.js on the backend, and Python for automation.
Building large-scale software is a team sport, and I love leading by example. I'm a strong communicator who fully embraces the non-technical side of software development.
Though I'm not trained as a designer, I enjoy thinking about design and user experience. I'm particularly fascinated with graphics/modeling and animation.
Various non-private projects I've hacked on lately.
TailwindCSS-inspired styling library for React Native. |
... |
A screen recording app built with web technologies. |
... |
A mandelbrot fractal generator built with raw WebGL and Svelte. |
... |
A couch-project I put together while exploring Next.js static site generation. Parsed CSVs of Pokemon data to statically-generate a site with hundreds of highly-optimized pages. Used Node tooling to extract vibrant colors to spice up the app's design. |
... |
A React library for creating dynamic geometry boards. This was a "could I do that?" project, and was more for fun than for real-world use. Uses React, TypeScript, Jotai, and MATH. |
... |
A dependency-free JS library to convert between 7 different color spaces. Lots of fun matrix maths. |
... |
Browser-based FFMPEG video converter. Handy for turning .mov files into GIFs. |
... |
An ongoing playground for creating snippets of cool animations in React Native using React Native's built-in Animated API. A fun place for me to explore mobile animation techniques. |
... |
An introduction to React Native Reanimated V2. Presented at React Native EU 20201.
An exploration of the hex color code representation. |
Using Web APIs to create a screen and webcam recording app. |
A quick glance at iterables in JavaScript. |
What to expect when moving from React Web to React Native. |
An introduction to React Native Reanimated V2, with illustrative example. |
Using React Native's FlatList component to create a "Tilt Carousel". |
How to create WebP images and load them in a front-end app. |
Using CSS grid to create a keyboard display. |