Skip to content

AI should solve a problem, not decorate it.

I add a model to a system when it removes real work, and I design the system so it still behaves sensibly when the model is wrong or absent.

Optional by design

KinetiRx uses a Gemini model to read purchase bills and extract line items into inventory, and offers a clinical assistant. Both are optional. With no API key the application runs in an offline fallback mode, because a pharmacy counter cannot stop when a third-party API does.

Structured output and a human in the loop

A model that returns free text is hard to build on. I ask for structured output, validate it against a schema, and put a person between the model and anything irreversible. A scanned bill becomes a draft that someone reviews, not a stock change that happens silently.

Operating a system with an assistant

KinetiRx and OrderRestro include MCP servers that let an MCP-aware assistant operate a running instance through tool calls, such as looking up stock or recording an expense. The tools are narrow and the instance's normal permissions still apply. This is software exposed to an assistant, not an assistant given the keys.

Workflow automation

For business-process automation I use n8n and Python. The pattern is deterministic steps wherever the rule is known, a model only where the input is genuinely unstructured, logging for every step, and a fallback path when a step fails. Most automations I would build need no model at all.

Retrieval over private documents

Where documents must stay private, I prefer local models and retrieval over those documents, running on infrastructure the organisation controls. The same rules apply: cite the source passage, log what was retrieved, and let a person decide.

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