Skip to content

From a business problem to a product people use

Product engineering is deciding what the software should do, and just as often what it should not do yet.

Principles I write down first

OrderRestro began with a short list of non-negotiables: offline-first, granular permissions everywhere, server-authoritative money, modular domains. A written principle gives me something to refuse a shortcut against six months later.

Separate products for separate domains

NodeDR POS and OrderRestro share lessons but not a schema, because restaurant operations and retail billing are different problems. Forcing one model to serve both would have weakened both.

Honest scope

My changelogs and roadmaps say what is shipped and what is not built. Rechvix's changelog records known gaps and a newly disclosed vulnerability in a third-party library that I had not yet fixed. I would rather the record be accurate than flattering.

Distribution is part of the product

Installers for Windows and Debian, Microsoft Store listings, CasaOS apps, a one-command Docker install, a quick-start script and written manuals are all part of the product, because software that cannot be installed has no users.

Building in the open

Most of my products are AGPL-3.0 open source. Publishing the code and the architecture decisions keeps me honest, and it lets other developers check my reasoning.

Have something in mind?

Let’s build something useful.

Tell me about the idea, product, or workflow you’re working through.

Tap to say hello