Brent Ceulemans

Open for new work

I build the systems companies actually run on.

  • Leads
  • Quotes
  • Site
  • Invoices
  • Portal

Custom CRM and operations platforms. From the first inbound lead to the settled invoice — every role gets an interface built for the work it does, rather than one screen with everything hidden behind permissions.

Stack
  • TypeScript
  • React
  • Postgres
  • Supabase
  • Swift

Method

How I work

four rules, paid for in incidents

  1. Correctness before cleverness wherever money is involved

    Line-item pricing, VAT regimes and invoice totals are guarded by database-level invariant checks that run on a schedule and alert only when the state changes. An alarm that repeats every fifteen minutes gets dismissed, and is worthless from then on.

    In practice
    Every money rule is a constraint or a scheduled check, never a comment.
    Without it
    Totals that drift apart quietly, and a customer who finds it before you do.
  2. Access control is not something you bolt on afterwards

    A public customer portal sitting on the same database as internal finance data means every row-level policy and every grant is load-bearing. I assume a policy is broken until I have watched it refuse the request.

    In practice
    New endpoint, new policy — and a test that signs in as the wrong user first.
    Without it
    One missing predicate turns a portal into an export of everything.
  3. Every incident becomes a written rule

    Anything that cost real time gets documented in the repository — the rule, and the story behind it. A warning in prose only works if you happen to read it right before you would have made the mistake, so the ones that matter become automated checks instead.

    In practice
    The rule ships with the fix, in the same commit, with the story attached.
    Without it
    The same outage twice, six months apart, by someone who never heard about the first.
  4. Measured, not assumed

    Before I claim something works, I run the check and read the output. That habit is the single biggest difference between a system you trust and one you hope about.

    In practice
    No “should work”. Run it, read it, quote the line that proves it.
    Without it
    A deploy that was green in your head and red in production.

Run the check, read the output, then say it works.