Payments infrastructure · Laravel architecture

We build the software where mistakes cost money.

Billing systems that don't double-charge. Webhooks that don't double-fire. Ledgers that refuse to go out of balance. Chazbit is a deliberately small senior engineering practice — 20 years deep, most recently the builder of a complete double-entry accounting SaaS: ledger engine, Stripe Billing + Connect, bank feeds, tax reports, the works. We take one or two engagements at a time for teams whose money-moving code needs hands that have already survived it.

Remote · US-based · Eastern time Fixed scope or weekly rate — never open-ended hourly Hard end dates. No forever contracts.
Processed exactly oncewebhook idempotency · production
StripeWebhookController.php tests: 214 passing
// A webhook you can trust: verified, idempotent, replay-safe.
// Stripe retries. Networks duplicate. Your ledger doesn't care.
public function handle(Request $request): Response
{
    $event = $this->verifier->verify($request); // signature first, always

    if ($this->ledger->alreadyProcessed($event->id)) {
        return response()->noContent(); // replay → no-op, no double post
    }

    DB::transaction(fn () =>
        $this->handlers->for($event->type)->process($event)
    ); // the fee posts as a real journal entry: DR 5150 / CR 1050

    return response()->noContent();
}
Hired for
Stripe Billing & Connect builds Webhook & subscription migrations Legacy Laravel rescue Double-entry & fintech systems Modular-monolith architecture
The receipt

Most consultancies show you a slide deck. We show you a running fintech product — built end to end, in house.

Finappses is a multi-tenant, double-entry accounting SaaS — every line of it designed, built, tested, and shipped by our principal engineer — one set of hands, zero handoffs. It's the hardest audition piece we could have chosen, because accounting software has nowhere to hide: either the books balance or they don't. Click around the live demo →

  • A real ledger engine. Double-entry core with UUID-keyed accounts, posted/draft/void lifecycle, and an invariant the database itself enforces: debits equal credits, always.
  • Stripe, both directions. Stripe Billing for subscriptions and Stripe Connect for customer payments — webhook spine with signature verification, idempotency keys, and fees posted as journal entries automatically.
  • Bank data from three doors. Plaid feeds, OFX uploads, and CSV imports — categorization rules engine, fuzzy matching, duplicate detection, full reconciliation module.
  • Tested like it matters. Pest + Playwright browser suites, API contract tests, and a demo mode that seeds a full synthetic company. Money code ships with receipts.
Engineers
1
design → deploy
Modules shipped
15+
ledger to billing
Payment rails
2
Billing + Connect
Unbalanced entries
0
the ledger refuses
finappses — journal entry ✓ balanced
JE-2026-0847 · Invoice paid online posted · idempotent
AccountMemoDebitCredit
1050 Stripe ClearingCard payment — inv #2411,250.00
5150 Processing FeesStripe fee36.55
1200 Accounts ReceivableInvoice settled1,250.00
4010 Service RevenueFee recognized net36.55
Totals — the ledger enforces this1,286.551,286.55
What we take on

Three kinds of problems. All of them expensive to get wrong.

If your problem isn't one of these, we'll tell you on the first call and point you at a better fit. If it is one of these, you're working with a practice that has shipped it before — recently, and end to end.

/01

Payments & billing infrastructure

Stripe Billing, Connect, and the webhook layer underneath — built new or untangled. Subscription migrations, usage pricing, dunning, and the idempotency discipline that keeps finance from filing tickets.

  • Stripe Billing & Connect, greenfield or rescue
  • Webhook reliability: verify, dedupe, replay-safe
  • Subscription & pricing-model migrations
  • API-version upgrades without 2 a.m. surprises

Fits: SaaS teams whose billing is revenue-critical and fragile

/02

Laravel architecture rescue

The codebase your team is afraid of. We audit it, name the traps out loud, and modularize the monolith with DDD boundaries — the same discipline that untangled 300-app legacy migrations and label-plant ERPs.

  • Fixed-price architecture audit, written findings
  • Modular monolith over microservice sprawl
  • Test harnesses where there were none
  • Your team levels up while we're there — then we leave

Fits: teams shipping slower every quarter and unsure why

/03

Ledger & fintech builds

Double-entry cores, reconciliation engines, money movement with audit trails. Minor-unit arithmetic, immutable entries, provenance on every posted row — the parts most contractors have never had to get right.

  • Double-entry ledger design & implementation
  • Bank-data ingestion: Plaid, OFX, CSV
  • Reconciliation & duplicate-detection engines
  • Accounting-adjacent integrations done correctly

Fits: products where the balance is the product

Track record

Twenty years of systems that had to work.

From embedded controllers on vehicle lifts to a platform doing eight figures a year — the common thread is software where "mostly works" was never an option.

Finappses
Built in-house · 2024—now
Multi-tenant double-entry accounting SaaS — ledger, billing, bank feeds, tax reports — built end to end by our principal engineer.
1 engineer
Fortis Solutions
Senior engineer · consultant
Modularized a monolithic Laravel platform with DDD boundaries ; integrated acquired plants' legacy ERPs into one stack.
ERP × many
Averitt
Lead engineer · 6+ years
Led the Lotus Notes exit: 300+ internal apps rebuilt onto a modern platform serving 5,000 daily users. ETL across hundreds of terabytes.
300+ apps
Indatus
Engineer · core team
Core team on Answer Automation — ~$10M/month at peak — through its rewrite and the company's $50M acquisition by RealPage.
$50M exit
Emerson · VSG (Dover)
Embedded roots
Reverse-engineered PLC protocols and shipped embedded C on safety-critical hardware. BS + MS, Electrical Engineering , UofL.
MS EE
How we work

Scoped like a project. Priced like an outcome. Ends on schedule.

Tell us the problem

One email or a 30-minute call. We'll ask the questions that expose the real scope — usually smaller than feared, occasionally bigger, never vague.

Fixed proposal, in writing

Deliverables, timeline, price. Fixed-scope for bounded work; weekly rate for open problems. Either way you know the number before work starts.

Ship in slices

Working software every week — not a big reveal at the end. Code, tests, and docs land in your repo as we go. You can stop at any slice and keep everything.

Hard end date

The engagement ends on schedule, with a handover your team can actually run. If you want more later, we scope a new one. Nobody gets a permanent line item.

Start here

Tell us what's broken.
We'll tell you if we're the right fix.

Describe the system, the pain, and the timeline. You'll get a straight answer within one business day — including "this isn't a fit," if that's the truth.

Currently booking · 1 slot open for Q4 2026

or write directly: charles@chazbit.com  ·  LinkedIn →

Start here

Tell us what's broken.

Describe the system, the pain, and the timeline. You'll get a straight answer within one business day.