I just published Welcome to Gas City https://t.co/zktstOmxgq
In a nutshell, some actually good engineers came along and rewrote Gas Town into an enterprise grade SDK for building your own orchestrators. It uses the original Gas Town MEOW stack, based on Beads and Dolt. MIT-licensed. It has been out for a few weeks, just launched to v1.0.0, and is ready for use. Check out Discord at https://t.co/UuutSdBH6r for more info.
April was my last month at Vendr, so I'm on the lookout for a new role!
LinkedIn in the reply 👇 but here is a quick summary:
• 13 yrs in dev (TypeScript/React, Go, AWS, Cloudflare)
• 5 yrs leading teams across the US & Europe — I know how to build high-performing teams and a strong engineering culture
• Currently mostly interested in LLMs — last year I spent a fair amount of time exploring LLM/RAG topics (Assistants API, Vercel AI SDK/LangChain, Turbopuffer/LanceDB)
Open to staff+, engineering manager, or site lead roles — I'm driven by product impact, strong teams, and long-term growth, rather than the exact title.
There’s only one little issue.
You have to write tests. And nobody likes writing tests.
Nobody.
Except AI agents. They just want to impress you, their overlord. That’s all they want. A smile on your face.
https://t.co/UBID4qFRQ8
Just tried Firebase Studio. And just like IDX before it, I have full confidence that Google can make good if it keeps at it, but it’s just broken now. This AI gold rush leads to so many half baked products being launched way too early.
Llama 4 Scout and Maverick from @Meta are now live on GroqCloud™.
Day-zero access. Real-time performance. Lowest cost—without compromise.
No waiting. No tuning. Just build fast.
There is a lot of (justified) of excitement about MCP, but just like most function calling approaches, I think it has a severe limitation at the moment, and I am kind of of flabbergasted why I am the only one that is bothered by it.
The problem is that when you define a tool using MCP [0] you can only specify the *inputSchema* but not the *outputSchema* (the same is the case for OpenAI [1], Claude [2], Mistral [3], Gemini [4], ...). And the optional description of a tool is just a "hint" to the model.
That means that when the model needs to decide to call a tool, it can only rely on the structure of the the inputs (not even on the description). But since it does not know the structure of the output of the call, it cannot reason about the composition of multiple tool calls to solve a complex problem. Instead it needs to take a guess, call some first tool, and then interpret the output before it can reason about how to continue.
The fact that tools are dynamically typed wrt to their results makes it also impossible for other tools, and humans, to reason about tools (that is a lot of tools :-). Imagine I would explain MCP to you by only showing the types you send to an MCP server, but none of the types that you receive from a server.
Since tools are for all intents and purposes really just fancy REST apis, just like OpenAPI definitions [5], tool calling and MCP tools should also specify their outputs.