TypeScript connoisseur. Animation aficionado. Frontend web, mostly React and Next.js. Cross-platform mobile with React Native, Kotlin, and Swift. Backend with Node.js. Can do a bit of cloud wrangling.
With a background in education and technical communication, a passion for people, and the technical sophistication to guide projects – I'm your guy when it comes to leading engineering teams.
Learning is one of my favorite past times, followed closely by teaching others. You'll catch me learning new things on the daily and walking head first into horizon expansion.
My academic and work background.
My work history. From teaching calculus, to slinging code, to leading teams.
Helping client engineering teams shine their brightest. Overseeing the development of open source software and community outreach.
Full stack web and mobile on the Platform team. Built client SDKs and developer tools to help third parties integrate with Coinbase's fiat payment rails.
Software consultant, building software and helping others build software better. Focus on front-end web and native mobile using primarily JS tooling.
Team lead on health/insurance tech client. Full-stack web and mobile. TypeScript, React, React Native, and Node.js.
Full-stack web and mobile development. React Native, Vue.JS, and Ruby on Rails.
Full-stack web development of eCommerce sites and internal tools. Vue.js, NodeJS, and MongoDB.
Taught calculus and precalculus. Lead professional development workshops. R&D of online courseware.
My academic background in theoretical mathematics, computational science, and education.
4.0 GPA. Focus on theoretical mathematics, math education, and online curriculum development.
4.0 GPA. Focus on theoretical and applied mathematics.
Some open projects I've worked on.
A type and runtime safe query builder for the GROQ query language.
A screen recording app built with web technologies. Check it out.
A mandelbrot fractal generator built with raw WebGL and Svelte. Check it out.
TailwindCSS-inspired styling library for React Native. View the docs.
Pokedex site built with Next.js static site generation powered by PokeAPI CSV data. Check it out.
Browser-based FFMPEG video converter. Handy for turning .mov files into GIFs. Check it out.
Some dev-related content I've created over the last few years.
Some things I've written over the years.
Merely migrating to Cloudinary is saving us significant image bandwidth, which is great for our end-users and great for the world.
If you’re a designer or frontend developer, chances are you’ve happened upon hex color codes (such as `#ff6d91`). Have you ever wondered what the hex you’re looking at when working with hex color codes? In this post we’re going to break down these hex color codes and how they relate to RGB colors.
There are great native applications on the market for screen recording and editing. While tools like these include a whole host of powerful editing features, for short-form content that doesn’t require post-processing, they might be overkill. I wanted to explore how far browser technology has come in the way of screen sharing and recording, and attempt to create a tool that would allow me to quickly create short-form technical video content with a little bit of flare.
If you're a React Web engineer looking to build native mobile applications, React Native is a great choice. But it IS a little different. Here's where the paths diverge.
In this article, I'm going to discuss one of the aforementioned challenges of mobile app development with RN—building smooth animations and gestures—and a tool in the RN ecosystem, React Native Reanimated, that helps us take on this challenge without fear.
It turns out, React Native FlatLists can do a ton of cool stuff! In this post, we'll look at one of those things: building a carousel that has a fancy tilt effect.
I started working on a project for a client, that consists of creating web-based typing lessons. Part of the requirement was to create a non-interactive on-screen keyboard where the keys light up on keystroke.
Some videos and presentations I've made over the years.