Scott Mallinson
Writing
13 posts
Three quiet bugs hiding in a cross-service feature
Shipping a feature across four services meant coordinating an AI backend, a fare search service, and two frontend components. Along the way: a silent configuration bug, a duplicate event contract, and an HTML injection path.
The scaffolding tax: getting a new service properly bootstrapped
Bootstrapping a new service from a template isn't just renaming things; it's wiring it into the deployment pipeline, getting dependency management right, and building the scaffolding that makes all future work faster.
Shipping a conversational search flow across services
Cross-service work: shipping an end-to-end conversational flight search flow, instrumenting an MCP server with privacy-aware observability, improving AI coding assistant context injection, and cleaning up inconsistent naming across the codebase.