The Billin Blog · RSS available

Working notes on modern ERP.

Engineering deep-dives, product thinking, and stories from teams running Billin. Written by humans who ship on Thursdays.

● Featured · Engineering
// tenant-grounded retrieval
const ctx = await billin.ai.retrieve({
  tenant: 'acme',
  scope: ['ledger', 'bank'],
  policy: 'strict-rbac'
});
→ 1,248 txns matched · 12 flagged
EngineeringApril 14, 2026· 12 min read

Building Billin AI: the retrieval architecture behind a tenant-grounded LLM.

We built an AI layer that works on every tenant's private data without sending a single row to a model provider. Here's the stack — row-level ACLs, column redaction, per-workspace embedding caches, and why we chose smaller local models for 80% of the workload.

Recent posts

Sorted: newest →
D1D2D3
ProductApr 10, 2026· 7 min

How 400-person companies close the books in three days, not three weeks.

A look at the six changes that moved our average customer from a 22-day close to a 3-day close. Most aren't about software — they're about owners, cadence, and consistency.

MK
Marta Kovač·VP Product
$ git push --set-upstream
✓ 214 files changed
✓ license: MIT → Apache-2
Open sourceApr 3, 2026· 9 min

Why we open-sourced the core ledger.

Eighteen months in, we moved the accounting engine to Apache-2.0. Here's the reasoning — and what stays closed, why, and the governance model we settled on.

PL
Pere Llach·CTO & co-founder
Rs$¥
EngineeringMar 27, 2026· 14 min

Multi-currency accounting without tears: our ledger invariants.

Every cross-border bug we've ever shipped started the same way. Here are the four invariants the ledger now enforces at the database level, and the migration we ran on 40M rows to get there.

NR
Núria Roca·Principal eng
Q1Q4 ↑218%
CustomerMar 20, 2026· 6 min

Kestra Shoes went from 4 spreadsheets to one ERP in 11 days.

A 62-person footwear brand shipped inventory across three countries — with four spreadsheets holding it together. Here's the full onboarding timeline and what broke on day 7.

SA
Sofía Aranda·Customer success
POST /api/v2/invoices
Authorization: Bearer ***

{ "customer": "cus_8fA" }
→ 201 Created · 42ms
EngineeringMar 13, 2026· 8 min

The API-first principle: every UI feature ships the endpoint first.

We have one rule: no feature ships without a public API. It's why Billin has a healthier integration ecosystem than ERPs ten times its size — and why our product team spends more time on contracts than on pixels.

TJ
Tomás Jiménez·Staff engineer · Platform
FINENGPROD
CompanyMar 6, 2026· 11 min

We only hire engineers who've done payroll once.

The Billin hiring loop has a quirk: every eng finalist runs a simulated month-end close. It's the most predictive signal we've found — better than coding exercises, better than systems design.

MK
Marta Kovač·VP Product
98.4% ACCURATELEGACY 76%
ProductFeb 27, 2026· 9 min

Getting to 98% inventory accuracy — and the cycle-count feature that gets you there.

Perpetual inventory sounds nice in textbooks. In reality, you need a cycle-count loop that fits into a warehouse manager's morning. Here's the one we built, and the research behind it.

JO
Jonas Ørsted·PM · Inventory
SELECT debit, credit
FROM ledger_entries
WHERE tenant_id = $1
→ 1.2M rows · 18ms
EngineeringFeb 20, 2026· 16 min

We run the whole ledger on one Postgres. Here's how.

No sharding, no Kafka, no read-replicas-of-read-replicas. One Postgres 16 instance handles every journal entry from every tenant. The trick is in the partitioning — and in what we refuse to do.

PL
Pere Llach·CTO
$42M · B
CompanyFeb 12, 2026· 5 min

Series B: $42M to build the ERP the open-source world deserves.

We closed a $42M round led by Index, with participation from our customers (yes, really) and every seed investor. Here's what it funds: more engineers in Europe, a faster release cadence, and our first physical office.

PL
Pere Llach·CTO & co-founder

Get Billin notes in your inbox, once a week.

Engineering write-ups, product changes, and customer stories. No marketing emails. Unsubscribe with one click. 12,400 readers so far.