I'm a dentist based in North Carolina with a passion for helping patients reach their oral health goals. Outside the clinic, I build side projects with JavaScript, Python, and Swift—tools designed to make life a little easier for me and my colleagues.

I graduated from the UNC Adams School of Dentistry in 2023 and completed an Advanced Education in General Dentistry residency at the Fayetteville VA Medical Center. I now work at the Fayetteville VA, where I care for a diverse patient population and have the privilege of mentoring dental residents. I'm passionate about delivering high-quality, patient-centered care and improving clinical systems through thoughtful use of technology. In my free time, I volunteer supervising dental students at free dental clinics and enjoy coding projects that help streamline workflows for providers and patients alike.
Here are some of my recent projects that showcase my skills and experience in full-stack development.
Ziplines is a real-time queue management system designed to improve how dental students receive faculty help in the simulation lab. Originally built as a side project, it was later officially rebuilt and adopted by the UNC Adams School of Dentistry to better support student workflow. Instead of sitting idle with their hands raised, students use their phones to join a digital queue specific to their assigned group. They immediately see their place in line, so they can continue working productively while they wait. Large-screen TVs in the lab display the next student's name and bench number in bold, making it easy for instructors to quickly identify who's next. Once a student is helped, they can leave the queue with a single tap—keeping the workflow smooth and efficient. Under the hood, Ziplines is built with Fastify, WebSockets, and Vue for fast, real-time interaction. It uses local storage backed by SQLite to persist queue state across sessions and devices, and leverages Zod for robust data validation, ensuring queue data remains consistent and safe across the system.
To streamline the supply ordering process at the VA, I built a lightweight tool that helps staff quickly navigate part numbers for implant components. It started with a Python script that parses and structures product data from Dentsply Sirona and Nobel Biocare catalogs into a clean JSON format. The front end, built with Svelte, provides an intuitive, searchable interface to find parts and assemble an order list that can be easily copy/pasted into VA supply systems. To accelerate reorders, it includes a mobile-friendly OCR scanner powered by Tesseract.js. Staff simply visit a secure URL on their phone, scan product boxes using the camera, and the tool automatically extracts reference numbers. Using Supabase Channels, scanned items appear instantly on the desktop—turning the phone into a live scanner.
EPAs is a searchable online reference guide designed for the UNC Adams School of Dentistry to help faculty calibrate assessments of dental students chairside. Built to be fully responsive and mobile-friendly, EPAs ensures quick access to standardized evaluation rubrics anytime, anywhere. The site's content is statically generated using Nextra, with all rubrics maintained as Markdown files. This approach allows non-technical staff to easily update and edit assessment criteria as standards evolve—without needing programming skills. EPAs simplifies faculty calibration by providing a consistent, accessible resource that keeps everyone aligned on expectations.
RoundBill is a clean, lightweight tip calculator designed to make dining out and bill-splitting easier. Originally built as a side project, it's a web app developed using React and Next.js that helps you calculate tips at different percentages—while rounding your total to the nearest $0.25 for simplicity. Just enter your bill amount, and RoundBill instantly suggests multiple tip options that bring the final total to a clean, easy-to-split number. Whether you're tipping solo or dividing the bill with friends, it takes the math out of the moment. A SwiftUI version for Apple Watch was also built to provide on-the-go functionality from your wrist, though it was never publicly released.
ZipLog is a versatile iOS app designed to help students in medical, dental, pharmacy, and nursing schools track their experiences and activities. Built using Swift and SwiftUI, it's the first app I developed after teaching myself these technologies. ZipLog empowers prospective pre-health students to log research, community service, shadowing, and other important experiences, making it easier to compile accurate records for program applications. All data is securely stored locally on each user's device and seamlessly synced across their Apple devices via iCloud, ensuring privacy and accessibility.
The Student Health Action Coalition (SHAC) dental clinic provides free dental care to underserved populations, staffed by UNC dental students. To reduce administrative workload, I developed Automate IND, a Python-based tool that cuts the time spent compiling volunteer information each week by 80%. As part of the UNC ACT curriculum, students earn volunteer credit for attending SHAC only when their participation data is submitted accurately to the IND office. Automate IND streamlines this process by parsing weekly sign-up data from Signup Genius, cross-referencing volunteer names with an official roster to retrieve student IDs, and automatically populating the required PDF forms with a table of names and IDs to track volunteer hours efficiently.
ASOD Scheduling is a patient scheduling tool developed through months of collaboration aimed at dramatically streamlining the scheduling process. Built with React and Cloud Functions for Firebase, the system reduces scheduling time by up to 90%. ASOD Scheduling integrates calendar data from Outlook and overlays it into a unified calendar view that highlights morning and afternoon availability. It also imports availability from specialty clinics using Excel spreadsheets, providing a comprehensive snapshot of open appointment slots. Designed from the ground up for speed and efficiency, the platform enables students to schedule patients quickly and accurately with minimal effort.
ACE Thresholds Tracker is a Chrome Extension built with React that fills a crucial gap for dental students tracking their clinical readiness. It locally scrapes data from hundreds of Assessments of Clinical Encounters (ACE) forms—ensuring all data processing stays private and secure on the user's device. ACE forms assess students' practice readiness by evaluating multiple clinical experiences across several evaluators over time. However, existing school reports lacked clarity and detail on progress toward graduation requirements. ACE Thresholds Tracker provides an intuitive, detailed dashboard that helps students easily monitor their performance metrics and track progression toward key thresholds. Additionally, it enables users to compare their progress against classmates, offering valuable insight into their standing within the cohort.
I work with a variety of technologies to build robust and scalable applications.
I'm always interested in new opportunities and exciting projects. Let's discuss how we can bring your ideas to life.