I'm studying Computer Science at the University of Michigan, and what I like most about this field is turning a real problem into something people actually end up using. This past summer I was one of three engineers building status70's pharmacy onboarding platform from the ground up. Before that, two of my friends and I built AutoMester — a course-placement and attendance system that Woodward Academy bought outright, after a check-in scanner prototype we built for it won Project Invent's Moonshot Award — along with Matchmaker, a survey-matching platform, and TaskDeck, a native macOS app that merges Google Tasks and Google Calendar into one board.
In the summer of 2026, I was one of three engineers building status70's pharmacy onboarding platform from scratch — a tool that lets independent pharmacies complete onboarding forms without the process feeling bureaucratic, and gives status70's admin team a fast way to review submissions. I worked across the stack: React, Next.js, and TypeScript on the frontend; a type-safe tRPC API layer over Prisma and PostgreSQL on the backend, with Better Auth handling authentication. I translated Figma designs into responsive UI and built out the onboarding and questionnaire workflows themselves — the app deploys on Railway, with AWS SES handling transactional email.
AutoMester started as a fix for a broken process: every year, Woodward's two-week Maymester program had students rank session preferences through Google Forms, and admin sorted hundreds of responses by hand — a process that used to eat two weeks and now takes under an hour, saving administrators 40+ hours a year. A team of three of us built the placement engine in Flask and SQLAlchemy, then expanded it into a full management web app with CSV import for rosters, hashed-password logins, and a dashboard admins use to track who's placed and who's still unassigned. We also prototyped a check-in scanner for it, which won Project Invent's Moonshot Award. Woodward Academy bought the system outright, and every Maymester since has run on it — We later built a second version modeled after a university-style course registration system, which is still what the school uses today.
A Valentine's Day matchmaker I built with two teammates for the whole school: students fill out a short survey, and a two-stage algorithm first filters candidates by mutual grade and gender preference, then ranks the survivors by Euclidean-distance similarity across 21 survey responses. Admins get a session-authenticated dashboard with participant search, live analytics on submissions, one-click CSV export of the raw data, and a button that emails every student their ranked matches at once. The intake form blocks duplicate submissions by email, so nobody can flood their own results.
An automated pipeline for Woodward Athletics: a Python scraper built on BeautifulSoup pulls live rosters and stats off MaxPreps and writes them into a normalized SQLite database — separate tables for students, athletes, sports, seasons, and stats, linked by foreign keys, with duplicate students skipped automatically on import. The results render on a Flask/HTML/CSS front end. I also worked football games in person as the team's statistician, logging offensive stats live in the stands.
Built to track a canned food drive running across several Atlanta-area schools at once. The site pulls live donation numbers straight from a Google Sheet via the Sheets API — no custom backend — and turns it into a leaderboard plus bar and doughnut charts broken down by school and by grade. Making the numbers visible and competitive in real time was the whole point: it's what drove up participation.
TaskDeck is a 25,000+ line, offline-first macOS app that merges Google Tasks and Google Calendar into one canvas. Tasks live on a Kanban-style drag-and-drop board; a custom TimeBlockService links them to real Calendar events, so dragging a task onto the calendar turns it into an event and dragging it back turns it into a task again. Everything is cached locally through an actor-isolated GRDB persistence layer, with a durable outbox queue reconciling changes against Google's APIs in the background and Reachability-driven retry/backoff so the app stays usable offline. It supports multiple Google accounts signed in at once, and board-only state — column layout, tags, colors — optionally syncs across devices through Google Drive's app-data folder, no server involved.
Built with plain HTML, CSS, and JavaScript (Tailwind via CDN for styling). One page — a typing hero, a sidebar that reveals labels on hover, and project popups with hand-rolled page-transition animations, no framework underneath.