About

A quality company built by someone who did the work

Afoxlabs exists because of a pattern seen repeatedly from the inside: teams that ship frequently, know their testing is not good enough, and have no realistic path to building a full QA organisation. The gap between those two facts is where releases go wrong.

Why Afoxlabs

Seven-plus years as an SDET across enterprise software products — manual testing, UI and API automation, framework design, performance and chaos testing, CI/CD ownership and release leadership — makes one pattern impossible to miss. The teams that struggle with quality are rarely careless. They are usually competent teams whose testing has not scaled at the same rate as their product.

Their options are all bad. Hire a QA team: six months of recruiting, real management overhead, and a permanent cost structure for a capability they need built once and then maintained. Hire contractors: tester-hours with nobody accountable for the outcome. Ask developers to absorb it: uneven coverage and slower feature work, with quality still owned by nobody in particular.

Afoxlabs is the fourth option. We take responsibility for a defined quality outcome — coverage, automation, gates, reporting — and we build it inside your repositories so you are never dependent on us to keep it running.

Built from delivery experience, not a sales deck

The distinction that matters when you are choosing a QA partner is whether the person scoping your engagement has personally built and maintained the thing they are selling. Plenty of agencies put a commercial layer in front of junior testers. The work here is scoped and led by someone who has designed automation frameworks from an empty repository, maintained them through years of product change, and been accountable for whether a release shipped.

That includes the parts that are easy to leave off a services page: owning QA environments, managing Jenkins jobs, leading twenty-plus continuous delivery releases, driving customer-reported defects through investigation to resolution, and mentoring other engineers on framework design. Delivering testing is a small part of running quality. The rest is what separates a suite that survives from one that gets abandoned.

On the AI work

The AI quality page is not speculative positioning. It comes from having built AI-assisted automation solutions on LLM technologies in a production engineering context, and from generating internal tooling with AI assistance — including a complete Python framework.

Doing that work is also where the caution comes from. Models are genuinely useful for drafting tests, generating data and clustering failures, and genuinely unreliable as the thing that decides whether a result can be trusted. Hence the rule we will not bend: AI proposes, controlled automation and human review decide.

How the company is set up

Deliberately small, and deliberately senior. Engagements are scoped so that the person doing the technical work is someone who has built and maintained large automation suites, not a junior executing a script written by someone else. That constrains how many clients we can take at once, which we consider a feature.

We start narrow — web and API testing, automation, CI/CD — and expand into performance, resilience and AI evaluation when a client's product genuinely needs it. A service catalogue that lists everything is a signal that nothing in it is a specialism.

The long-term direction

Recurring problems across clients become reusable internal tooling. Some of that tooling becomes a public Labs tool. If one of those ever earns real, demonstrated demand, it may become a product. That sequence matters: tools follow from client work rather than being invented in the hope that someone wants them, and the services business stays financially ahead of the experiments throughout.

Depth behind the services

What "hands-on" actually means here

Every service on this site maps to work done repeatedly in a production engineering context, not to a capability added because prospects ask for it.

Automation frameworks
Designed and implemented frameworks from scratch in Java + Playwright + TestNG, Java + Selenium + Cucumber, and Python. Framework architecture, not just test writing.
API testing & automation
REST Assured, Jersey client, Postman and Insomnia. Feature-level API automation, regression suites, and owning features end to end through to release.
UI automation
Playwright and Selenium, including Selenium Hub for distributed execution. Building suites, and the less glamorous work of keeping large ones stable.
CI/CD & release ownership
Jenkins job ownership for UI and API automation, DevOps release cycles, and leading 20+ continuous delivery releases across multiple environments.
Performance & resilience
JMeter load testing, plus chaos engineering with Gremlin — fault injection measured through JMeter and Grafana to find what actually breaks under failure.
AI-assisted quality engineering
Production AI-assisted automation built on LLM technologies, and several internal tools generated and maintained with AI assistance under human review.
Environments & infrastructure
Owned and maintained QA environments for testing and release validation, including customer-like environments. Kubernetes and Docker at a working level.
Beyond the keyboard
Test strategy authoring and review, release planning, quality reviews, production validation, customer-reported issue ownership, published technical white papers, and mentoring engineers on framework design.

The path here

How the experience accumulated

Enterprise software products, from maintaining someone else's automation to owning release quality and designing the frameworks. Employer names are left out deliberately — they are available on request under NDA, and named clients are never implied by a former employer's logo.

  1. Early years QA Engineer

    Enterprise software. Fixing UI and API automation, reporting on CI/CD cycles, and learning where automation breaks by maintaining someone else’s suite — which is the fastest education available in why frameworks matter.

  2. Middle years QA Engineer → Senior SDET

    Owning features through complete testing. Building UI automation in Java, Selenium and Cucumber, and API automation in Java and Jersey. Running performance tests in JMeter, managing Jenkins jobs, authoring test strategy, and publishing technical white papers.

  3. Recent years Senior SDET

    Chaos testing with Gremlin, JMeter and Grafana. Leading 20+ continuous delivery releases across multiple environments. Building internal tools to cut manual effort, and owning customer-like test environments.

  4. Now Senior SDET, and Afoxlabs

    Designing automation frameworks in Java, Playwright and TestNG. Building AI-assisted automation on LLM technologies. Owning customer-reported issues end to end, participating in release planning and production validation, and mentoring engineers on automation practice.

What we believe

Six opinions that shape every engagement

Stated plainly so you can disagree with them before we work together rather than afterwards.

Quality is a system, not a person

Every team that ships bugs has someone working hard to prevent it. The problem is almost never effort — it is that quality depends on individual memory and availability instead of on process, automation and gates.

The API layer is underrated

Teams reach for UI automation first because it looks like testing. API tests are faster, more stable, cheaper to maintain and catch most logic regressions earlier. Start there and the UI suite only has to cover what is genuinely UI.

An untrusted suite is worse than no suite

A red build people routinely re-run has stopped being information and started being noise — while still costing money and time. Flakiness is a defect class, and it deserves the same treatment as any other.

Coverage numbers are not the goal

Eighty percent coverage of trivial paths is worth less than complete coverage of the five journeys that generate your revenue. Risk decides priority, not convenience.

AI belongs in the workflow, not in the verdict

Models are genuinely good at drafting, generating data and clustering failures. They should never be the thing that decides a release is safe.

You should be able to fire us cleanly

Everything we build lives in your repositories from day one. A partner who makes leaving expensive has an incentive we do not want to have.

Start with a free QA Health Check

Answer twelve questions about how your team tests today. You get a maturity score, the three gaps most likely to cause a production incident, and a 30/60/90-day roadmap — whether or not you ever work with us.