Software Engineer & Data Science
Building automation, data workflows, and interactive web tools, where engineering meets clarity and systems thinking.
Building automation, data workflows, and interactive web tools, where engineering meets clarity and systems thinking.
Three intersecting focus areas that define my work.
I design Python scripts and workflows that handle data at scale, from web scraping and quality gates to bulk migrations that reduce manual work from days to minutes.
At Leidos, I built load-testing and pre-deploy automation. At Wade Clark Mulcahy, I automated data entry for 10,000+ case matters and designed SQL-driven reporting systems.
The goal: reliable systems that free humans to focus on what matters.
I build full-stack web experiences from custom authentication and multi-user dashboards to interactive visualizations that make data legible.
I specialize in React frontends paired with backend systems that handle real-time performance metrics, nutrition tracking, and music theory analysis.
Clean interfaces, responsive design, and reliable performance are non-negotiable.
I maintain and modernize research software, migrating Digital DuChemin from Python 2→3 and Django 1→4, updating rendering pipelines, containerizing systems, and building Streamlit widgets for musicology researchers.
This work sits at the intersection of technical rigor and human-centered design, turning legacy code into maintainable, documented systems.I maintain and modernize research software—migrating Digital DuChemin from Python 2→3 and Django 1→4, updating rendering pipelines, containerizing systems, and building Streamlit widgets for musicology researchers. This work sits at the intersection of technical rigor and human-centered design, turning legacy code into maintainable, documented systems.
A selection of projects that represent my approach to engineering.
Multi-user fitness platform with custom workout logging, performance analytics, and personalized recommendations.
A full-stack web application where users can log workouts, track custom exercises, view nutrition + supplement data, and monitor physical metrics over time. Real-time dashboards visualize performance progress; the card-based UI emphasizes clarity and mobile usability.
Demonstrates full-stack capability: authentication, real-time data sync, responsive design, and data visualization, all in service of user clarity and engagement.
React-based music notation analyzer for researchers and musicologists.
An interactive app that highlights intervals and passages within MEI (Music Encoding Initiative) scores using Expressive Marking Annotations (EMA). Researchers can click to see harmonic relationships, export findings, and share annotated scores via addressable URLs.
Shows deep domain expertise at the intersection of music + software; demonstrates React proficiency for visualization and academic research tools. This work powers active musicology research.
Statistical music data analytics pipeline with advanced visualization.
A Python-driven data cleaning and analysis pipeline that produces centroid summaries and geometric models (plane-of-best-fit analysis, distance-to-plane calculations) for harmonic interval research. Outputs formatted as TSVs and interactive Plotly visualizations.
Combines rigorous statistical modeling (scikit-learn), clean data workflows, and domain expertise. Shows comfort with both research-grade data analysis and communicating findings visually.
Deep Q-Learning agent trained to play Snake across environments of increasing complexity, evaluating generalization under novel conditions.Desktop simulation tool for exploring electoral outcomes across state-level scenarios.
A Deep Q-Network (DQN) agent that learns to play Snake using
reinforcement learning. My team and I implemented and compared linear and convolutional Q-network architectures, trained agents in environments with static and moving obstacles, and evaluated performance using score, survival time, and number of moves.A GUI application that lets users input state-level party preferences and run simulations to explore how different regional shifts affect national election outcomes. Built with Tkinter for rapid prototyping and accessibility.
Demonstrates applied machine learning beyond toy examples,
including architectural tradeoffs, model stability, and
generalization. Results showed that simpler linear models
outperformed convolutional networks given structured state
representations.
Languages, frameworks, and tools I work with regularly.
Built Python-based testing, pre-deployment automation, and load-testing scripts. Implemented web scraping pipelines for data collection. Emphasized reliability and test coverage.
Owned full-stack web redesign (+40% traffic lift); built SQL reporting systems for 10,000+ case matters; automated data entry workflows that reduced manual work to near-zero; engineered bulk migration scripts.
Maintained and modernized legacy research software; migrated Digital DuChemin from Python 2→3 and Django 1→4; containerized systems; built Streamlit SPARQL query widget. Strong emphasis on documentation and user-facing clarity.
I was a teaching assistant for the Encoding Music course and Data Science. Built learning experiences, mentored students through technical projects, documented complex concepts clearly. I believe that strong teaching reflects strong systems thinking.
I believe great software reflects clear thinking. That means: obsessive attention to documentation and onboarding; clean, purposeful interfaces that respect user time; reliability through quality gates and automated testing; and performance awareness from day one. I treat systems like products—maintainable, understandable, and built to last. Teaching has sharpened this mindset: if I can't explain it clearly, the design isn't finished.