Education
Learning platforms, assessment tools and administrative systems for institutions that need software to survive a full academic year, not a demo.
- Learning management
- Assessment & analytics
- Student information systems
A software studio working across three fields, with one discipline: understand the problem completely, then build the smallest thing that solves it.
Learning platforms, assessment tools and administrative systems for institutions that need software to survive a full academic year, not a demo.
Infrastructure software where latency, observability and failure behaviour are the product — monitoring, orchestration and the layers underneath them.
Applied models inside real products: retrieval, evaluation and the unglamorous plumbing that decides whether a model is useful or merely impressive.
Baccalaureate preparation for Romanian high-school students.
The whole exam on a phone: lessons that run as programs rather than play as video, a daily plan that rebuilds itself around what a student has actually forgotten, and AI examiners that mark handwritten work photographed off the page.
Peer-to-peer encrypted notes, with no server to trust.
Notes that sync straight between your own devices over hole-punched QUIC, merge without conflicts, and are encrypted both on the wire and on disk. No account, no cloud database, no sign-in — and nothing in between that can read a word.
Four in-house libraries carry the parts of Tomomi that had no off-the-shelf answer. They are built as separate projects because they are separate concerns — and because each one is useful on its own terms.
A Rust scene graph that compiles to WebAssembly and emits bytecode.
Retained-mode nodes, shapes, transforms, tweens and hit regions — but it never draws anything. It emits a compact instruction stream for a host renderer to replay, and an untouched frame costs nothing at all.
Details →tonariAuthoringThe layer that makes a compiled animation configurable by a non-programmer.
Wraps izumi with a typed variable system. An animation declares its knobs — ranges, steps, defaults — and a teacher adjusts them from an editor, with no rebuild and no Rust.
Details →minatoRuntimeThe TypeScript runtime that turns that bytecode back into pixels.
Loads a WebAssembly module, decodes izumi’s instruction stream onto Skia, hit-tests pointer events against the scene and calls back into Rust — so a compiled animation is interactive, not just moving.
Details →kaitoInterpreterA C++ and pseudocod interpreter that runs on the device.
A tree-walking interpreter for the subset of C++ the Romanian BAC actually examines, plus the pseudocode notation used in Subiectul II — with a per-statement variable trace and errors in two languages.
Details →We spend the first weeks reducing the brief until only the real constraint is left.
A working slice in front of real users early, so the expensive decisions are made with evidence.
Small teams, short cycles, tests that mean something. Nothing ships that we would not operate ourselves.
Documentation, runbooks and a team that can carry it. We aim to become unnecessary.
We reply to every message ourselves, usually within two working days.