About Me
Sharing what I've learned building reliable software and automation
My journey into software engineering began while working as an electronics test technician at Spectra Logic in Boulder, Colorado. I worked alongside embedded software engineers, testing the electronics that controlled robotic tape libraries. Watching these engineers work sparked my curiosity about programming, so I bought a few books on C and started teaching myself.
A few months later, I got my first opportunity to contribute to a real software project. The engineers were developing software to test HP DAT drives, and I was tasked with building the graphical user interface. I created a Windows-like interface complete with menus, buttons, text fields, a progress bar, and even my own mouse routines. Looking back, it was a relatively small contribution to a much larger engineering effort, but to me, it was incredibly exciting. I was hooked!
One day, I spotted a book titled Java on an engineer's desk. Curious, I asked him about it. He explained that Java was a new object-oriented programming language developed by Sun Microsystems. I didn't know much about object-oriented programming at the time, but I was intrigued. When I discovered that Sun Microsystems had a large campus just eight miles from my home, I made up my mind: someday, I was going to work there.
I immersed myself in learning Java, HTML, CSS, JavaScript, and Unix. I became so enthusiastic about web development that I eventually quit my job and started a small web design business from home. It was an exciting time to be learning, experimenting, and discovering what was possible with the web.
Then, through a rather unexpected series of events, a contractor working on my basement mentioned that his girlfriend worked at Sun Microsystems. He offered to hand-deliver my resume to her. That connection helped me get my foot in the door, and I eventually landed my first professional software engineering job at Sun, developing Java-based enterprise web applications. It was a dream come true.
My interest in software quality began to take shape when I picked up a book on Extreme Programming. I was introduced to ideas like Test-Driven Development, unit testing, and Continuous Integration. I started experimenting with JUnit and CruiseControl and discovered that I genuinely enjoyed writing automated tests, sometimes as much as writing the application code itself.
That interest eventually grew into a passion for quality engineering. While working with a development team at McKesson, I had the opportunity to introduce better unit testing practices, mocking techniques, and design principles that made software easier to test. That experience reinforced something I strongly believe today: software quality isn't just about finding defects. It's about designing and building software in ways that make quality a natural part of the development process.
Throughout my career, I've worked across software development, test automation, and DevOps, and my philosophy has remained consistent. A successful engineering team needs a strong development lifecycle from the beginning, with automated testing, CI/CD, rapid feedback, and meaningful metrics built into the process rather than added at the end. I enjoy helping teams adopt these practices, solve challenging engineering problems, and deliver reliable software with confidence.
What excites me most about software engineering is that there's always something new to discover. Whether I'm exploring new programming languages, experimenting with AI-assisted development, building applications with modern frameworks, or designing automated testing solutions, I genuinely enjoy the process of learning and creating. I've always taken responsibility for my own professional growth, investing my time and resources into developing new skills and sharing what I've learned with others.
My biggest challenge? There simply aren't enough hours in the day to learn everything I want to learn and build!
What I Write About
Practical guidance drawn from real projects
Test Automation Frameworks
Designing maintainable UI and end-to-end frameworks with Playwright, Selenium, and Serenity BDD
Test Environments & Observability
Docker, Kubernetes, Ansible, and Elasticsearch/Kibana quality dashboards
Latest Articles
New articles and tutorials are on the way
Modernizing a Fragile UI Test Suite with Playwright
How reusable patterns improve reliability, speed, and CI/CD readiness.
Infrastructure Testing with Pytest and Paramiko
Validating services and data flows on remote hosts over SSH.
Quality Dashboards with Elasticsearch and Kibana
Aggregating results across frameworks to expose failure trends and release quality.
Contact
Questions, feedback, or topic suggestions are welcome