I started in support. Then I started testing and developing.
I started on a service desk in 2016. By 2018, I was writing C#
integration tests and working with database restores and deployments.
Later roles took me into Ruby and Python. Most of my current framework
work is in TypeScript, with Buildkite running the integration pipelines.
I studied computer science at DePaul, with a concentration in software
engineering. Outside of work, I wrote BAR-TABS in Swift and kept it
in the App Store from 2018 through 2024. That meant owning the product,
not just one part of its codebase.
02 Experience
Work history
The code, systems, and products I’ve worked on.
Sep 2025 — PresentInvoca
Software Engineer in Test II
I work on the shared framework and integration pipelines behind
Invoca’s automated coverage. The product connects marketing and
contact center data with revenue.
Build and extend Mosaic, a shared TypeScript testing framework consumed by other teams across Invoca
Write UI and API automation against the platform
Work directly in Buildkite integration pipelines to keep regression feedback fast
Use Claude Code and Cursor day to day, including agent workflows for framework and test development
Claude Code
Agent workflows
Framework development
Mosaic
Buildkite
TypeScript
Cursor AI
Sep 2022 — Sep 2025Benchmark Analytics
Senior QA Engineer
Promoted from QA Engineer · Sep 2022 — Apr 2024
Built and maintained API and UI automation suites in Postman, Cypress, and Rest Assured
Implemented CI/CD pipelines for regression automation using GitLab runners
Built performance metrics dashboards in Datadog backed by Rest Assured
Ran release testing and handled promotion into client-facing environments
Maintained test cases for new features and regression coverage in TestRail
Leaned on Claude and GitHub Copilot while writing the implementation
Cypress
Rest Assured
Postman
GitLab CI
Datadog
Sep 2021 — Aug 2022The Coda Collection
QA Engineer
I worked on a music platform with subscription video on Amazon Prime
Channels and a separate editorial site.
Developed component-driven unit and end-to-end tests with TypeScript, Jest, and GraphQL mocks
Started the automated mobile test suite from scratch with Appium and Java
Used GitHub Actions for QA environment deployments and end-to-end suite runs
Debugged web and native mobile apps through Contentful, Proxyman, Postman, and Cypress
Ran release candidate regression across the native mobile applications
TypeScript
Jest
GraphQL
Appium
GitHub Actions
Aug 2019 — Sep 2021Invoca · DialogTech
Release Engineer I · QA Automation & Release Engineer
Joined as QA Engineer at DialogTech, acquired by Invoca in 2021
Implemented UI and API automated tests with Ruby, Capybara, Airborne, and RSpec
Created an internal GUI tool in Python that pulls, checks, and deploys code
Merged and deployed code to staging and production environments
Refactored the codebase so legacy and new automated tests failed safely
Set up visual testing with Applitools and kept it running
Reviewed code with onsite and offshore teams, and mentored QA engineers moving into automation
Ruby
RSpec
Capybara
Python
AWS
Applitools
Feb 2019 — Jul 2019SA Ignite
QA Engineer
Stood up the first Selenium suite and tuned the selectors so dynamic elements stopped flaking
Queried databases with PostgreSQL and SSMS to verify and manipulate data
Created test cases and plans from acceptance criteria and exploratory testing in Practitest
Ran manual regression and new-feature testing ahead of releases
Selenium
PostgreSQL
SSMS
Jira
May 2016 — Feb 2019Coyote Logistics
Quality Assurance Analyst
Started as IT Intern, then Service Desk Analyst · May 2016 — Jan 2018
Wrote integration tests in C# to automate manual test cases
Managed database restores and deployed databases and builds through Octopus
Tested the backend against SQL Server Management Studio and MongoDB, and the APIs through Swagger
Tested the Android and iOS apps, both built on React Native
Reviewed teammates’ code and ran the integration and unit tests in Visual Studio
I help build Mosaic, the shared TypeScript framework used by teams across Invoca. Earlier work includes a Python deployment tool and suites in Ruby, Java, and C#.
02
CI and releases
I work in Buildkite now. At Benchmark, GitLab runners handled the regression suite. GitHub Actions covered QA deployments at Coda, and I’ve promoted releases into client-facing environments.
03
Application and API code
TypeScript for current framework work. Swift for BAR-TABS. Ruby and Python for automation and internal tools, with APIs ranging from GraphQL mocks to Swagger.
04
System-level debugging
I’ve traced problems through browsers, native mobile apps, APIs, and databases. The stack has included PostgreSQL, SQL Server, MongoDB, Contentful, and Proxyman.