Engineering expertise

Testing & quality engineering

Automated end-to-end, integration & regression testing

I treat automated testing as part of product delivery rather than a cleanup step before release. The test strategy follows the product boundary: Playwright exercises real browser workflows, Maestro covers end-to-end mobile journeys, pytest validates Python/FastAPI behavior and integrations, and Jest/Node test suites cover JavaScript and TypeScript logic. Static checks such as linting, type checking, build validation, and schema validation catch a different class of failure before E2E tests run.

What this looks like in practice

  • Use Playwright for end-to-end testing of web applications and workflow-heavy authenticated browser journeys, including regression checks across multi-step product flows.
  • Use Maestro for mobile end-to-end testing of React Native / Expo applications, covering navigation, authentication, forms, device-facing flows, and release-critical user journeys.
  • Use pytest for Python and FastAPI unit, integration, API, provider and regression tests; AutoAce also uses pytest around its audio-analysis and deterministic fusion pipeline.
  • Use Jest and Node.js test suites for TypeScript/JavaScript application logic, with React Native Testing Library where component or mobile behavior benefits from focused automated coverage.
  • Use static quality gates—ESLint, TypeScript checks, Expo/Next.js lint and build validation, Pydantic/schema validation, and branch-based review—to catch structural failures before release.
  • Combine focused unit/integration tests with E2E coverage so business-critical paths are tested at both the implementation boundary and the user-workflow boundary.

Core technologies

End-to-end testingPlaywrightMaestroWeb E2E testingMobile E2E testingpytestJestReact Native Testing LibraryNode.js testsAPI testsIntegration testingRegression testingUnit testingESLintTypeScript type checkingStatic analysisBuild validationTest fixtures & mocks

Project evidence

Products that demonstrate this capability

Each project below links to a deeper case study covering product scope, engineering ownership, supporting systems, and production evidence.

Enterprise · Case study

CliviQue HMIS

Hospital management information system connecting patient registration, OPD, emergency, inpatient care, orders, referrals, theatre, billing, ambulance, mortuary, duty coverage, patient movement, documents, and facility operations. Its latest public draft also adds facility-bound M-Pesa patient invoice collection with encrypted merchant credentials, callback verification, idempotent receipt handling, and invoice reconciliation.

Read case study

SaaS · Case study

JournPad: Voice Journal

Voice-first journaling app that preserves the original recording, transcribes spoken entries, and uses AI to generate useful titles, summaries, and categories. Entries can be searched and revisited by date, linked to goals, supported by reminders and prompts, and protected with account, deletion, and optional biometric controls.

Read case study

Enterprise · Case study

RentPayor

Rent collection and reconciliation software for landlords and property managers. RentPayor creates rent invoices, lets tenants pay KES rent through an invoice-linked M-Pesa flow, automatically reconciles confirmed payments, and keeps partial balances, carried-forward credits, receipts, leases, units, tenants, and manual payment records in one rent ledger.

Read case study

Let's work together

Looking for an engineer who can own the product beyond a single layer?

I'm interested in senior product engineering work across web, mobile, backend, and integrations—especially teams shipping real products end-to-end.