About
I've spent my career doing two things: building systems, and helping people understand them.
Before I embarked on a career in IT, I taught high school math and physics — General Math and Algebra II, plus Calculus, Statistics and Physics for upperclassmen. Many of my strongest students had me for two or three periods a day, which gave me the ability to really shape how they thought about problems over the school year. Around this time, programmable graphing calculators were disrupting how math was taught. Rather than resisting them, I leveraged them to free up time from drilling the students on manual computation in order to introduce more advanced concepts. Additionally, I made a deliberate choice to not collect daily assignments. Grades were based on demonstrated understanding, not busywork that could be copied. The incentive was to actually learn the material, not just to comply with assigned work. Later, students would come back from their first year of college and tell me that my approach was the reason they were prepared for the expectations of collegiate coursework. It wasn't the technology that made the difference. It was giving them the freedom to manage their own time and the expectation that they take ownership of their own learning.
After several years of teaching, I moved into software engineering, spending the bulk of my career working with enterprise Java at a single large financial services company. I started in public-facing web development, including early work on the company's first electronic signature solution. I went on to manage the production support team for that application. It was a pretty typical career arc until 2018, when I volunteered for the company's initial Cloud Foundry training as it stood up a private cloud platform. The vendor's original course was very generic and lacked the customizations needed for participants to be immediately productive in our environment. When my leadership learned of my background in education, I was asked to rebuild the course so that it was more impactful for our move to the private cloud. Within months of my first exposure to cloud computing, I was leading the onsite training sessions and would eventually rewrite the entire program for virtual delivery during the pandemic. Over nearly three years, I trained 280 engineers and stakeholders from across the US and India to quickly grasp cloud computing concepts and apply them in the private cloud environment. That work led to an organization-wide Quality Engineering & Enablement role, where I ran test-driven development workshops and Playwright/Karate workshops for more than 550 engineers combined, across both Java and .NET. Today I'm helping guide application teams through the adoption of a testing control framework that improves the quality, speed, and traceability of automated functional testing for over 700 applications. Because of my background in both engineering and education, when something new needs to scale to hundreds of engineers, I end up being the person who teaches it.
Twenty-five years of watching systems live, evolve, and get replaced taught me something I try to keep in mind during every design: you make the best decision you can with the information you have at the time, but it will still eventually become outdated. That's not a failure — it's just the nature of change. It's part of the reason why I don't feel too attached to the tools I already know.
These days, that same instinct, to take something complex, build it, then explain it clearly, is what's driving my current project. I've had a casual interest in genealogy for years, and it deepened considerably after inheriting multiple generations of family photo albums. Suddenly, I could put faces to names in my family tree. I started manually scanning and curating the photos that interested me most, but the collection is larger than manual curation can realistically handle. I was also an early adopter of ChatGPT and have gone on to work with Copilot, Gemini, and Claude — both out of personal interest and because my employer expects engineers to actively apply AI tooling to real work. I think AI, and my ability to use it, has matured to the point where it can meaningfully help scan, describe, and organize the collection using facial recognition, at a scale manual curation never could. So I'm building a pipeline for it — OCR, vision models, vector search, and real systems design, running on a homelab of repurposed hardware, documented as I go → read the series.
There's a pattern in my own career I've come to trust: I keep landing in things I wasn't originally trained for, and figuring them out anyway. I moved into IT with a computer science minor and no web development background — and was hired to build web applications. I joined an electronic signature project knowing nothing about the domain, and went on to lead its production support team. I walked into cloud computing training with limited experience of my own, and within months, was teaching it to engineers across the enterprise. AI is the same pattern, one more time. It's already reshaping how software gets built and how companies operate, and it isn't slowing down — I'm not approaching that shift as a stranger to it.
That combination of real depth in enterprise software, a documented history of teaching people through disruptive technical change, and formal training as an educator, isn't a combination often seen. I don't have a developer relations title, but I've spent a career doing the part of the job that matters most: taking something complex and making it click for the person who needs to use it. If that's the kind of person you're looking for, let's talk.
This site is where I write up what I'm building as I build it.
Currently building
The AI-enriched family photo archive pipeline — see the Projects page for a current snapshot.