Software Engineering · Lead SDET & Test Architect · Systems Integration

I build software and make sure it works — from the first design through production.

15+ years in software. I start by understanding the product: who uses it, what they need to accomplish, and how that supports the business. I combine hands-on engineering with deep test architecture to turn that understanding into software we can verify, deliver, and operate — from cloud applications to robot software.

Download resume (PDF)

What I bring

I connect product purpose, people, and engineering. Understanding the business and the people using the software shapes what I build, how I test it, and how I get it into use.

Product & business understanding

I work to understand the whole product: its primary users, their workflows, the business objectives behind it, and the job the software needs to do. I use that context to question assumptions, clarify requirements, and make engineering tradeoffs that support the intended outcome.

Stakeholder alignment & delivery

I connect conversations across product, engineering, and the people who depend on what we ship. I make goals, constraints, and risks clear, turn them into shared acceptance criteria, and carry that context through testing and release. Delivery means people can use the software to accomplish what they need.

Lead SDET & Test Architect

Quality starts before the code is written. I bring testability and failure modes into design, build automation into development, and carry verification through integration, release, and production. I build pytest/Playwright frameworks, visual regression checks with Applitools, and tests that verify packages as external consumers install them. I mentor engineers in testing so we can tell whether the system actually works.

Applications & integration

Full-stack development, cloud services, and OAuth/OIDC authentication. I connect the pieces, understand how they fail together, and stay involved after the code ships.

Robot software & reliability

Python and TypeScript robot-interaction clients, with test architecture across on-robot systems, desktop applications, and HTTP APIs. I build protocol analysis and simulation services, and extend robot diagnostics with serial transcripts and log archives. I work across these boundaries to verify behavior and diagnose failures.

Platform & production delivery

Build and release pipelines, CI/CD, monitoring, and developer tooling, including OIDC-based npm publishing without long-lived publish tokens. I work hands-on with engineers across teams to diagnose issues and get software into use.

Selected engineering work

Examples from my work at Opentrons, spanning lab robotics and cloud applications.

Cloud applications & identity

Protocol Library and Opentrons Accounts need application ownership from architecture through operation. I build and operate these services and own OAuth/OIDC authentication and authorization across web products.

Explore Protocol Library

Test architecture & robot software delivery

Robot software spans on-robot systems, desktop applications, and HTTP APIs. I architect test automation across that stack and built frameworks that shortened release cycles. I own the pipelines that deliver two robot operating systems and the application suite, and built agentic tooling that enables colleagues with less technical experience to run the release process.

Public Opentrons contributions

AI product delivery & infrastructure

I maintain Opentrons AI v1, including model/API upgrades, evaluations, and retrieval-augmented generation (RAG). I implemented bounded, multi-step LLM tool execution for protocol generation and simulation, and improved retrieval context with version-pinned API docs, curated routing metadata, and CI coverage checks. I provide the infrastructure and application framework using AWS ECS, Amazon Bedrock, and direct model APIs.

LLM tool orchestration implementation

20+ years across four lanes

Consulting, leadership, test architecture, and build/release/platform work overlap across the timeline. The bars show where each lane shows up, not exclusive job titles.

2003 to 2026
Career lanes from 2003 to 2026 2003 2008 2013 2018 2023 2026 Consulting Leadership Test architecture Build & Release / platform

Experience

  1. Lead Software Engineer and Build & Release Manager

    Opentrons Labworks Feb 2024 to present

    Added build and release ownership in February 2024 while continuing the engineering role below. Hands-on pipelines and releases for two robot operating systems and the application suite; full-stack Opentrons AI features and OAuth/OIDC authentication.

  2. Senior Developer and SDET

    Opentrons Labworks Jun 2021 to present

    Architect test automation across on-robot systems, desktop applications, and HTTP APIs; mentor engineers in testing. Build and operate Protocol Library and Opentrons Accounts, with GitHub Actions/AWS CI/CD and Datadog monitoring. Test frameworks shortened robot software release cycles.

  3. Test Automation Architect

    TEKsystems Aug 2019 to Jun 2021

    Practice architect for continuous testing. Led pytest automation for a gaming engine team of ten and browser-based UAT in Azure DevOps for energy-sector .com work with a team of five.

  4. Software Developer, Test III

    Rackspace Nov 2016 to Aug 2019

    Lead SDET on a dedicated-device web portal across customer-facing apps, ETL, and APIs. Python, Java, TypeScript, Jenkins, OpenShift, Docker, GraphQL, Elasticsearch.

  5. Test Architect / Lead Automation Engineer

    Xpanxion 2009–2012 and 2013–2016

    Hands-on QA strategy and automation consulting on long-term engagements. Built frameworks for web, API, ETL, mobile, and desktop; BDD/TDD with Cucumber, JUnit, TestNG; performance work with JMeter and LoadRunner.

  6. Epiq Systems, Standard Beverage, Target, independent IT work

    Earlier roles 2003 to 2013

    Automation in C# and Selenium, QA leadership for enterprise web and ETL, retail operations leadership, and nonprofit web and AV implementation. 20+ years across engineering, consulting, and operations.

Public work at Opentrons

A periodically refreshed snapshot of my pull requests across public Opentrons repositories. Work in private repos (Protocol Library, Opentrons AI) isn't listed here — see Experience for that.

  1. fix(analyses-snapshot-testing): cap chunk analysis concurrency in CI

    opentrons Closed Oct 2026

  2. feat(ai-server): upgrade to Claude Sonnet 5.5 (AUTH-3480)

    opentrons Merged Oct 2026

  3. fix(ai-server): sanitize Google Sheets feedback with nh3 (AUTH-3448)

    opentrons Merged Sep 2026

  4. fix(ai-server): omit exception details from 500 responses (AUTH-3447)

    opentrons Merged Sep 2026

  5. fix(ai-server): remove unauthenticated /api/timeout (AUTH-3446)

    opentrons Merged Sep 2026

  6. AUTH-3433: Golden Studio harness POC (informational, do not merge)

    opentrons Open Oct 2026

  7. fix(ai-server): AUTH-3347 Sonnet 5 tool loop and prompt modernization

    opentrons Merged Sep 2026

  8. fix(auth): keep user write scopes and gate requireAdminCreds at request time

    opentrons Closed Aug 2026

  9. chore(step-generation): revert/reapply setShakeSpeed for 26.6.0 tag point

    opentrons-ot2 Closed Aug 2026

  10. feat(js-package-testing): Flex Smoke 2.27 fixture + contain playback controls

    opentrons Closed Oct 2026

View all on GitHub →

AI product delivery & engineering practice

I maintain Opentrons AI v1: model and API upgrades, evaluations, retrieval-augmented generation (RAG), and application reliability. I implemented bounded LLM tool loops with regression tests for chained and parallel tool calls. For retrieval, I pinned API documentation versions, curated document-routing context, and added CI checks for missing coverage. The infrastructure and application framework include AWS ECS, Amazon Bedrock, and direct model APIs.

I built agentic tooling that makes our robot software and operating-system release pipelines accessible to a broader team. It enables colleagues with less technical experience to conduct releases, so the process can be delegated beyond the engineers who maintain the pipelines.

I build reusable agent skills for protocol authoring and verification. My public flex-talk project pairs a typed TypeScript robot SDK with portable agent tools for discovery, hardware inspection, image capture, and protocol execution. I also built a FastAPI service for asynchronous protocol analysis and simulation in version-specific Python environments. Code review, test automation, and production monitoring remain part of how I build and deliver software.

Let’s talk

Selectively open to senior, staff, and principal individual-contributor roles in software, test architecture, systems integration, platform, and customer-facing engineering. Based in Lawrence, Kansas; interested in remote work with approximately 15–40% travel.