Community Resource Finder
Web app, Python
A free web app that helps people find food, health care, mental health support, legal help, housing, utility assistance, jobs and more. Pick a state and a need, then filter by cost (free, sliding scale or low cost), search, and switch between a list and a map view. It has resources in all 50 states and D.C., needs no sign-up and collects no personal details, and links are re-checked daily so people don't hit dead ends. It works in any web browser and can also be installed as a web app on a phone or computer.
I created the entire project with the help of Claude Code. Built with Python and Flask (served with Gunicorn), PostgreSQL, HTML, CSS and JavaScript, and hosted on Render.
View live siteScheduling Central
Web app, TypeScript
A full-stack app that merges Google, iCloud and Canvas calendars, work shifts and a shuttle timetable into one daily view, with an iPhone widget. I wrote a calendar engine that handles recurring events, time zones and daylight saving time on a UTC server.
Built and deployed with TypeScript and Node.js. Weekly work-schedule imports are automated with Google Apps Script, which turns a shared spreadsheet into a live shift feed. Private data is protected with server-side secrets and a passcode, the app works offline as a PWA, and 29 automated tests run in Vitest.
View live appPawPal+
Web app, Python
A pet care planner that helps busy owners stay consistent. Add pets and care tasks like walks, feeding, meds and grooming, and PawPal+ builds a daily schedule around your available time and each task's priority, then explains why it chose that plan. Recurring tasks create their next occurrence automatically, tasks can be filtered and sorted several ways, and the scheduler warns about time overlaps, impossible deadlines and circular dependencies instead of failing.
Built with Python and Streamlit using an object-oriented design planned in UML first, with a greedy O(n log n) scheduler and pytest tests for the core scheduling behavior.
View live appRisk Dashboard
Web app, Accenture
An interactive web application that visualizes client risk profiles so stakeholders can act on data-driven intelligence. It helped reduce client risk oversights by 40%. It was fed by web scrapers and ingestion scripts I wrote to collect unstructured public and social media data.
Built with HTML, CSS and Python during my software engineering apprenticeship at Accenture.
Swift Game
Apple internship
A game built during my summer as a software development intern at Apple. I led the UI and UX design, and creative interface decisions improved user engagement by 25%. It was selected as a finalist in the DC Can Code High School Showcase.
Built with Swift, SpriteKit and Core Graphics.
LaunchU
Career analytics app, Fall 2026
After Amazon's AI teaching, research and immersion-day poster sessions, I noticed that early-career students had no clear way to act on labor-market data, so I built a career-analytics app in AWS QuickSight to close that gap. It translates hiring, skills and internship research into an easy-to-follow decision guide, so a student with no data background can see where demand is growing and what to do next.
Built with AWS QuickSight.
Sorting Algorithm Identifier
Python tool, Spring 2026
A benchmarking tool that runs and times QuickSort, MergeSort and BubbleSort across different input sizes and compares runtime and memory use. A suite of targeted test cases then works backwards: given the performance profile of an unknown algorithm, it classifies which sort produced it.
Built with Python. Automates timing and memory profiling and generates side-by-side comparison reports.
Absurdle Clone
Team project, Python, Fall 2024
I directed a team project to build a Python clone of Absurdle, a word game that fights back. Its adversarial word-selection algorithm keeps narrowing toward whichever answer leaves the largest set of candidates alive each turn.
Built with Python and an object-oriented design: game logic, scoring and duplicate-guess handling are separate, reusable components. Procedural word-pool generation and optimized data structures reduce memory use.