AI Applications & Tooling · Lead SDET & Test Architect · Systems Integration

I build AI applications and tooling that work in the real world.

I’m a lead software developer on the team building Opentrons AI v2. I also build robot-interaction tools, cloud applications, and agentic workflows. With 15+ years in software, I start with the people using a product, their workflows, and the business behind it. I bring deep test architecture to making systems work from design through production, and I’m especially drawn to hands-on, customer-facing work where AI meets the physical world.

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.

Customer collaboration & implementation

My consulting background shapes how I work: understand the workflow, clarify constraints, and stay hands-on through implementation and troubleshooting. I’m eager to work directly with customer teams, become a technical expert in the product they rely on, and connect what happens in the field with the hardware and software teams building it.

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.

AI applications & integration

Hands-on AI application development, full-stack engineering, cloud services, and OAuth/OIDC authentication. I’m a lead software developer on Opentrons AI v2 and build AI tooling for robot interaction and software delivery. 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 applications, tooling & infrastructure

I’m a lead software developer on the team building Opentrons AI v2. I also maintain Opentrons AI v1, including model/API upgrades, evaluations, and retrieval-augmented generation (RAG). In v1, 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 its 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

    Lead software developer on the team building Opentrons AI v2; maintain Opentrons AI v1 and own OAuth/OIDC authentication. Added build and release ownership in February 2024 while continuing the engineering role below, with hands-on pipelines and releases for two robot operating systems and the application suite.

  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. test(analyses-snapshot-testing): cover rear partial column 8ch maps

    opentrons Open Nov 2026

  2. fix(ai-server): pin weave and wandb so tracing can initialize

    opentrons Merged Oct 2026

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

    opentrons Closed Oct 2026

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

    opentrons Merged Oct 2026

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

    opentrons Merged Sep 2026

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

    opentrons Merged Sep 2026

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

    opentrons Merged Sep 2026

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

    opentrons Open Oct 2026

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

    opentrons Merged Sep 2026

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

    opentrons Closed Aug 2026

View all on GitHub →

AI that connects to the physical world

I build AI applications and tooling, including as a lead software developer on the team building Opentrons AI v2. I’m especially interested in AI that helps people do work in the physical world. I also maintain Opentrons AI v1, where I implemented bounded LLM tool execution for lab protocol generation and simulation. My v1 work includes model and API upgrades, evaluations, retrieval-augmented generation (RAG), regression tests, version-pinned API documentation, and CI coverage checks, using 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, especially customer-facing implementation, forward-deployed, field applications, and solutions engineering where AI, software, and physical systems meet. I’m drawn to working alongside customers: integrating a product into their workflow, troubleshooting across hardware and software, and helping their teams use it well. Based in Lawrence, Kansas; interested in remote work with approximately 15–40% travel.