Projects
I work on a platform that serves thousands of hotels. Each piece here is told as a pattern: the problem that shows up when a platform grows and the decision that solves it.
Secrets and trusted networks
The problem
When a platform grows from ten projects to hundreds, keys end up scattered across files, variables and someone’s head. Rotating a credential is an afternoon of finding where it lives.
The decision
A central vault with rotation, trusted networks between services and a single controlled path to each external vendor. Projects ask for the secret; nobody copies it. Rotating is one change in one place.
A firewall that learns
The problem
A booking engine receives malicious traffic that changes shape every week. Hand-written rules are always a step behind and, once tightened, block real guests.
The decision
A model that classifies every request instead of hand-written rules; rules remain for what a model must not decide.
Company MCP server and agent toolkit
The problem
Everyone used coding agents on their own, without access to the company’s email, chat or knowledge base, and with no measure of what they added.
The decision
A company MCP server with per-person permissions, a shared toolkit of skills (reusable instructions) and protocols, and usage telemetry to measure what each piece adds before extending it.
Internal service family
The problem
Internal services get built one at a time, each with its own bootstrap, its own logging and its own way to deploy, until maintaining them costs more than building them.
The decision
Flask services on a shared library and a short backend standard: it is cheaper to follow than to work around. A new service starts life with bootstrap, logging and deployment already solved, and ships like everything else.
Aloha Apartments
The problem
My family ran their apartments with a paper notebook: bookings by hand, incidents by phone, nothing to check from outside.
The decision
An app that reads bookings from photos of the notebook with an LLM, handles incidents via QR codes and shows each person only what they need. Running for years. Built for them, not for sale.
- wordpress-guardian: a file-integrity monitor for WordPress with Telegram alerts, in C++.
- Automated rollout of one component to dozens of hotels in an afternoon.
- Several browser extensions and internal tools from the front-end years.