bacelar@ci

test.describe('Bruno Bacelar', () =>

I build AI that
ships to production.

AI Solutions Engineer. Twenty years in software, the last eight building the test frameworks that catch what breaks before your users do. Now I build the AI agents, automations, and production systems that replace manual work entirely.

test.describe('selected work')

Evidence, not adjectives.

Five engagements. Hover a card to see its trace: how each project moved from audit to green.

MCAP · Framework rearchitecture

passed

One Cypress codebase, every lender brand

Canada's largest independent mortgage finance company had a test suite splitting at the seams across lender brands. I rearchitected it into a single multi-lender Cypress framework: shared specs, per-lender configuration, hundreds of tests stabilized and running in Azure DevOps on every merge.

CypressTypeScriptAzure DevOps

GLE · Built from zero

passed

An API framework that enforces its own standards

Greenfield API automation in .NET 8 with NUnit and xUnit, plus custom Roslyn analyzers that catch violations of the team's own conventions at compile time. The framework reviews your code before your reviewer does.

.NET 8NUnit / xUnitRoslyn analyzers

QA Pilot · AI agent, self-directed

running

AI that writes the test cases nobody has time for

A test case generator that reads your Jira tickets, Azure DevOps work items and GitHub pull requests, then drafts structured test cases on the Claude API. Built because every team I have joined had the same backlog of untested acceptance criteria.

Claude APINext.jsTypeScript

Diário de Bordo · Independent project

passed

AI cost estimates you can actually trust

A live app that helps families plan a move to Canada. The financial estimate feature blends AI-generated market pricing with deterministic, hand-coded government fee logic, so the numbers that matter most are never left to a model's guess. Real users, live today.

Claude APISupabaseNext.js

Olea Connects · Independent project

running

A membership platform for Canadian nonprofits

Full technical build for a nonprofit governance platform: Next.js, Supabase, auth, payments, and member management. Integrations to Attio and QuickBooks run on versioned outbox workers, so a failed sync retries safely instead of quietly losing data. Launching mid-August.

Next.jsSupabaseIntegrations

expect(stack).toBeBattleTested()

Six suites, all green.

No percentage bars. A capability either survives production or it does not.

E2E automation

Playwright · Cypress

8 years, from first spec to framework governance

✓ pass

Languages

TypeScript · C# · SQL

Typed everywhere. Untyped test code is a bug factory

✓ pass

API testing

REST · NUnit · xUnit · Postman

Contract-first, environment-agnostic

✓ pass

CI/CD

Azure DevOps · GitHub Actions

Pipelines with quality gates, not decoration

✓ pass

AI agents & automation

Claude API · OpenRouter · n8n · MCP-style connectors

Agents that read, decide, and act, with a human checking the risky parts

✓ pass

Mobile

Appium · BDD / Gherkin

Earlier chapter, still in the toolbox

✓ pass

beforeAll('the person')

Twenty years of finding what breaks.

I wrote my first line of production code in Brazil more than two decades ago. Since then I have been a developer, a consultant, and for the last eight years the person teams call when their test suite is flaky, slow, or missing entirely. These days I spend most of that instinct on AI agents and automation instead, catching what an agent gets wrong before it ships, not just what a human gets wrong.

I am based in Canada, work in English and Portuguese, and I am at my best in the gap between building fast and building something that still works in a year: real testing, real reliability, not a demo that happens to work once.

Outside of work I write psychological thrillers under a pen name. It turns out that hunting plot holes and hunting bugs are the same skill, and I cannot switch either one off.

test('hire bruno', async () => ...)

Your suite is failing? Good. That means there is something worth fixing.

I take on AI agent and automation engineering, integration work, and advisory on bringing AI into real production workflows. English or Portuguese, remote-first.