TDD Consultant for Go & Erlang Teams | Sean Merriam

Tests first. Ship with confidence.

TDD consulting for teams building Go, Erlang/OTP, and financial systems that can't afford to be wrong.

go test ./... -v
$ go test ./ledger/... -race -count=1
--- Running suite: LedgerSuite ---
TestLedger_DebitCreditSymmetry 0.9ms
TestTransfer_AtomicUnderConcurrency 14.2ms
TestPayment_IdempotencyKeyEnforced 1.1ms
TestAuditEntry_ImmutableAfterCommit 0.7ms
TestSettlement_NoFloatingPointDrift 0.4ms
PropTest_DoubleEntryInvariant 22ms
 
PASS  6/6  coverage: 97.4% of statements
$
10+
Years in Production Systems
97%
Avg. Coverage Target
0
Float Arithmetic in Finance Code
Refactors Made Safe by Tests

What I deliver

TDD-01

TDD Coaching & Team Adoption

Embedded mentorship and workshops to move your team from test-last to test-first — for good. Covers red-green-refactor cycles, test boundary design, and fixture strategy. Available remote or on-site.

Learn about TDD Coaching & Team Adoption
WorkshopsPairingCode ReviewGo
ARCH-02

Architecture & Design Review

ADR-driven design sessions that catch architectural flaws before they calcify. Includes testability audits that identify seams where dependencies should be abstracted for clean unit and integration testing.

Learn about Architecture & Design Review
ADRsDomain ModelingTestability
FIN-03

Financial Systems Engineering

Correctness-first consulting for core banking, double-entry ledgers, and payment infrastructure. Integer arithmetic, idempotency proofs, and audit trails built in from day one.

Learn about Financial Systems Engineering
Ledger SystemsErlang/OTPPCI-DSS
PBT-04

Property-Based Testing

Go beyond happy-path examples. I introduce PropEr, rapid, and custom generators that stress your invariants across thousands of inputs — exposing edge cases that example tests never reach.

Learn about Property-Based Testing
PropErHypothesisFuzzingInvariants
OTP-05

Erlang/OTP Systems

Fault-tolerant system design using OTP supervision trees, Common Test suites, and "let it crash" philosophy — hardened with full integration test coverage and production-grade releases via Rebar3.

Learn about Erlang/OTP Systems
ErlangOTPCommon TestRebar3
AGT-06

Agent-Driven Development

Multi-agent pipeline design that raises team productivity without sacrificing code quality. I show teams how to integrate LLMs into the development cycle with TDD gates — so output stays verifiable and maintainable.

AI WorkflowsPrompt Eng.TDD Gates

How it works

01

Discovery & Audit

I read your codebase before I say a word. Coverage reports, test quality analysis, architecture documentation, and a full testability audit with written findings. Starting from scratch? I design your test strategy end-to-end.

02

Design & Planning

From a single architectural decision to a full development plan — research, competitive analysis, test design, observability strategy, and documentation. Technology and industry agnostic. Tailored to your stack.

03

Embedded Execution

Remote training sessions, ongoing PR reviews, and custom coaching. Every new feature ships test-first, with automated verification gates and manual checks you can run yourself.

04

Handoff & Sustain

Documentation, runbooks, and coaching that outlast the engagement. When we're done, your team owns the practice — equipped to ship reliable software for the lifetime of your product.

Search-driven questions

How does TDD consulting work?

I start with discovery and a codebase audit, then define a practical test-first plan for your team. Engagements combine pairing, review feedback, and measurable delivery checkpoints so TDD becomes a reliable day-to-day habit.

What is property-based testing?

Property-based testing verifies invariants across large input spaces instead of checking only a few hand-picked examples. It is especially useful for financial logic, concurrency behavior, and edge cases that escape example-based tests.

Can you help with legacy code that has low test coverage?

Yes. I identify high-risk paths first, add characterization tests around current behavior, and guide incremental refactors behind safety checks. This approach improves confidence without forcing a full rewrite.

Do you work with Go and Erlang/OTP teams remotely?

Yes. Most engagements are remote and include recurring pairing sessions, PR review loops, and async guidance between sessions. On-site time is optional when a team needs focused kickoff or workshop support.

Built for
hard problems

A decade of production engineering across financial infrastructure, distributed systems, and modern web. Every line I deliver ships with a test that proves it works and a refactor path that proves it's maintainable.

Go
Erlang / OTP 25
WebAssembly
C
PostgreSQL
Mnesia
PropEr / Common Test
Docker/K8s
SUITE: iron_ledger_SUITEALL PASSING
init_per_suite✓ ok0.3ms
debit_credit_sum_conserved✓ ok1.4ms
transfer_atomicity_under_crash✓ ok14.2ms
supervisor_restarts_crashed_worker✓ ok5.1ms
prop_transfer_sum_invariant✓ ok22ms
idempotency_key_prevents_double_post✓ ok2.9ms
audit_entry_sealed_on_commit✓ ok1.1ms
overdraft_constraint_enforced✓ ok3.6ms
8 passed  ·  0 failed  ·  0 skipped51ms total

Engineering principles

A test suite that does not fail when the code is wrong is not a safety net -- it is a false sense of security.

On test integrity

Read the codebase before you touch it. Architecture decisions made blind become debt that compounds forever.

On discipline

Integer arithmetic is not optional in financial code. Floating point errors compound. So do the lawsuits.

On correctness

The best documentation is a test that fails when behavior changes -- and a human-readable name that says why.

On communication

Let's build
something solid

Taking select consulting engagements. Whether you need a full TDD transformation or a focused architecture review, reach out and we'll scope it together.