Lovable, Bolt, and v0 will happily generate a full React app for you. Then comes the cliff. The moment you export that project to GitHub and want to run it on your own machine, you’re suddenly expected to be a developer: install Node.js, pick the right version, run npm commands in a terminal, decode the errors when something breaks. The people these tools serve best are exactly the people…
This is a personal, highly opinionated project in heavy development. I’m building it because I want to, the way you’d restore an old motorcycle in a garage. It’s slow on purpose. If you’re reading this, you’re early. zag is an AI coding agent where the window system is the platform. Almost every agent today owns the whole screen: one view, one conversation, navigation…
Claude Code isn’t a coding tool. The people using it best right now barely touch code. They run factory floors, legal teams, HR, finance, operations. They don’t think of it as software. They think of it as the thing that does the work . That took me two months to see. In April I wrote that I’d shipped 20+ tools, made zero revenue, and watched the value move from tools humans use…
AI made slop cheap. We made more of it, faster. I made my share. Here’s the part I missed. Slop isn’t what AI produces. Slop is what any multiplier produces when there’s no clarity behind it. Simon Willison, who popularized AI slop , drew the parallel directly: slop is to AI-generated content what spam became for email. The model isn’t the problem. The clarity behind it is.…
I built 20+ developer tools in six months. All of them work. None of them matter. Not because they’re bad. Because the world changed underneath them while I was shipping. A friend put it bluntly: “I don’t work on the tool. The tool is a means to an end, not the end. Disposable tooling.” He doesn’t build polished tool repositories. He builds what he needs, uses it, and…
I have tech friends, good developers, who tried Claude Code or Cursor or Codex. They gave it a task, it wrote some code, the code was wrong, and they told me “AI coding doesn’t work.” I hear this a lot. But I use Claude Code every day. It writes code, runs tests, manages my git workflow, plans my day, helps me prepare debates . We’re using the same models. So why are our…
Last night I debated “Will AI fully automate the Software Development Life Cycle by 2030?” at All-Stack Hangout in Timisoara, organized by Victory Square Partners . I was on the PRO side, alongside Alexandru Binzar (CEO, Hibyte). Against us: Cristian Toma (20-year software engineer) and Marius Balaj (UI engineer turned founder). Lavinia Cioloca moderated. What started as a structured…
I run Cafe Cursor events as a Cursor ambassador. Developers gather at a real cafe, drink coffee, and talk about how they’re building with Cursor. There’s something about the format that works. People share screens, trade prompts, debug each other’s agent workflows. The cafe is the context. Cursouls is a fun project, not trying to solve a specific problem. It’s a pixel cafe…
You want to build a dashboard that shows what your coding agents are doing. Or a TUI. Or a Cursor plugin. Or an OpenCode extension. The biggest challenge with AI agents today is trust . How do you know what your agent is doing when it’s deep in a 50-file refactoring? You need a clean, real-time stream of agent state: who’s running, who’s idle, who just finished, who just failed.
We (Balaj Marius and I) built Claudebin because we were tired of losing the “messy middle” of our Claude Code sessions. You debug a race condition, the agent rewrites three files, and the transcript is gone the moment you close the terminal. Claudebin turns those ephemeral sessions into shareable URLs. Run /claudebin:share , and you get a permanent link to the exact moment things…
Everyone has a story about how AI helped them learn something. “I asked ChatGPT to explain monads and it finally clicked.” But these stories are almost always sanitized after the fact. You get the polished takeaway, but you lose the “messy middle”—the confusion, the corrections, and the specific failure modes that actually lead to understanding. This post is the opposite of…
Claude Code sessions are high-value artifacts that live and die in the terminal. You spend an hour debugging a race condition with an agent, arrive at a clean solution, and then… it’s gone. The JSONL files in ~/.claude/projects/ aren’t something you can easily share with a colleague or link in a PR. claudebin is the “share button” for Claude Code. One Command,…
After 15 years of building production infrastructure—including a stint as CTO at QED (acquired by The Sandbox)—I thought I knew how to build a product. I was wrong. I knew how to build systems , but I had zero idea how to build distribution . This talk is the story of sisif.ai , and how I had to unlearn everything about being a CTO to find my first paying customers. The CTO’s Unlearning:…
Reskinning a web project manually is “death by a thousand paper cuts.” You spend hours hunting through Tailwind configs, global CSS files, and component-level styles, trying to figure out what needs to change to match a new design system. It’s tedious, error-prone, and exactly the kind of work humans shouldn’t be doing. opencode-reskin automates the…
Brainstorming with AI agents in a terminal is slow and painful. You type a paragraph, the agent asks a question, you type another paragraph… it’s a 10-minute back-and-forth just to agree on an approach. Most of that time is spent in “prose-churn”—typing things that should have been a single click. octto turns those 10 minutes of typing into 2 minutes of clicking. Agentic…
I built micode because I got tired of “magic” turning into “amnesia.” You describe a feature, the agent starts writing code, and for a while it feels like a superpower. Then context drifts. The agent forgets a decision made three tool calls ago, or it re-invents a utility that already exists in the codebase. The issue isn’t that AI coding tools are bad. The issue is…
March 17th, 2025. My regular work was done for the day. I had three hours before I needed to stop. A friend had recommended Claude Code a few days earlier. “Think of it like having a really junior developer on your team.” I was skeptical. I’d used Copilot for autocomplete, played with ChatGPT. Wasn’t sold on Cursor. But I had this project. The one everyone has. Making money…
Claude Code is fast, but it’s hard to look back. I found myself frequently wanting to show a colleague the exact “messy middle” of a session—the specific tool call or terminal output that finally led to a solution. But Claude stores everything as raw .jsonl files in ~/.claude/projects/ . Not exactly something you can link in a PR. claude-notes is a local CLI tool that turns those…
In the last couple of years, we have seen the rise of infrastructure projects in the blockchain space. One exciting development is parallel blockchains , specifically those that execute a batch of transactions in parallel. Concurrency at Scale When studying those chains, you can see some parallels to classical concurrency patterns , but those are hard to implement at scale. Why is that? In…
The code is a living entity. For the majority of the time, it stays in silence and it’s doing its job, without complaining. But, there are these creatures, humanoid, that from time to time, will change it. Will try to fix it, adapt, or completely remove parts of it. Those creatures tend to conserve energy and they are using pattern recognition to do so. They observe patterns and take fast…
Deploying a 3-tier application (with the presentation layer, business logic, and storage) can get a little tricky these days. Let’s say that we have a simple Django application, poll’s app from the tutorial. It runs perfect on our local machine, we added a requirements.txt to hold our dependencies. As for the database, we can use SQLite, since we’re developing only locally. The…
Inheritance, a simple and evil mechanism for re-using code, can get tricky. Traditionally, you may have encountered inheritance when you wanted to extend or override a class’s behavior. class Pet : def walk (self): print( 'walk' ) def eat (self): print( 'talk' ) def talk (self): print( '!@#$' ) class Dog (Pet): def talk (self): print( 'Ham!' ) class Cat (Pet): def talk (self): print( 'Miau!'…
I’m really nervous, only thinking of them. I had only one or two real interviews and conducted a few. Usually, I’m pretty lucky when it comes to job finding. The companies I like or want to work with contacted me, and it’s really flattering. No interview, just a small discussion, a beer and I’ll start next Monday. For the past 2.5 years, I’ve started practicing. Practicing maybe it’s too much. I…
So here I am, me, naked , starting a blog. I must admit, I’m shy and I don’t have any courage . I’ve always been this way. I lack the courage to make decisions, to commit, to trust myself. I’ve always wondered if people will accept me and I’ve tried my best to please and impress people. This led to a stagnation stage. I was too afraid of trying new things, learning, experimenting, trusting. I was,…