I work backend-first. Node.js and TypeScript form the core, with PostgreSQL and Redis running locally in Docker. Prisma handles data access, Zod defines runtime-safe schemas plus validation, and Clerk Authorizes. Express usually ties it all together, but im starting to experiment with fastify.
On the frontend, I use React with TypeScript, increasingly through Next.js. Forms and validation are powered by React Hook Form and Zod. While I'm comfortable with vanilla HTML and CSS, Tailwind and shadcn/ui have become my go-to for building clean, consistent UIs.

Next.js With small Fastify Server (TS)
A rebuild of an earlier Vite + React + Express application. Migrating to Next.js reduced friction between separate frontend and backend projects, streamlined development, and improved type safety through shared Zod schemas and reduced API overhead.
Fastify's multipart support made streaming large CSV uploads straightforward and reliable. The UI maintains a clean, professional appearance using Shadcn and Tailwind.
This internal tool addresses real operational friction at the company. Employees can generate inventory PDFs, move special orders from paper to digital workflows, and assign target margins to product categories to enforce more consistent pricing.
Next.js, Fastify, Zod, Shadcn, Tailwind
View Repository on Github

Highly filterable charity data API built exclusively on U.S. government data
A TypeScript-based ingestion pipeline that streams large IRS CSV datasets using fast-csv, Node.js https, and pipeline. Node Transform streams are used to normalize and validate data as it flows, enabling efficient, low-memory processing at scale.
An Express-based API designed for deep filtering and sorting across every available IRS charity field. Zod and Prisma enforce strict validation and query safety. Authentication is handled via Clerk, and Redis is used for rate limiting.
The initial public release excludes geospatial queries, but the system is designed to support PostGIS-backed location queries with minimal changes.
Express, Prisma, Zod, Redis, Clerk, fast-csv, pg-copy-streams
Original version of the API is available on Github
The ingestion pipeline is private, but im happy to share details or provide a walkthrough if there is interest.

I think the iPod, subsequent apple products, and their UX is where I first became fascinated with software. I used to think software was only for MIT graduates. Fortunately, I met a software engineer who told me that, while software wasn't easy, anyone who truly wanted to learn could.
I started with a Udemy MERN course and was completely lost. My turning point was realizing SQL was conceptually similar to Excel — once that clicked, everything began to unfold from the database outward.

When I'm not coding, my wife and I are usually road-tripping or hiking. Our craziest trip was driving from North Carolina to New Mexico to hike five miles through snow, swim in a natural hot spring, hike 5 miles out, then drive home the next day. We take any chance we get to head west toward the mountains.
-