About

I'm a product focused software engineer with a passion for building scalable, high-performance web applications . With experience at CLEAR, Amazon Web Services, and beyond, I've led major frontend and full-stack initiatives, from architecting frontend applications and optimizing legacy systems to enhancing accessibility and streamlining cloud infrastructure.

I primarily work in TypeScript siTypescript and specialize in React siReact with modern JavaScript tooling. I thrive on solving complex technical challenges with elegant, user-focused solutions.

When I'm not coding, you can find me dading 🍼, reading 📚, skiing ⛷️, playing Halo 🎮, or sleeping 🛌.

Links

Work

  • Now

    Senior Software Engineer

    at CLEAR

    On web platform team, working on the next generation of web experience for CLEAR members.

    • June 2023
  • Frontend Engineer II

    at Amazon Web Services

    Worked on the AWS Secrets Manager team, building out the AWS Secrets Manager console.

    • May 2022 - April 2023
  • Senior Software Engineer

    at Hired

    Primarily worked on the candidate experience team, building out the candidate experience side on Hired marketplace.

    • May 2020 - May 2022
  • Software Engineer

    at WinIt

    Rebuilt the web app, backend, and services that helps users fight their tickets.

    • July 2018 - May 2020

Projects

  • A local Bun-powered Model Context Protocol server that exposes read-only access to the Charles Schwab Trader and Market Data APIs, letting AI assistants and agents query account positions, orders, transactions, quotes, option chains, price history, market hours, and instruments in a structured way. Order placement, replacement, and cancellation are intentionally not exposed to keep blast radius minimal. Architecture is a single Bun process speaking the MCP stdio protocol, with the official MCP SDK and Zod schemas defining each tool; OAuth tokens are stored localy. Key tech: Bun, TypeScript, Model Context Protocol SDK, Zod, Biome, portless.

    • May 2026
    • github
  • A Bun-powered fullstack monorepo boilerplate pairing a Hono API with a Vite-built React 19 SPA, with DevContainer and Docker Compose configs for both dev and prod. Architecture uses Bun workspaces split into apps/ (frontend and backend services) and packages/ (shared code), with Pino structured logging on the server, shadcn + Tailwind CSS 4 on the client, Biome for lint/format, Storybook for component development, and Vitest + Playwright for unit and browser testing. Companion docs site lives at

    • March 2025
    • github
  • A personal Turborepo starter template for spinning up fullstack TypeScript apps, derived from Vercel's kitchen-sink example and extended with a tRPC client + Next.js app-directory setup. Architecture is a pnpm + Turbo monorepo: apps/ contains a Next.js main-app (with the tRPC server colocated in its route handlers), a standalone trpc-api package, and a Docusaurus doc-site; packages/ contains shared internal libraries for auth, logger, UI components, ESLint/Jest config, and tsconfigs. MSW is preconfigured for tRPC mocking in tests, with a GitHub Actions lint/test/build workflow and a render.yaml for Render deploys. Key tech: TypeScript, Turborepo, pnpm, Next.js, tRPC, React, Docusaurus, Jest, MSW, ESLint, Prettier.

    • August 2023
    • github
  • A SvelteKit landing page that cached and served the latest news from the Bing News API as an ad-free home page, the first project where SvelteKit was used end-to-end. Architecture pairs a SvelteKit frontend folder with an AWS services folder, both defined as infrastructure-as-code via SST (which compiles to AWS CDK under the hood) so the entire stack — Lambda functions, caches, and static hosting — deploys from a single sst.config.ts. Vitest covers the services. No longer running due to news API costs. Key tech: SvelteKit, TypeScript, SST, AWS CDK, AWS Lambda, Vitest.

    • January 2023
    • github
  • A Next.js fullstack starter that wires together authentication, a typed ORM, and a GraphQL stack into a single TypeScript codebase. Architecture uses the Next.js pages router with API routes hosting Apollo Server (via apollo-server-micro) at /api/graphql; next-auth handles sessions through @next-auth/prisma-adapter, with Prisma modeling users/accounts on top of PostgreSQL; the React side consumes the same schema with Apollo Client; styling is Tailwind CSS plus Headless UI and Heroicons. Predates the Next.js app directory. Key tech: Next.js, TypeScript, next-auth, Prisma, PostgreSQL, Apollo Server, Apollo Client, GraphQL, Tailwind CSS, Headless UI.

    • September 2021
    • github
  • A statically generated Gatsby portfolio site built in 2020, pulling its content from local MDX files (blog posts, projects, work experience) and live GitHub commit data from the GitHub GraphQL API at build time, then rendering a custom commit-history visualization with d3-scale. Architecture splits content from presentation: MDX + remark pipelines transform markdown to pages, Emotion and Theme UI handle styling, react-hook-form + yup + hCaptcha drive a spam-resistant contact form, and Netlify CMS provides editor authoring. The form/API backend is a separate TypeScript Serverless project; the site itself is deployed on Netlify. Key tech: Gatsby, TypeScript, React, MDX, Emotion, Theme UI, Netlify CMS, GitHub GraphQL API, d3-scale, react-hook-form, Netlify.

    • April 2020
    • github
  • A 100-line-limit code-challenge submission from a 2018 job interview: a single Express endpoint that takes a Halo gamertag as a query parameter, fetches that player's multiplayer stats from the Halo API, composites the numbers onto a base image with Jimp, and returns the resulting PNG in the HTTP response. Architecture is intentionally tiny: a single Express server with Jimp doing the image generation and Axios fetching upstream stats, plus a small webpack-bundled React client used to exercise the endpoint. Designed for Heroku deployment. Key tech: Node.js, Express, Jimp, Axios, React, Webpack, Heroku.

    • June 2018
    • github
  • The first iteration of a personal portfolio site from 2018, bootstrapped with Create React App and built around animated SVG transitions to give each section a distinctive feel. Architecture is a client-side React SPA with react-router for navigation, react-move + flubber + d3-ease for SVG path morphing and timeline-driven animations, web-animations-js polyfilling the WAAPI, marked for in-page markdown rendering, and react-ga for Google Analytics. Key tech: React, Create React App, react-router, react-move, flubber, d3-ease, web-animations-js, marked, react-ga.

    • April 2018
    • github

Tech

“I have not failed. I've just found 10,000 ways that won't work.” ― Thomas A. Edison