About
I’ve spent my career making software trustworthy — first by testing it, then by building the teams that do.
I’ve worked in software quality since 2000. I started as a test engineer at EA and Origin Systems, spent the next stretch leading QA at Austin software companies, and since 2015 have worked as a senior and principal SDET. Along the way I’ve stood up QA departments where none existed and managed QA teams that supported up to 200 engineers.
Today I’m a Senior SDET at ServiceTitan, working on test architecture and AI-assisted test generation. That mix is the point: I can write the framework, and I can build the team, process and culture that keep quality from depending on any one person.
What I bring
-
QA from zero
Standing up a QA function where there wasn’t one: hiring, test strategy, release gates, and the habits that make quality part of how a team ships.
-
Leading testers
Managing and growing QA teams — setting priorities, developing people, and keeping QA a partner to engineering rather than a gate at the end.
-
Automation that lasts
Frameworks across web, mobile and API — Playwright, Python and Behave, Ruby and RSpec, Appium — wired into CI/CD with GitHub Actions and Jenkins, and built so teams can keep them running.
-
Quality you can measure
Dashboards and KPIs that show where quality actually stands — automation coverage, stability, defect escape rate, time to detect and fix — so release decisions run on data.
Experience
-
2025–now
Senior Software Engineer in Test
ServiceTitan · Remote
Prototyping AI-based test generation, building dashboards that track daily automation stability, and designing test architecture for faster, steadier runs. Mentoring the team toward an automation-first approach.
-
2023–2024
Career break
Family and community
Time as a full-time parent and volunteer, while going deep on Playwright, CI/CD, API automation and AI testing strategies, and contributing to open-source test automation.
-
2022–2023
Senior Software Development Engineer in Test
Myia Health · Remote
Designed a BDD framework in Playwright, Python and Behave, led an offshore team automating the Android app with Appium, and moved testing left into GitHub Actions. Cut test execution time by 30% and false positives by half.
-
2019–2022
Principal Software Development Engineer in Test
Cofense · Remote
Supervised automation engineers embedded across eight product teams. Led testing for a DynamoDB-to-PostgreSQL migration and for an API-only product’s move to a full single-page app, and standardized CI/CD pipelines across teams.
-
2015–2019
Senior Software Development Engineer in Test
VMware AirWatch
Led a global test automation framework supporting 30+ product teams and 200+ engineers. Built a test-environment management system in Rails with 99% uptime, and trained engineers on BDD.
-
2000–2015
From test engineer to QA manager
Austin, Texas
- QA Manager at Boxer, Bypass Mobile and Klink
- QA and Project Manager at Austin GeoModeling
- Lead Test Engineer at Appiction
- Co-founder of Behind the Board
- Test Engineer at Origin Systems and EA.com
B.S. in Management Information Systems, University of Phoenix. Certified Ethical Hacker (CEH).
On the side
Pick a tag to read about the project.
Mise
An AI meal planner that closes the loop from plan to pantry
Mise, from mise en place, plans a week of meals with Claude, then builds a shopping list that subtracts what’s already in the pantry and stays inside a budget. Marking groceries purchased restocks the pantry, and cooking a meal depletes it, so the next plan knows what’s on hand.
It’s built the way I’d want a team to build it: 86 API tests that roll back every database write, Playwright end-to-end tests that reach app states through test-only seed hooks instead of calling the model, and row-level security on every table.
- Python
- FastAPI
- Claude API
- Supabase
- Next.js
- Playwright
- Plan generationStructured tool-use output, prompt caching, validation with a repair retry
- Shopping and pantryBudget-aware lists, restock on purchase, depletion on cook
- Plan editingSwap, add and remove meals on any day of a plan
Slipstream
Browser automation built for AI agents
Slipstream is a Python browser-automation framework designed from the start for LLM and vision-based agents. It speaks WebDriver BiDi, the new bidirectional browser protocol, so an agent can watch the page through a live event stream instead of polling it.
- Python
- WebDriver BiDi
- Event-driven
- v0.1 “First Light”First working release over BiDi
- v0.2 “See the Page”Full event system, 40 passing unit tests
Pirate Central
A stat tracker for small-school Texas athletics
A web app for following high school sports, built for the Poth Pirates. It covers schools, teams at every grade level from varsity down to 7th grade, rosters, schedules, box scores and season stats for each player.
Every sport carries its own stat definitions, so one data model handles football box scores and volleyball hitting percentage alike. It ships seeded with 258 UIL 1A and 2A schools and generated rosters to test against.
- Python
- Flask
- SQLAlchemy
- Alembic
- Data modelSchools, teams, players, games and per-sport stats
- AccountsRegistration and login for the people entering stats
- Box scoresGame and team stat views, refactored in January 2025