<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Angelich</title><description>Co-Founder of Ragebite. Writing about building things, the process behind it, and everything that comes with it.</description><link>https://blog.angelich.rs/</link><language>en-us</language><item><title>The first step in our process, in the era of AI</title><link>https://blog.angelich.rs/blog/the-first-step-in-the-era-of-ai/</link><guid isPermaLink="true">https://blog.angelich.rs/blog/the-first-step-in-the-era-of-ai/</guid><description>Why we still spend the first days of a project in meetings before anyone opens an editor, and what changes once building got fast.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;We do not start by building.&lt;/p&gt;
&lt;p&gt;That is easy to forget right now, when everyone assumes speed is the whole point of AI. The instinct is to build a prototype the same day someone describes an idea, because building has gotten fast enough that skipping the thinking feels like the responsible move. Before we make any move, we spend a few meetings just trying to zoom out and understand the whole picture behind the idea, not just the feature someone is asking for, but the business behind it.&lt;/p&gt;
&lt;p&gt;The idea that shows up in the first meeting is rarely the real one. It is just how the partner understands it at that point. The real one tends to surface later, in the second or third conversation, usually as a correction to something we assumed too early.&lt;/p&gt;
&lt;p&gt;This did not come from a book. In 2020 we worked on &lt;a href=&quot;https://ragebite.com/work/esports-platform-for-logitech&quot;&gt;an esports platform for Logitech&lt;/a&gt;. We did not own the product, and we relied on our previous knowledge instead. In some way, all the decisions their team made seemed fine to us. We did not zoom out enough to see that player needs, the end users of the platform, mattered more than staff needs. After that, we changed how we work on projects. We look at the whole system before we build anything, and the first goal is to understand who the end user actually is.&lt;/p&gt;
&lt;p&gt;Once we have that, we map out the whole system before we touch anything: what it depends on, and where it would quietly assume something that is not true.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://blog.angelich.rs/systems-map.png&quot; alt=&quot;A systems map on a whiteboard, blurred so the text is not readable&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A real systems map from an early scoping session&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Then we spend about a week building a first version of the prototype. This is the same process we used before AI existed. AI just lets us move through it faster without changing what we are actually doing.&lt;/p&gt;
&lt;p&gt;Based on that first version, we take it back to the partner early, before it is finished. What comes back is rarely about the interface. It is usually about a part of the plan that only became visible once there was something to react to. Over the next week or two we just refine it, sometimes a small adjustment, sometimes something closer to the center of it.&lt;/p&gt;
&lt;p&gt;By about two weeks in, we have what I would call a ready to go prototype, not an MVP and not a finished product. Once we are on the same page and have a clear idea, that is when we define scope, not before. By that point we know what the real architecture needs to be and what infrastructure it depends on, because we are not guessing anymore.&lt;/p&gt;
&lt;p&gt;If we had defined scope first, we would be building it around assumptions instead of around something that already exists and already sat in front of the partner and got a real reaction. The prototype is what makes the next decision possible to make honestly instead of hopefully, not the deliverable itself.&lt;/p&gt;
&lt;p&gt;I still do not know how much of this is discipline, and how much is just fear of building the wrong thing quickly. From outside, both would look the same.&lt;/p&gt;
</content:encoded><author>alex@ragebite.com</author></item><item><title>The hard part of AI development is not the agent</title><link>https://blog.angelich.rs/blog/the-hard-part-of-ai-development-is-not-the-agent/</link><guid isPermaLink="true">https://blog.angelich.rs/blog/the-hard-part-of-ai-development-is-not-the-agent/</guid><description>What changed for us when AI development became less about the agent and more about the system around it.</description><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;About ten months ago, we were using coding agents the same way most teams do. Open a chat, describe what needs to happen, let it work, review the output.&lt;/p&gt;
&lt;p&gt;It worked, which was the surprising part. Tasks that used to take a developer a few hours were getting done in minutes, so we started doing more of it, and that is when the problems started.&lt;/p&gt;
&lt;p&gt;Getting an agent to write code was never the hard part. The hard part was everything around the work: what should happen next, what had to wait, what could be done separately, what each task was allowed to touch, and what counted as finished.&lt;/p&gt;
&lt;p&gt;Without a system behind it, all of that sits in someone&apos;s head: multiple sessions, multiple tasks, different repositories, checks, context, dependencies. The limit becomes your attention.&lt;/p&gt;
&lt;p&gt;When we started running more agents, the problems became obvious: work that could have happened separately was waiting for no real reason, work that should have been isolated was not, and one agent could touch the wrong place or change something another agent was also changing. The failure was sometimes obvious right away, and sometimes it only showed up later, when we tried to integrate the work.&lt;/p&gt;
&lt;p&gt;And everything was local, so if you closed the laptop or lost the internet connection, the work stopped.&lt;/p&gt;
&lt;p&gt;The individual agent sessions were fine, and the coordination around them was the problem.&lt;/p&gt;
&lt;p&gt;So we started building what we internally call &lt;code&gt;rcli&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;rcli&lt;/code&gt; sits above the agents, as the layer that plans work before implementation starts, splits it into epics and tasks, assigns each task to the right repository, defines what the task is supposed to change, and decides what needs to pass before the work moves forward.&lt;/p&gt;
&lt;p&gt;The agents still do the implementation. They read the task, write the code, run the checks, and try to fix what breaks.&lt;/p&gt;
&lt;p&gt;But the system decides when a task can start, where it runs, what it can touch, and whether the result matches what the task asked for. A human still decides what gets accepted back into the product.&lt;/p&gt;
&lt;p&gt;AI development for us is no longer a set of open chats, but a queue of tasks, separate workspaces on a server, checks that have to pass, and a clear point where someone reviews the result.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://blog.angelich.rs/rcli-board.webp&quot; alt=&quot;The rcli task board, ticket titles blurred&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The actual board, mid-run&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Claude Code is moving in a similar direction, where a coordinator shapes the work and smaller subagents handle bounded tasks.&lt;/p&gt;
&lt;p&gt;One practical thing worth saying is that most of our implementation work now goes through &lt;a href=&quot;https://cursor.com/blog/composer-2-5&quot;&gt;Cursor Composer 2.5&lt;/a&gt;. Planning, task decomposition, and decisions that need deeper reasoning go through Claude.&lt;/p&gt;
&lt;p&gt;There is always another model announcement. We pay attention, but we do not rebuild the workflow around each one. Once the task is shaped clearly enough, model choice becomes a routing decision.&lt;/p&gt;
&lt;p&gt;That is what AI development looks like for us now. We depend less on any single model doing something impressive, and more on the system that decides what it is allowed to do.&lt;/p&gt;
</content:encoded><author>alex@ragebite.com</author></item></channel></rss>