Recent Computer Science graduate from Oregon State University (B.S., GPA 3.94), looking for an entry-level software developer role. I'm moving into full-stack development from a background in content design and software instruction. I've taught JavaScript to 1,000+ students, so I care about writing code and explanations that other people can follow.
Languages: JavaScript · TypeScript · Python · Java · C · SQL Frontend: React · Next.js · Vue · Tailwind CSS Backend: Node.js · Express · Spring Boot Data: PostgreSQL · PGlite · MySQL · MariaDB · MongoDB · Supabase Practices: TDD · REST API design · CI/CD · Agile · Database schema design
Stageline: order fulfillment platform 🟡 In active development
A full-stack app for curbside pickup operations. Pickers get pick lists sorted by store location, staging bays are tracked by temperature zone, and managers get a live view of order status and orders at risk of missing their pickup window.
Inspired by the real fulfillment workflow I work in day to day. All data and layouts are fictional.
- Frontend and backend: Next.js (App Router) + TypeScript
- Data: PostgreSQL via PGlite, with Prisma and versioned migrations
- Auth: Auth.js with role-based access (picker, lead, manager)
- Quality: Vitest, Playwright, GitHub Actions CI
- Planning: built in public with issues, milestones, and PRs on a GitHub Project board
🔗 Repo · 🔗 Live demo, coming soon
Tally (in progress)
React PGlite Node.js Express
Building the core logic for viewer engagement, using game mechanics to get viewers more involved with commands and visible scores. Designed and normalized the PGlite schema for local data storage.
🔗 Repo
Foodable: social community platform
React Node.js Express Supabase Vercel
Built the social feed, including profile and share pages and like/follow functionality. Designed and normalized the Supabase schema and handled user authentication. Tested API endpoints with Postman and deployed to Vercel.
🔗 Repo
Unix Shell
C
A UNIX-like shell built from scratch that parses commands and runs them with fork() and exec(). It supports built-ins (cd, exit, status), I/O redirection, and foreground and background execution. It handles SIGINT and SIGTSTP and manages process lifecycles to prevent zombie processes. This one sits closer to the OS than the rest of my work, which helped me understand what frameworks abstract away.