Tolerance [ start a project ]

backends since 2003 · payments · aws

Software that runs
the business.

Database-driven web applications, built end to end and run on AWS.

scope database · backend · front end · deployment
runs on AWS, af-south-1 · backed up · TLS from day one
handover documented, no lock-in
tolerance ±0.00 where money is concerned
based Scottburgh, KwaZulu-Natal

01 / what I build

The whole system, by one person

01

Line-of-business web apps

The system a business actually runs on: quoting, invoicing, stock, scheduling, customer records. Built around how the work is really done, not around a template that nearly fits.

02

Databases that hold up

Properly modelled Postgres or SQL Server, with the money, the dates and the audit trail treated as things that must never be wrong. Migrations, backups, and a restore that has been tested.

03

Payments and integrations

Card and EFT gateways, recurring billing, email and SMS, and whatever the business already uses. Years of it inside payment systems, including EMV card applications, where mistakes are expensive.

04

The AWS side, done properly

EC2 or containers, RDS or a database you own, SES, SNS, S3, TLS, monitoring, and a deploy you can run yourself. Sized for what the business is, not for a conference talk.

05

Mobile where it earns its keep

An Android app when the job happens away from a desk, sharing one server-authoritative backend with the website so the two can never disagree about what was invoiced.

06

Taking over what exists

An application whose original developer has gone, or a spreadsheet that has outgrown itself. I'll read it, tell you honestly what it needs, and say so if the answer is less than you think.

02 / built and running

ChatBill

chatbill.co.za ↗ · invoicing for South African tradesmen

A tradesman types a job the way he'd type a WhatsApp message, and ChatBill turns it into a proper quote or invoice: VAT worked out, his business name and banking details on it, sent on WhatsApp or by email before he has packed up the tools.

Behind that one message box sits everything I do. A parser that reads a South African price list. Postgres holding invoices, payments, statements and a full ledger. Recurring subscriptions through PayFast. Transactional email through SES and one-time passwords through SNS. PDFs generated on demand rather than stored. An Android app on the same server-authoritative API. Caddy, containers and a scripted deploy onto AWS in Cape Town, with automated backups and an admin dashboard reporting disk, memory and database health.

Designed, built, deployed and run by me, start to finish.

stack
  • ASP.NET Core
  • PostgreSQL
  • Android / Kotlin
  • AWS EC2 · SES · SNS
  • Caddy · Docker
  • PayFast

03 / where this comes from

23 years of systems other systems depend on

since 2003

Backends, first and foremost

The part nobody sees and everybody depends on. Long enough to have watched several fashions come round twice, and to know which of them were worth keeping.

warehousing

Virtual warehousing platforms

Stock held, allocated and distributed digitally, where the count has to reconcile every time and a customer is holding the other end of the transaction while it happens.

architecture

Three-tier business applications

Presentation, business logic and data kept properly apart, so the rules live in one place and the same system can be reached by a website, a phone and whatever comes next.

billing

Pre-paid and post-paid systems

Balances, rating and billing in both directions, with the reconciliation that proves them. Money moving in real time is unforgiving of a rounding decision made carelessly.

emv

Android EMV POS applications

Payment software running on the terminal itself, to the card schemes' rules. Certification, key handling and a transaction flow that has to be right whether the network drops, the card is pulled early or the battery dies mid-authorisation.

mobile

Android apps, integrated end to end

The phone, the API and the database built together rather than an app bolted onto somebody else's endpoint, so the two can never disagree about what happened.

04 / how it works

No surprises, either way

  1. We talk about the work

    Not about technology. What the business does, where the time goes, and what going wrong actually costs.

  2. You get a fixed scope and a price

    In writing, in plain language, with what is not included stated as clearly as what is.

  3. You see it early and often

    Working software on a real URL, not screenshots. Changing your mind is cheapest while it's still being built, and I'd rather you did.

  4. It goes live, and it stays up

    Deployed, backed up, monitored, and handed over with the documentation to run it. Support afterwards if you want it, no lock-in if you don't.

05 / start a project

Tell me what you need

Roughly is fine. I'll tell you honestly whether I'm the right person for it, what it's likely to cost, and how long it will take.

Goes straight to my inbox. No mailing list, no third parties, nothing stored beyond the message itself.