Putting AI to work
Drop the chat — use artificial intelligence intelligently
The easiest way to use AI on product data is also the worst: select a few hundred rows in the spreadsheet, throw them into a chat, and ask it to write descriptions, fill in the gaps, and clean up. It feels productive. And that's precisely why it's dangerous.
Google has just named something I've been running for a year
Last month, Google Cloud released an open specification called Open Knowledge Format — OKF. As I read it, I had a strange feeling of recognition. Because it describes, almost line by line, the way I myself have built up my knowledge base for over a year. Not because I was ahead of Google. But because the principle is old, and the direction the infrastructure is moving in now is the same direction a single consultant with a terminal also ends up in if they think it through.
I built my own RSS reader because I don't want an algorithm to choose my news for me
Last night and this morning, I built two small pieces of software that I've been missing for a long time: an RSS reader that runs in my own terminal, stores everything locally, and doesn't ask anyone's permission. Two open projects, and together they are smaller than most would think.
The world's best CRM is mine — because it's the only one built for me
I've written before that I built my own CRM, and that I did it eleven times faster. It has grown since then. It now automatically logs who I've written to from the moment I send an email. I can register a phone call with five words in the terminal. It creates a daily summary that distinguishes between a meeting, a call, and an email, and tells me about the week in prose. It even gives me a little streak counter and some experience points, so I remember to maintain the filing system.
A small contribution to Nushell: when completion should also look at the description
I recently made a small contribution to Nushell — the open source shell I use daily. It's a tiny improvement in how custom completers work, but it solves a specific friction I encountered every single time I had to use my own terminal tool. Here's what it's about.
The LLM lives in my shell — and that changes everything
I've built a small Nushell module called yolay.nu. It's about 470 lines of code. It's the most productivity-enhancing thing I've written this year, and I think it points to something broader about how AI should be integrated into a workday—not just mine.
The code and the model
There are two stories about AI and code. One is the one everyone talks about: that language models write programs for us. The other is the one that is more important, but that almost no one talks about: that code keeps language models in check.
The two stories are the same story. But you have to tell them together to understand where the field is actually heading.
I am now sharing memory with my AI — and it's changing how I think
For a year, I've been writing notes in a system called IWE. It's a small command-line tool that treats markdown files as a graph — notes link to each other, and you can navigate, search, and restructure without directly touching the files. It's my working memory layer as a strategic advisor.
This week, an MCP server was added to it. And it's the first time I've had a real experience of sharing memory with a machine.
The official way takes days. The task must be solved today.
On Wednesday, I needed something mundane: a list of board members in a number of Danish companies. Not for a database. Not for a product. Just for an afternoon of lead research — who sits where, and which chairmen overlap with people I'm already talking to.
That kind of data is public. It's on datacvr.virk.dk. Every single company in Denmark has a page. It should take twenty minutes.