Archive
1046 posts · Page 78 of 88. ← Blog
How to publish an agent as a discoverable tool on a Model Context Protocol server so any MCP client can invoke it.
Wrap an agent with agenttool.New then register it with mcptool.AddTool to serve it over MCP on stdio, so any MCP client can discover and invoke it.
If you encode each SOC 2 control as a Terraform module, the audit becomes a check against module usage rather than a per-resource review. Notes from Bloom and adjacent projects.
Product management, seen up close, is less glamorous and more valuable than its reputation suggests: a lot of talking to people, deciding what matters, and helping a team build the right thing — mostly through influence, not authority. This closing post steps back to the day-to-day reality of the role, the path into it (especially from engineering), and how product thinking makes any engineer more effective. Whether you become a PM, work with one, or found a company, understanding product management pays off — because building the right thing is the point of building anything.
Product management, seen up close, is less glamorous and more valuable than its reputation: a lot of talking to people, deciding what matters, and helping a team build the right thing — mostly through influence, not authority. The day-to-day reality, the path in from engineering, and how product thinking makes any engineer more effective.
How Go's constructor-over-an-interface idiom lets you inject a real Foundry agent into a service — and a fake into its test — through the same seam.
Inject a Foundry agent into a service through a two-method ChatAgent interface, so main injects the real agent and the test injects a fake through the same constructor.
Notes from integrating OpenTelemetry into airshipit, an open-source bare-metal Kubernetes lifecycle project with contributions from Ericsson, AT&T, Microsoft, and others. The hard part wasn't OTel; it was making distributed traces useful across foreign code.
The hardest thing for perfectionist builders to accept is that a product is never "finished" before it ships — and shouldn't be. The most reliable way to build the right thing is to ship something small, learn from real usage, and improve, rather than perfecting in isolation and discovering at launch that you built the wrong thing. Shipping and iterating — the MVP, the feedback loop, the pursuit of product-market fit — is how good products are actually made: not by getting it right the first time, but by getting it right through iteration.
The hardest thing for perfectionist builders to accept is that a product is never 'finished' before it ships — and shouldn't be. The most reliable way to build the right thing is to ship something small, learn from real usage, and improve. Iteration beats perfection.
How to turn every agent run into an OpenTelemetry span with the SDK's otelprovider middleware.
Wire otelprovider.NewMiddleware into agent.Config.Middlewares to open a gen_ai span around every run, exported to whatever TracerProvider you register globally.
The azure-service-operator project lets you declare Azure resources as Kubernetes objects. Notes from the multi-vendor collaboration shape: how decisions got made, what slowed us down, what shipped despite it.
How do you know if your product is actually working? Not "did we ship the feature" but "did it make the difference we hoped?" Answering that requires metrics — and product management lives in a productive tension here: data is essential for knowing whether you're succeeding, yet the most metric-obsessed teams often build worse products by optimizing the measurable at the expense of the meaningful. Using data well means measuring what matters, letting it inform judgment, and resisting the traps that catch data-driven teams.
How do you know if your product is actually working? Answering that requires metrics — and PM lives in a productive tension: data is essential, yet the most metric-obsessed teams often build worse products by optimizing the measurable at the expense of the meaningful.
How to teach an agent to load and persist conversation memory in your own store via a custom history provider.
Implement a custom agent.HistoryProvider with Provide and Store hooks so the agent loads and persists history in your store; DisableStoreOutput keeps it the single source of truth.
The Picnic social platform served 1M+ users across a graph of Go microservices behind a GraphQL gateway. The latency win came from a counter-intuitive move: fewer services, tighter contracts.
A product is built by a collaboration, not a handoff. The most productive product teams run on a tight partnership between three roles — product, engineering, and design — each owning a distinct concern and none simply taking orders from another. When that collaboration works, products get built that are valuable, usable, and feasible; when it breaks down into a handoff or a hierarchy, everyone is frustrated and the product suffers. For engineers, understanding this collaboration is understanding how to work well with PMs and designers.
A product is built by a collaboration, not a handoff. The most productive product teams run on a tight partnership between three roles — product, engineering, and design — each owning a distinct concern and none simply taking orders from another. For engineers, understanding this is understanding how to work well with PMs.