Projects

Systems I've designed and built

Most of this is internal work at Advensis, so there are no public repos. Each entry covers the problem, what I built, and the decisions I'd defend in a design review.

01 · PLATFORM · ADVENSIS

ADV-MCPGateway & mcp-kit

One place for services to publish their MCP tools, and for agents to find and call them.

What I built

I designed the architecture of a stateless microservice that registers MCP tools and routes calls to them, plus mcp-kit, the library services use to plug in. Tools live in a Postgres registry, and agents search them by meaning through pgvector.

Key decisions

  • Push-based self-registration. Services announce their own tools, so the gateway works on any runtime — no Kubernetes CRDs.
  • Deterministic WorkItem hook engine. Covers the event flow we needed without running Kafka.
  • Stateless gateway, state in Postgres. Scale by adding replicas.
  • Dual-write notifications for change events.
Stack
Python · PostgreSQL · pgvector · Kubernetes
02 · IDENTITY · ADVENSIS

Platform identity layer

Enterprise sign-in that fits into the directories customers already run.

What I built

The Keycloak-based identity layer shared by the Advensis products: federation with LDAP / Active Directory, Entra ID brokering, silent SSO, MFA, and custom login themes.

Key decisions

  • Kerberos/SPNEGO for silent SSO — users on a domain machine sign in without a login screen.
  • Each service ships its own permissions manifest. Roles and permissions are seeded per tenant from those manifests, not hand-maintained.
  • Broker, don't migrate. Customers keep AD or Entra ID as the source of truth.
Stack
Keycloak · LDAP / AD · Entra ID · Kerberos/SPNEGO
03 · AUTHORIZATION · ADVENSIS

AuthZ Console

A single screen for managing who can do what, across services.

What I built

A React console for attribute-based access control (ABAC) that bridges SVT and svc-intellix. It went through several iterations as the permission model settled.

Stack
React · ABAC

Want the deeper version of any of these? I'm happy to walk through the design.