Skip to main content
SodaAL
Software consultancyEst. 2017Remote, worldwide

Software that outlives the team that built it.

SodaAL is a software consulting firm. We build web, mobile, and AI products, then hand them over so your own team can run them without us.

9

Years building software

120+

Products shipped

12

Industries served

1 day

To a first reply

What handover looks like

Every engagement ends with your team able to change the system without us. In practice that means the boundaries are explicit, the failure modes have names, and the test tells you what the code is for.

src/billing/ledger.tstypescript
/** A posting that has been written to the journal. */
export type Posted = Entry & { readonly postedAt: Date };

/**
 * Journal entries are append-only: correcting one means posting its
 * reversal, never editing the original. Balances are therefore a
 * fold over history rather than a mutable running total.
 */
export function post(journal: Journal, entry: Entry): Result<Posted> {
  if (sum(entry.lines) !== 0n) {
    return err("Entry does not balance", { lines: entry.lines });
  }
  if (journal.isClosed(entry.period)) {
    return err("Period is closed", { period: entry.period });
  }
  return ok(journal.append({ ...entry, postedAt: new Date() }));
}
From a payments engagement. The invariant lives in the type, so the kind of bug that forced the rewrite can't come back.

How we work

Three habits, every engagement.

01

Understand before estimating

A week of reading code and talking to the people who use the thing. Most briefs describe a symptom, and we'd rather find the cause before quoting a number.

02

Ship something small, early

Something real in front of users inside the first month. It's the only estimate worth trusting, and it makes every decision after it cheaper.

03

Leave it maintainable

We're done when your team can change the system without calling us. That's the deliverable. The code is just where it's kept.

SodaAL engineers working through a problem together

Who you get

Senior people, on your problem.

Every engagement is staffed with people who have shipped and maintained systems like yours. Nobody learns on your budget, and nobody quietly hands the work to someone more junior once the contract is signed.

How we work →

Tell us what is actually broken.

One short call is usually enough to tell whether we’re the right people for it. We answer within 1 business day.