Roman Imankulov (@rdotpy) profile picture

20 years of Python and still debugging with print(). Building Smello to fix that

Barcelona, Spain
Joined October 2011
Photo by Roman Imankulov (@rdotpy)Photo by Roman Imankulov (@rdotpy)Photo by Roman Imankulov (@rdotpy)Photo by Roman Imankulov (@rdotpy)Photo by Roman Imankulov (@rdotpy)Photo by Roman Imankulov (@rdotpy)Photo by Roman Imankulov (@rdotpy)Photo by Roman Imankulov (@rdotpy)Photo by Roman Imankulov (@rdotpy)
Hot take: using pipelines of agents to write PRDs, delegating to sub-agents for architecture, and then to sub-agents for executing tasks is a waste of time and tokens. Workflows like spec-kit or the BMAD method are cargo-culting workflows of developer organization. In organizations, procedures were created to work around the natural limitations of human abilities to execute certain tasks. Great product people are not that good at writing code, and good developers are not that good at product vision. React gurus are less efficient at writing Python, etc. So, we split the big task into smaller chunks, spending time communicating the bigger picture and how someone's work fits into it. In contrast, think of a capable solo founder. They don't delegate and normally don't document their decisions because everything lives in their head, in the same context. Working closely with some folks who scaled their business from a one-man band to a decent organization, I heard them complain about how efficient they were at the beginning of the project and how sluggish things became as they started scaling out and delegating. A smart agent is the perfect solo founder, and it can implement a product feature end-to-end without hand-holding and delegation. It can collect requirements, implement changes across the board, review its own code, deploy the changes, and write a press release. Modern models and harnesses are usually good enough to run it in a single session. Next time, cargo-cult a solo founder instead of a developer organization, maybe.
2
3
320
Okay, two posts turned into a series of six. For some reason, I rebuilt the same news reader agent in every framework I could get my hands on. The collection now includes Claude Code, Agent SDK, Pi, Pi SDK, Pydantic AI, and smolagents. Each one does the same thing, but the approaches look different in each case. Some approaches (like Pydantic AI and Pi SDK) felt like the implementation of the same thing in different languages. Others, like smolagents, feel very different: generate code rather than loop through tool calls. A few random thoughts on this: - I really liked Pi! Its minimalistic approach made specialized workflows easier than Claude Code's all-batteries-included behemoth. - smolagents' CodeAgent underperformed out of the box, but generating code instead of running thought loops means you don't burn tokens at scale. I added it to my mental toolbox for the right use case. roman.pt/series/agent-engine…
4
201
The Claude Agent SDK lets you flip the execution model: the agent drives the logic, Python handles hard logic parts. I rewrote my Claude Code news reader with the Agent SDK. Everything lives in a single file now, and it feels like a normal Python project again. The code still behaves like a Claude Code session, but it's easier now to deploy and productize. roman.pt/posts/agent-sdk-rew… (follow-up to roman.pt/posts/claude-code-a…) I have a draft doing the same thing with Pi, and Deep Agents from LangChain is next.
107
I've been experimenting with inverting how I use LLM. In my recent app, the agent loop drives the logic, and code only shows up where I need it. I documented how it works. Feedback so far has been one "dude, just use OpenClaw" and "dude, just use Pi." roman.pt/posts/claude-code-a…
3
4
280
Promised a quick and dirty solution. Delivered on dirty. Failed on quick.
1
282
My customers asked for a faster horse. Instead, I created them a GPT interface app.
2
241
Monday procrastination trick — when creating @NotionHQ page, spend more time choosing emoji than writing content
4
292
If it hurts, do it more often. How we introduced feature flags at @BuildingRadar and what have we learned so far. Special thanks to @DevCycleHQ, the feature management provider of our choice. roman.pt/posts/feature-flags…
1
5
293
That fear of a connection timeout on the last step of a purchase while the browser is still loading the page.
1
1
4
368
Following the most exciting opportunity works well if you are an expert in a regular environment. Otherwise, you enthusiastically follow a random choice. Thinking aloud why HELL YEAH strategy may not be the best move and what to do about it. roman.pt/posts/say-maybe-to-…
167
I wrote about my most popular posts of 2022. As I expected, "Don't Let Dicts Spoil Your Code," featured on Hacker News, was the top post. Surprisingly, my random notes on SQLAlchemy and Alembic came in second place. Check it out: roman.pt/posts/most-popular-…
1
2
239
Just wrote a new blog post about my challenges of staying awake and sociable late at night. I wonder if it's just me, or you can relate. roman.pt/posts/surviving-lat…
2
202
Finished "Come and see," a 1985 anti-war film on the Nazi occupation of Belarus. Frightening and realistic. No guts to watch it again. youtube.com/watch?v=zjIiApN6…
2
Thanks for everything, @heroku. Removed my last app from the platform.
1
Current status: eating yogurt that my son brought back from school. According to my wife, yogurt kept in a warm backpack all day can hurt his stomach, and I work from home anyway.
5
Roman Imankulov retweeted
After using AWS for ~14 years, I've internalised a handful of design patterns that I try to apply to my own software. I'm keen to know if it's the same for other folks. Roughly: tags, IDs (thrice), limits, pagination. (I'm not going to use the thread emoji)
41
564
59
3,017
The best part about the Portuguese language and culture is that you don't say, "I drink coffee." Instead, you "take it" as you take medicine. Makes total sense.
8
Yesterday heard that some pro-Putin Russians started questioning the war as the quality of their lives got hit. A story was shared as the light at the end of the tunnel, but it only made me angrier.
1
1
Like, oh, my business is falling apart. Let's wrap up this adventure. But what if the war brought wealth and prosperity to Russia? Would everything be OK to kill neighbors non-stop? Where's the moral compass of those people?!
2