LumaLedger is not a budgeting app with a database behind it. Underneath every screen is a real double-entry ledger: entries that must balance, postings that carry both sides, reconciliation that proves the bank and the books agree. That engine is deliberately domain-agnostic, and it will go on to power a business accounting product without being rewritten.
You would own it. That means the accounting model, the posting rules, the matching and reconciliation passes, and the invariants — database CHECKs and deferred triggers — that make an unbalanced entry impossible rather than merely unlikely.
This is the role where being pedantic is the job. If you have ever argued about whether something is a contra account or a separate account, we would like to have that argument with you.
What you would do
- Design and evolve the ledger schema: accounts, journal entries, postings, splits and the rules that generate them.
- Keep the engine free of consumer concepts — budgets, subscriptions and merchants depend on the engine, never the reverse.
- Build the reconciliation and matching passes that let us claim a balance is correct rather than approximately right.
- Write the migrations, and the tests that catch the case where a migration passes on an empty database and fails on a full one.
- Set the technical bar for the engineers who build on top of you.
What we look for
- 7+ years building backend systems, with real depth in relational data modelling.
- Fluent in Python and SQL; comfortable reasoning about transactions, isolation levels and deferred constraints.
- You have owned a system where correctness was non-negotiable — payments, accounting, clearing, billing or similar.
- You write the failure case down before you write the fix.
Nice to have, never required
- You have worked with a general ledger in anger, in-house or at a vendor.
- Experience with SQLAlchemy 2, asyncpg, or Postgres at the extension level.
If you are on the fence
Every list above describes the person we imagine, not a checklist we score. People who meet most of it and want the rest have done extremely well here. If the role reads like the job you want next, that is enough reason to write to us — tell us which part you would have to grow into and we will be straight with you about whether it works.
Send whatever shows your work best — a CV, a repository, a portfolio, or a few paragraphs. A hiring manager reads every one, and you will hear back within two business days.
Apply by emailcareers@lumaledger.app