Writing about platform automation, edge systems, applied security, and open standards. Building automation-first platforms that survive production reality.
Part 8 of The Agent Platform Handbook. From Loop to Platform. Previous: The Model Is a Dependency . Next: Observability Is Not Logging. Post seven pulled the model out of a hardcoded string and made it a dependency the loop can route and fail over. A Model is now an interface: complete(request) returns a response, and the loop neither knows nor cares whether a cheap model, a strong model, a…
Part 7 of The Agent Platform Handbook. From Loop to Platform. Previous: Memory Is a Write Path . Next: The Bill Is Part of the Loop . Post six gave the agent a write path. A memory.ts module lets it save durable facts into a directory it cannot escape, indexed by the same BM25 ranker that powers retrieval, pinned and searched the same way, and walled off from the project context it must not…
The public conversation about who wins in AI is almost entirely a conversation about hardware. Who has the most accelerators, who controls the fabs, whose export-control list bites whose supply chain. That conversation is real, and I have spent enough time on the compute side to take it seriously. It is also, increasingly, the wrong place to look for the binding constraint. The people running the…
Someone sent me an MIT thesis this week. From Worm to Human: Scaling Brain Emulation , by Isaak Freeman, submitted March 2026 in the Boyden Lab. I read things like this fairly often. Brain emulation is nowhere near my field, but I keep more intellectual pet topics than I have time for, most of them with no obvious connection to the platform and infrastructure work that is supposedly my lane. I…
Part 6 of The Agent Platform Handbook. From Loop to Platform. Previous: Retrieval Is a Tool, Not a Layer . Next: The Model Is a Dependency. Post five gave the harness a read path. A retriever.ts module chunks the searchable half of .AGENTS/ by heading, ranks sections with BM25, and exposes the whole thing as a context_search tool the agent calls on the turns where it needs project detail. The…
I have watched an agent write the same date parser four times this week. Not one project. Four. Four sessions, four chats, four little functions that come out looking almost exactly like this: parseRFC3339 :: Text -> Either ParseError UTCTime parseRFC3339 = ... -- the property that says it actually works prop_roundtrip :: UTCTime -> Bool prop_roundtrip t = parseRFC3339 (formatRFC3339 t) == Right t…
Part 5 of The Agent Platform Handbook. From Loop to Platform. Previous: Context Is the Product . Next: Memory Is a Write Path . Post four gave the harness a context layer. A context.ts module reads markdown files from a .AGENTS/ directory at startup, applies a byte budget, wraps each file in a <context path="..."> block, and concatenates the whole thing under the core prompt. The agent now arrives…
Part 4 of The Agent Platform Handbook. From Loop to Platform. Previous: Tools: How Agents Actually Do Things . Next: Retrieval Is a Tool, Not a Layer . In post one we built the agent harness: a loop, a one-tool registry, a system prompt, a dispatcher, and an iteration budget. In post two we slid a sandboxed runtime underneath the shell tool without touching the loop. In post three we promoted the…
IT's ABOUT TECH #13 · Basel · 10 June 2026 I Stopped Writing Most of My Code The year my backlog came alive. Raffael Schneider Enterprise Solution Architect AI Platforms · raskell.io 01 It came down to three subscriptions. December 2022 → November 2025 December 2022 OpenAI. Subscription almost day one. Chat-first AI joins my daily workflow and stays there. Then Zed A Rust-built editor that bet on…
Part 3 of The Agent Platform Handbook. From Loop to Platform. Previous: Your Agent Wants Root . Next: Context Is the Product. In post one we built the agent harness: a loop, a one-tool registry, a system prompt, a dispatcher, an iteration budget. In post two we slid a sandboxed runtime under the shell tool without touching the loop. The harness stands today at tag post-02 of…
Part 2 of The Agent Platform Handbook. From Loop to Platform. Previous: What an Agent Actually Is . Next: Tools, How Agents Actually Do Things. In post one we did not just define what an agent is. We built one. A working harness in roughly one hundred and fifty lines of TypeScript on Bun: a loop, a one-tool registry, a system prompt, a dispatcher, and an iteration budget. A note on the word,…
Part 1 of The Agent Platform Handbook. From Loop to Platform. A 22-post series that walks the agent stack from a single loop to a production platform. Next: Your Agent Wants Root . If you sit in three meetings on the same day, you will hear the word agent used to mean three different things. A vendor will use it to mean a chat window with a logo. A platform team will use it to mean a workflow with…
Alasdair Allan, the creator of Vera , has started a public catalogue at agentlanguages.dev : programming languages designed for AI agents to write. When he mentioned it to me on LinkedIn, the count was twenty-one. When I checked, the site already listed twenty-eight. That pace is the point. Six months ago, the idea that programming languages would bend around AI authorship still sounded like a…
In The Last Programming Language Might Not Be for Humans , I argued that if AI becomes the primary author of code, the source language has to bend around that author. In What Comes After the Last Programming Language , I extended the argument one layer down: even the operating system still assumes a human is writing CPU-centric instruction streams, and that assumption has an expiration date. I…
It is the first of May, Labour Day. A holiday explicitly about work, which makes it a good day to ask whether the work that gets counted is the work that actually matters. Earlier this week I posted on LinkedIn about how Swiss innovation rankings tend to be illustrated with photos of Zurich, even though Basel produces a meaningful share of what those rankings reward. It performed better than most…
If you have ever tuned a WAF rule, you know the cycle. A rule triggers on legitimate traffic. You get paged. You look at the logs, which tell you the rule ID and the request path but not enough to reproduce what happened. You loosen the rule based on your best guess. You deploy. You wait. Next week, you get paged again, either because the rule is still too aggressive or because you loosened it too…
In the previous article , I described running sixteen AI agents as a virtual company over Christmas 2025. The architecture worked. The coordination model worked. What did not work was the economics. My token budget evaporated in days, not because the agents were unproductive, but because every act of coordination, every status update, every escalation consumed a metered resource that I could not…
In The Last Programming Language Might Not Be for Humans , I described three futures for programming languages as AI becomes the primary author of code. Explicit languages for machines. Declarative languages where types are proofs. And ultimately, no language at all, where AI generates machine code directly and the intermediate layer disappears. I left something out. There is a fourth possibility,…
Over the 2025 Christmas holidays I had sixteen AI agents running in parallel across four macOS workspaces. Each workspace held four Ghostty terminal panes, each pane running its own Claude Code instance, each instance working on a different piece of a different project. I was on Anthropic’s 20x Max subscription, and during the holiday period the token limits were generous enough that I could burn…
Why would anyone invest serious engineering effort into Haskell tooling in 2026? Haskell is a niche language. It has been a niche language for thirty years. Most companies do not use it. Most developers have never written a line of it. If you are going to pour months of work into building a package manager and toolchain from scratch, in Rust no less, the obvious question is: why not just use Rust?…
This morning I was standing at my desk, drinking watered-down instant coffee, doing what I do every morning after triaging the high-alert emails and notifications: thirty minutes of HackerNews. It is a ritual I time-box and never skip. I go to the office every day, and whether I am at that desk or at my home desk, the morning is the same. Coffee, posture, front page. HackerNews remains one of the…
I am writing this about two weeks after RSAC 2026 closed. In between, my coworkers and I drove down the West Coast, through Big Sur to LA, then out to Las Vegas for Easter weekend. That was deliberate. Not the route, exactly, but the space. The conference gave me a lot to process, and I have learned over the years that I process better when I am moving, when I am not sitting at a desk trying to…
The clearest way I can describe the motivation behind Zentinel is this: I got tired of not trusting the thing that stood between my users and the internet. Not because the proxies I ran were bad. They were not. I have genuine respect for the engineering in Nginx, HAProxy, Envoy. I learned a lot from operating them, and I mean that sincerely. But over years of running these systems in production, a…
If you had asked me a few years ago what kind of shift would truly change software again, I would probably have said something vague about machine learning becoming more useful, more accessible, more integrated into normal tooling. I would not have said that within a few years I would be spending large parts of my day in conversation with models, building products at a pace that used to feel…
There is an abandoned factory building in Glarus, a small town wedged between mountains in eastern Switzerland. In 2016, the building was loud. Not machinery-loud, fan-loud. Rows of bare motherboards bolted to open-air frames, each bristling with GPUs and daisy-chained power supplies. The air tasted like warm dust and ozone. Cables ran everywhere, held in place by zip ties and optimism. This was…
I was paying over two hundred dollars a month to run two apps that had zero paying users. Not because the apps were complex. Not because they needed high availability across regions. Because I was running Kubernetes on DigitalOcean, and Kubernetes has opinions about how much infrastructure you need. A control plane. Worker nodes. Load balancers. Persistent volumes. Managed databases. Each line…
A request arrives at your system. In the next 50 milliseconds, before any application code runs, this happens: TLS termination, route matching, WAF inspection against 285 detection rules, JWT validation, rate limit evaluation, request body validation against a JSON schema, and trace context generation. The request either dies at the edge or arrives at your backend pre-authenticated, pre-validated,…
I spent part of this year on the shores of Okinawa. The water there is something else entirely, this impossible azure that shifts to turquoise in the shallows, so clear you can see the coral formations from the surface. I found myself thinking about systems while I was there, the way you do when you’re floating in salt water with nothing pressing to attend to. Between swims, I read Tim…
I maintain around forty repositories across four GitHub organizations. Zentinel alone accounts for over thirty: the core proxy, a Rust SDK, and a growing collection of agents for WAF inspection, auth, rate limiting, GraphQL security, and a dozen other edge concerns. Archipelag spans an Elixir coordinator, a Rust node agent, Python and TypeScript SDKs, mobile agents in Kotlin and Swift, and…
Monday morning surprise As I spent most time doing stuff with my computer rather than configuring my beloved Linux distribution, Void Linux, I have developed the tendency to not really bother about Void at all until something crucial becomes unusable. After almost two years of having switched from Arch to Void, I have actually never encountered any major problem and felt I had made the right…
This site is called raskell.io. That is not an accident. I started learning Haskell because I liked mathematics and someone told me there was a programming language built on top of it. Not “inspired by” in the loose way that every language claims some mathematical foundation. Actually built on lambda calculus, category theory, and type theory, in a way where the math is not decoration but…
Void Linux as my daily driver Around six months ago, I decided to ditch my long in the tooth Arch-based setup on my belovest Thinkpad X1 Carbon. I’ve been very loyal over the years, and almost came to belive that Arch will be a constant in my adult life. While I kept up with upcoming technologies, I somehow lost track of the ever so diversifying landscape of Linux distributions. It took me a while…
Hello world This is the first post on raskell.io. My name is Raffael. I build software, mostly in the space of platform automation, edge infrastructure, and applied security. I also have a long-running interest in open-source software, operating systems, and the kind of hardware you find in recycling bins and give a second life to. This site exists to document real work and share patterns that…