Custom platform development
Full products, from data model to deploy: multi-tenant SaaS, internal tools, dashboards and APIs. The same stack behind termynl, Upvora, Kahalia and Forsyn.
AI engineer and developer. I design and build full products, weave in the agents and automation that make them smarter, and ship the whole thing end to end.
The stack
The services, APIs and tools my products and engagements connect to, and the ones I'll probably reach for next.
Full products, from data model to deploy: multi-tenant SaaS, internal tools, dashboards and APIs. The same stack behind termynl, Upvora, Kahalia and Forsyn.
LLM features, retrieval, and autonomous agents that do real work, triage, digests, provisioning, with guardrails enforced in code, not prompts.
Any API or system wrapped for AI, self-hosted or stateless on Cloudflare. Per-user OAuth, read and write scoped in code, a real test suite.
Microsoft 365, Google Workspace, Azure, and the glue between your systems. Joiner, mover, leaver, licensing, provisioning and reporting, automate by default.
Infrastructure, build-versus-buy, and the honest call on when not to use AI at all.
Self-hosted multi-model chat and local inference on your own hardware, with retrieval, cost controls and role-based access, kept off third-party clouds.
My own platforms, from data model to deploy.
Projects, docs and knowledge on one object model, so AI agents are first-class authors alongside people. Self-hostable and SaaS.
termynl.com ↗Open-source, self-hosted feedback and roadmap software. Custom statuses, weighted scorecards, and a built-in remote MCP server.
upvora.dev ↗Multi-tenant SaaS for congregation management: members, pledges, billing and the calendar, with row-level tenant isolation.
kahalia.com ↗Watches vendor APIs and docs for breaking changes, so a dependency shift reaches you before it reaches production.
private / in developmentThe problem, the approach, the result.
For an internal IT team at a multi-office professional-services firm
Built a fleet of Model Context Protocol servers and moved four of them to stateless remote hosting on Cloudflare. One organization-wide connection replaced per-laptop installs and plaintext API tokens: per-user sign-in where the upstream supports it, an identity-aware proxy where it does not, IP-restricted and read-only by construction.
One connection, the whole org, zero installs.
Replacing a manual daily maintenance checklist
A deterministic verifier reads vendor and script reports; a check that does not arrive is red, not green. Streak-based escalation so a one-off blip pages no one, named-benign classes for known noise, and automatic ticket creation that groups by cause.
A missed report pages. A blip does not.
On its own VM, with its own mail identity
Triages the ticket queue every morning, writes leadership digests without repeating itself, and keeps a cross-linked knowledge base current. A deterministic watchdog emails a human the moment the agent itself goes quiet, after an outage once slipped past a monitor that was never itself monitored.
Autonomy you can actually trust.
Public code is trust.
Teams that need it built, not just managed.
Building something, or want to talk it through first? Tell me what you need and you'll get a reply.