<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>ProductOwner.ro</title><description>Fractional product ownership, AI-augmented delivery, and eCommerce consulting. Led by Gabi Udrescu.</description><link>https://productowner.ro/</link><language>en-us</language><item><title>Building an AI Self-Improvement Loop from Claude Code Session History</title><link>https://productowner.ro/blog/ai-self-improvement-loop-from-claude-code-history/</link><guid isPermaLink="true">https://productowner.ro/blog/ai-self-improvement-loop-from-claude-code-history/</guid><description>How to extract knowledge from 7+ months of session history, build tools to analyze it at scale, and close the feedback loop where session corrections automatically improve future workflows.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Building an AI Self-Improvement Loop from Claude Code Session History&lt;/h1&gt;
&lt;h2&gt;The Problem&lt;/h2&gt;
&lt;p&gt;As a heavy Claude Code user (241 messages/day across coding, documentation, data analysis, and operational tasks), I accumulated 7 months of conversation history — 735 sessions across 30+ projects. That history contains domain knowledge, decisions, corrections, friction patterns, and workflow templates that get re-derived from scratch in every new session.&lt;/p&gt;
&lt;p&gt;I&apos;ve tried organizing this knowledge before: PARA method, skills backlog, retrospectives, video transcript extraction. Every system died from the same three causes: &lt;strong&gt;no time to maintain&lt;/strong&gt; (client delivery always wins), &lt;strong&gt;too much friction to use&lt;/strong&gt; (too many steps to file properly), and &lt;strong&gt;no immediate payoff&lt;/strong&gt; (value is for future-me, but present-me is fighting fires).&lt;/p&gt;
&lt;h2&gt;The Vision&lt;/h2&gt;
&lt;p&gt;A system that consumes its own output to improve itself — an ouroboros. Session history feeds knowledge extraction, which feeds better rules/skills/hooks, which produce better sessions, which feed more improvements. The loop must be &lt;strong&gt;self-maintaining&lt;/strong&gt; or it shares the fate of every prior organizational attempt.&lt;/p&gt;
&lt;p&gt;Inspired by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f&quot;&gt;Karpathy&apos;s LLM Wiki pattern&lt;/a&gt; — raw sources → LLM compilation → queryable markdown wiki&lt;/li&gt;
&lt;li&gt;A &lt;a href=&quot;https://www.youtube.com/watch?v=7huCP6RkcY4&quot;&gt;YouTube implementation&lt;/a&gt; extending the pattern for internal session data via Claude Code hooks&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/razzant/ouroboros&quot;&gt;Ouroboros&lt;/a&gt; — a self-modifying AI agent governed by a philosophical constitution&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ghostwright/phantom&quot;&gt;Phantom&lt;/a&gt; — an autonomous AI co-worker with three-tier vector memory (episodic/semantic/procedural), a 6-step self-evolution pipeline with safety gates, and MCP server exposure&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/JayantDevkar/claude-code-karma&quot;&gt;Claude Code Karma&lt;/a&gt; — open-source dashboard that parses Claude Code&apos;s local JSONL session data with production-grade models (7200+ lines of parsers), providing the data layer for session analysis&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What We Did in One Session&lt;/h2&gt;
&lt;h3&gt;Phase 1: Problem Space Mapping&lt;/h3&gt;
&lt;p&gt;Explored 11 of my projects to understand the full ecosystem:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A session dashboard tool&lt;/strong&gt; with production-grade JSONL parsers for Claude Code data (7200+ lines of parsing models)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;An autonomous agent&lt;/strong&gt; deployed on Hetzner with three-tier vector memory, 6-step self-evolution pipeline, and MCP server&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A professional portfolio site&lt;/strong&gt; showing expertise areas and services&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;An n8n orchestration PoC&lt;/strong&gt; (Symfony + n8n + PostgreSQL) showing workflow automation patterns&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A skills project&lt;/strong&gt; with 6 implemented skills, 28 unimplemented feature requests, 3 retrospectives never acted on — the case study of the broken feedback loop&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A major client project&lt;/strong&gt; with 549 Claude Code sessions, 502 git commits, 60+ bug reports, 14 meeting transcripts, 17+ runbooks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;An Obsidian vault&lt;/strong&gt; proving the Karpathy wiki pattern works (13 pages extracted from codebase analysis)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also examined 4 external references (Karpathy gist, video implementation, Ouroboros agent, 3-year WhatsApp capture vault in capacities.io).&lt;/p&gt;
&lt;h3&gt;Phase 2: Structured Interview&lt;/h3&gt;
&lt;p&gt;Used elicitation techniques to uncover:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Daily workflow vision&lt;/strong&gt;: Open laptop → see what matters today → work human-in-the-loop at 100x speed → fail 200 times → iteration 201 dazzles. &quot;I talked to Gabi and in 2h it was perfect.&quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why organizational systems die&lt;/strong&gt;: No time + too much friction + no immediate payoff. All three must be solved simultaneously.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compounding returns&lt;/strong&gt;: Every session makes the next one more efficient. The self-improvement loop isn&apos;t a side project — it&apos;s core to how I work.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Priority chain&lt;/strong&gt;: (1) Knowledge capture → (2) Nightly improvement proposals → (3) Morning briefing&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Phase 3: Tool Building&lt;/h3&gt;
&lt;p&gt;Built two tools during the session:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Session Analyzer CLI&lt;/strong&gt; — A Python script that navigates Claude Code JSONL files using the dashboard&apos;s existing parsers. Commands: &lt;code&gt;overview&lt;/code&gt;, &lt;code&gt;page N&lt;/code&gt;, &lt;code&gt;message N --context&lt;/code&gt;, &lt;code&gt;friction&lt;/code&gt;, &lt;code&gt;artifacts&lt;/code&gt;, &lt;code&gt;subagents&lt;/code&gt;. The subagent analysis shows reasoning chains, repeated search patterns, and &quot;hindsight lessons&quot; (what prior knowledge would have made the agent more efficient).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MCP Server from OpenAPI&lt;/strong&gt; — Used FastMCP to auto-generate 101 MCP tools from the dashboard&apos;s REST API. ~10 lines of code. Every endpoint (session timeline, subagent details, tool usage, file activity, analytics) becomes a tool Claude can call natively during any session. Already wired into Claude Code&apos;s MCP config.&lt;/p&gt;
&lt;h3&gt;Phase 4: 100-Session Analysis at Scale&lt;/h3&gt;
&lt;p&gt;Selected 100 substantial sessions (&amp;gt;50KB) across all projects. Distributed them to &lt;strong&gt;10 parallel subagents&lt;/strong&gt;, each analyzing 10 sessions using the analyzer tool. Each agent produced an insight report covering: session summaries, domain knowledge, friction patterns, subagent efficiency, improvement opportunities.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Results: ~145KB of insights, 1783 lines across 10 reports.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cross-cutting findings:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Finding&lt;/th&gt;
&lt;th&gt;Frequency&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Claude speculates instead of querying actual data&lt;/td&gt;
&lt;td&gt;6/10 groups&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Subagents spend 50%+ of tool calls discovering file locations&lt;/td&gt;
&lt;td&gt;5/10 groups&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Friction keyword detector catches only ~20-30% of real events&lt;/td&gt;
&lt;td&gt;3/10 groups&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Investigation-to-communication iterations equal investigation iterations&lt;/td&gt;
&lt;td&gt;3/10 groups&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Domain knowledge (entity relationships, API quirks) discovered multiple times, never persisted&lt;/td&gt;
&lt;td&gt;4/10 groups&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Phase 5: The Critical Insight&lt;/h3&gt;
&lt;p&gt;The most important finding came from examining &lt;strong&gt;what context was active during friction events&lt;/strong&gt;. When Claude writes technical acceptance criteria instead of behavioral ones, the user-story-writer skill is loaded and &lt;strong&gt;explicitly says&lt;/strong&gt;: &quot;Acceptance criteria are detailed behavioral specifications, NOT test cases.&quot; When Claude speculates about root causes, the bug-reporter skill is loaded and &lt;strong&gt;explicitly says&lt;/strong&gt;: &quot;Bug reports are factual documentation, NOT speculation.&quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The problem is not missing rules — it&apos;s a broken improvement loop.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Skills are v1. Users correct Claude in sessions. Those corrections contain the exact before/after data needed to improve the skills. But corrections never flow back into skill updates. So the same friction recurs across sessions.&lt;/p&gt;
&lt;p&gt;The self-improvement system must close this gap:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Session friction detected (e.g., &quot;Claude wrote technical ACs&quot;)
    ↓
Check what skill/CLAUDE.md was active at that moment
    ↓
Extract the correction (before: what Claude did, after: what user wanted)
    ↓
Propose specific skill amendment using actual correction examples
    ↓
Apply (auto or human-approved) → Skill v2
    ↓
Next session: less friction → validate improvement worked
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;What&apos;s Next&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Synthesize the 10 insight reports&lt;/strong&gt; into a master findings document with prioritized improvements&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Build the correction-to-skill pipeline&lt;/strong&gt; — for each friction event where a skill was active, extract before/after and propose skill amendments&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expand friction detection&lt;/strong&gt; — current keyword matching misses ~70% of real friction events&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test the MCP server live&lt;/strong&gt; — 101 tools wired up, not yet tested in a real session&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Build codebase navigation maps&lt;/strong&gt; — reduce subagent search thrashing by ~50%&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set up the nightly improvement job&lt;/strong&gt; — automated analysis → proposals → morning briefing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prototype Obsidian vault pages&lt;/strong&gt; from the 100-session findings&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Takeaways for the Community&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Your Claude Code session history is a goldmine.&lt;/strong&gt; Every correction you make, every friction event, every domain fact discovered — it&apos;s all in the JSONL files. Mine it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The Karpathy wiki pattern works for internal data&lt;/strong&gt;, not just external articles. Session logs = raw sources. LLM compilation = knowledge extraction. Wiki = your compounding knowledge base.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;FastMCP + OpenAPI = instant MCP server.&lt;/strong&gt; If your tool has a REST API, you can expose it as 100+ MCP tools in 10 lines of Python. No hand-coding tool definitions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;10 parallel subagents can analyze 100 sessions in ~5 minutes.&lt;/strong&gt; The bottleneck is synthesis, not analysis.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The biggest insight isn&apos;t about adding more rules — it&apos;s about closing the feedback loop.&lt;/strong&gt; Your skills and CLAUDE.md rules are probably already decent. The problem is that session corrections never flow back into improving them. Build the loop, not more rules.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Every organizational system you&apos;ve tried died for the same reason&lt;/strong&gt;: it required your ongoing attention. The self-improvement loop must be self-maintaining or it shares their fate.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>Product Drinks Ploiești, Episode 2: Ending an Eventful March</title><link>https://productowner.ro/blog/product-drinks-ploiesti-episode-2-eventful-march/</link><guid isPermaLink="true">https://productowner.ro/blog/product-drinks-ploiesti-episode-2-eventful-march/</guid><description>A rainy Sunday train ride to Ploiești, good food at Teatrul Nației, and a month packed with product, AI, and community events.</description><pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The rain was pouring so hard on this Sunday morning that for a moment I forgot I was heading to Ploiești by train and not commuting somewhere in the Netherlands. The weather hit differently this time, but the destination made up for it.&lt;/p&gt;
&lt;h2&gt;Back to Ploiești&lt;/h2&gt;
&lt;p&gt;This was my second time joining &lt;a href=&quot;https://luma.com/7znguq8c?tk=Ke7Dvt&quot;&gt;Product &amp;amp; Design Drinks&lt;/a&gt; in Ploiești and it starts to become a habit. (&lt;a href=&quot;/blog/product-design-drinks-ploiesti&quot;&gt;Here&apos;s how the first one went.&lt;/a&gt;) The more I visit this small city in Romania, the more it surprises me.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/in/bulentduagi/&quot;&gt;Bülent Duagi&lt;/a&gt; introduced us to &lt;a href=&quot;https://teatrulnatiei.ro/&quot;&gt;Teatrul Nației&lt;/a&gt;, a place I had never heard of before. Great concept, good food, and they completely conquered my heart with a sticker in the bathroom that said something along the lines of &quot;smoking forbidden. yes, vaping too&quot;. That&apos;s the kind of attention to detail that tells you the people behind the place care about what they&apos;re building.&lt;/p&gt;
&lt;p&gt;As always, the atmosphere was laid back. Topics ranged from product development, to AI workflows, to how life in Ploiești actually is, and of course, planning the next gathering. This time, the plan is a wine-tasting oriented location since spring is expected to bring better weather. I&apos;m already looking forward to it.&lt;/p&gt;
&lt;h2&gt;The conversations that matter&lt;/h2&gt;
&lt;p&gt;Besides the fun times, these kind of get-togethers bring real professional value. You get to sit down with people who think about similar problems and learn from how they approach things.&lt;/p&gt;
&lt;p&gt;I had a chance to hear from &lt;a href=&quot;https://ro.linkedin.com/in/andrei-stroescu-prod&quot;&gt;Andrei Stroescu&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/stanciucatalin/&quot;&gt;Catalin Stanciu&lt;/a&gt; about how they are tackling product challenges and orchestrating their AI workflows. The kind of conversation you can&apos;t get from a webinar or a LinkedIn post.&lt;/p&gt;
&lt;p&gt;I also met &lt;a href=&quot;https://www.linkedin.com/in/georgiana-atanasiu-921420a/&quot;&gt;Georgiana Atanasiu&lt;/a&gt;, who pivoted from CRO to Product. We had a lot to talk about, especially around Omniconvert and the cool things she was doing back in the day. She also recently attended the LIT Hackathon where she tackled a last mile delivery challenge from Sameday. That kind of problem felt like it would be perfect to model in &lt;a href=&quot;https://machinations.io&quot;&gt;Machinations.io&lt;/a&gt;, where you put all your variables into a scenario and run simulations until you find the highest throughput for parcel delivery, similar to what game designers do for game economics. Food for thought. And an even bigger FOMO for me for not making it to that hackathon in time.&lt;/p&gt;
&lt;h2&gt;An eventful March&lt;/h2&gt;
&lt;p&gt;March 2026 has been packed. My energy levels were not always there, and I was not fast enough to write about everything as it happened. But the events themselves were worth showing up for, and I plan to give each of them the dedicated write-up they deserve.&lt;/p&gt;
&lt;p&gt;Here&apos;s what my March looked like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mar 2&lt;/strong&gt; - &lt;a href=&quot;https://luma.com/9yiq7aub&quot;&gt;AI x Business #1: Using AI at Sameday&lt;/a&gt;. Dragoș Bărbulescu shared concrete use cases and lessons learned from actual AI implementations at Sameday. The chat was on fire with discussions about adoption metrics vs usage metrics. &lt;a href=&quot;/blog/ai-x-business-using-ai-at-sameday&quot;&gt;Read my writeup.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mar 3&lt;/strong&gt; - &lt;a href=&quot;https://luma.com/ek98spko&quot;&gt;How AI is changing product decisions&lt;/a&gt; at Booking Holdings in Bucharest. A fireside chat with product leaders from Booking.com, Clever Craft, and Trilogy. One of those rare in-person events where the networking afterwards is just as good as the panel. &lt;a href=&quot;/blog/how-ai-is-changing-product-decisions&quot;&gt;Read my writeup.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mar 6&lt;/strong&gt; - &lt;a href=&quot;https://luma.com/q84e6m21&quot;&gt;AI Talk: Cursor for non-coders&lt;/a&gt;. Radu and Tibi explored how Cursor works as a workspace for thinking and execution beyond coding. Cold email personalization, competitor analysis, prompt optimization. &lt;a href=&quot;/blog/cursor-for-non-coders&quot;&gt;Read my writeup.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mar 13&lt;/strong&gt; - &lt;a href=&quot;https://luma.com/deqssp7l&quot;&gt;AI Talk: Mentorship program automation with n8n&lt;/a&gt;. A live session on how the Product Mentoring Programme automates operations for 30+ mentors and 300+ mentees through n8n workflows. &lt;a href=&quot;/blog/mentorship-automation-with-n8n&quot;&gt;Read my writeup.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mar 13&lt;/strong&gt; - &lt;a href=&quot;https://luma.com/jly9t0et&quot;&gt;Change management strategy and vision&lt;/a&gt;. A session with Paula Anastasiade moderated by Bülent. This one hit close to home. I first encountered change management around 2013 when I worked with process mapping consultants, and I&apos;ve been trying to master it since. I even proposed a follow-up session: horror stories from change management gone wrong, part standup comedy, part group therapy. Bülent is already thinking about a dedicated series. I volunteered. &lt;a href=&quot;/blog/change-management-horror-stories-and-hard-truths&quot;&gt;Read my writeup.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mar 19&lt;/strong&gt; - &lt;a href=&quot;https://luma.com/pimw80w0&quot;&gt;Upskilling the Romanian IT Industry&lt;/a&gt; at ING Hubs. A hands-on session about turning soft skills into power skills in an AI-driven landscape. I asked some spicy questions there about role blending in the age of AI. &lt;a href=&quot;/blog/from-soft-skills-to-power-skills&quot;&gt;Read my writeup.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mar 25&lt;/strong&gt; - &lt;a href=&quot;https://www.meetup.com/claude-community-bucharest/events/313691334/&quot;&gt;Claude Community Bucharest: Meet the Builders&lt;/a&gt;. The inaugural gathering of the Claude AI community in Bucharest. 240 people showed up. Live demos of Claude Code and the Claude API for AI agents. The energy was real. &lt;a href=&quot;/blog/claude-community-bucharest-launch&quot;&gt;Read my writeup.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What I take from all of this&lt;/h2&gt;
&lt;p&gt;When I look at this list, the common thread is obvious. AI is everywhere, but the events that stuck with me were the ones focused on the human side: how we adopt, how we change, how we show up and talk to each other about what we&apos;re building.&lt;/p&gt;
&lt;p&gt;Ploiești was the perfect ending for this kind of month. No slides, no agenda, just good people, good food, and the kind of conversations that make you leave with more questions than answers. In the best way possible.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Thanks to Bülent for bringing this community together, and to everyone who made March such a rich month. See you at the wine tasting.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Claude Community Bucharest: 240 Builders Walk Into a Zoom Call</title><link>https://productowner.ro/blog/claude-community-bucharest-launch/</link><guid isPermaLink="true">https://productowner.ro/blog/claude-community-bucharest-launch/</guid><description>The inaugural Claude Community Bucharest event drew 240 attendees for live demos of Claude Code and the Claude API. A signal that Bucharest&apos;s tech scene isn&apos;t just consuming AI, it&apos;s building with it.</description><pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I had just ended a long day at work when the Zoom link went live. It was a Tuesday evening, I had no plans to be productive, and then 240 people showed up to talk about Claude. So much for an early night.&lt;/p&gt;
&lt;h2&gt;What happened&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.meetup.com/claude-community-bucharest/events/313691334/&quot;&gt;Claude Community Bucharest&lt;/a&gt; held its first ever gathering. An online meetup organized by &lt;a href=&quot;https://www.linkedin.com/in/alexbordei/&quot;&gt;Alex Bordei&lt;/a&gt; (Senior Software Engineer) and &lt;a href=&quot;https://www.linkedin.com/in/andreimarmureanu/&quot;&gt;Andrei Marmureanu&lt;/a&gt; (eCommerce Automation Expert). The format was straightforward: live demos of Claude Code and the Claude API for building AI agents, followed by Q&amp;amp;A.&lt;/p&gt;
&lt;p&gt;Two builders who use Claude decided Bucharest needed a community around it, so they made one. That&apos;s it.&lt;/p&gt;
&lt;h2&gt;Why 240 attendees matter&lt;/h2&gt;
&lt;p&gt;Let me put this in perspective. Getting 240 people to show up for the &lt;em&gt;first&lt;/em&gt; edition of anything is hard. Getting them to show up for a community-driven event about a specific AI tool, with no celebrity speakers and no giveaways, is a signal.&lt;/p&gt;
&lt;p&gt;The Romanian tech scene has always been strong on the engineering side. What&apos;s new is how quickly people are moving from &quot;I tried ChatGPT&quot; to &quot;I&apos;m building agents with Claude&apos;s API.&quot; That gap used to take years. Now it takes months, sometimes weeks.&lt;/p&gt;
&lt;p&gt;I&apos;m biased here. This entire website is built and maintained with Claude Code. Every blog post, every layout change, every deployment fix. I&apos;ve been using Claude daily for my product work long before this community existed. So watching a local group form around the same tool I already depend on felt like finding out your favorite obscure band just sold out a venue.&lt;/p&gt;
&lt;h2&gt;What I take from this&lt;/h2&gt;
&lt;p&gt;Bucharest has always had the talent. What it sometimes lacked was the connective tissue between individual builders doing interesting things in isolation. Communities like this one create that tissue. They turn &quot;I figured this out alone at 2 AM&quot; into &quot;here&apos;s how three of us solved the same problem differently.&quot;&lt;/p&gt;
&lt;p&gt;I&apos;ll be watching this one closely. And probably showing up late again.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Thanks to Alex and Andrei for putting this together. Building a community from scratch takes guts. 240 people on night one says you&apos;re onto something.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>The AI Superpowered Agile Professional</title><link>https://productowner.ro/blog/ai-superpowered-agile-professional/</link><guid isPermaLink="true">https://productowner.ro/blog/ai-superpowered-agile-professional/</guid><description>Reflections from an Agile Minds Romania session about what happens when AI, Agile, and Change Management actually work together.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I typed a joke in the chat during the Agile Minds Romania session. &quot;Any funny stories about AI adoption? Like a VP sending their AI companion to join the meeting on their behalf?&quot; I was going for laughs. Instead, &lt;a href=&quot;https://www.linkedin.com/in/mrvladvalentin/&quot;&gt;Vlad&lt;/a&gt; casually confirmed this is already common practice. His personal agent brings him meeting notes for meetings he can&apos;t attend because he&apos;s triple-booked.&lt;/p&gt;
&lt;p&gt;My joke was already yesterday&apos;s news.&lt;/p&gt;
&lt;p&gt;The session featured &lt;a href=&quot;https://www.linkedin.com/in/inanc-civaz/&quot;&gt;İnanç Jivaş&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/gozdetokerkumbasar/&quot;&gt;Gözde Toker-Kumbasar&lt;/a&gt;, moderated by &lt;a href=&quot;https://www.linkedin.com/in/florinmanolescu/&quot;&gt;Florin Manolescu&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/mihaiolaru/&quot;&gt;Mihai Olaru&lt;/a&gt;. I couldn&apos;t use my mic, so I lived in the chat. Three things stuck with me.&lt;/p&gt;
&lt;h2&gt;Agile + AI + Change Management&lt;/h2&gt;
&lt;p&gt;İnanç presented a framework: the intersection of Agile, AI, and Change Management is what makes organizations future-ready. Sounds like a LinkedIn headline, but the argument is solid.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;venn-beta
  set AI[&quot;AI&quot;]:100
  set Agile[&quot;Agile&quot;]:100
  set CM[&quot;Change Mgmt&quot;]:100
  union AI,Agile:20
  union AI,CM:20
  union Agile,CM:20
  union AI,Agile,CM[&quot;★&quot;]:5
  style AI fill:#3b82f6, fill-opacity:0.7, stroke:#2563eb, stroke-width:2, color:#fff
  style Agile fill:#10b981, fill-opacity:0.7, stroke:#059669, stroke-width:2, color:#fff
  style CM fill:#f59e0b, fill-opacity:0.7, stroke:#d97706, stroke-width:2, color:#fff
  style AI,Agile,CM fill:#4f46e5, fill-opacity:1, color:#fff
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;★&lt;/strong&gt; = future-ready, human-centered, adaptive organizations.&lt;/p&gt;
&lt;p&gt;AI without agile becomes shelfware. Agile without AI falls behind. Both without change management fail at adoption. I&apos;ve seen all three failure modes. &lt;em&gt;Diagram is my own interpretation, not İnanç&apos;s original slide.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Productivity vs. capability&lt;/h2&gt;
&lt;p&gt;I asked whether they feel more productive using AI. Gözde&apos;s answer stuck: she doesn&apos;t frame it as &quot;more productive&quot; or &quot;more fast.&quot; She frames it as &lt;strong&gt;more capable&lt;/strong&gt;. AI gave her the ability to notice patterns in her daily work she was blind to before. That shifts the question from &quot;am I faster?&quot; to &quot;can I do things I couldn&apos;t do before?&quot;&lt;/p&gt;
&lt;h2&gt;Roles are blending&lt;/h2&gt;
&lt;p&gt;I asked: &quot;Do we still have boundaries between roles, or is everybody doing everything now?&quot; İnanç&apos;s response: intelligence is becoming a commodity. If AI writes the code, it doesn&apos;t matter whether a developer or a product manager prompted it. What matters is critical thinking.&lt;/p&gt;
&lt;p&gt;Gözde added that our roles are evolving from executors to &lt;strong&gt;pattern interpreters and meaning-makers&lt;/strong&gt;. You&apos;re not being replaced by AI. You&apos;re being promoted from doing the work to deciding what the work should be.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Thanks to İnanç and Gözde for a session with more substance than most AI panels. And thanks to Vlad for confirming that my jokes have a shorter shelf life than I thought.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>From Soft Skills to Power Skills: What Happened at ING Hubs</title><link>https://productowner.ro/blog/from-soft-skills-to-power-skills/</link><guid isPermaLink="true">https://productowner.ro/blog/from-soft-skills-to-power-skills/</guid><description>Notes from an in-person session at ING Hubs Romania on upskilling the IT industry. Hofstede dimensions, burnout culture, self-leadership, and why patience might be the most underrated skill in tech.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;First slide of the evening at &lt;a href=&quot;https://www.linkedin.com/company/ing-hubs-romania/&quot;&gt;ING Hubs Romania&lt;/a&gt; and it&apos;s a &lt;a href=&quot;https://www.theculturefactor.com/country-comparison-tool&quot;&gt;Hofstede Cultural Dimensions&lt;/a&gt; chart comparing Germany, Romania, the UK, and the US. If you haven&apos;t come across Hofstede before, the idea is simple: every country has measurable cultural traits that shape how people work together. How comfortable are they with hierarchy? How much do they value individual achievement over group harmony? How do they handle uncertainty?&lt;/p&gt;
&lt;p&gt;Romania scores 90 on Power Distance (we&apos;re very comfortable with hierarchy) and 90 on Uncertainty Avoidance (we really don&apos;t like surprises). Meanwhile, we score just 20 on Indulgence, which roughly means we lean toward duty over enjoyment. Compare that to the US with 40 on Power Distance and 68 on Indulgence, and you start to see why Romanian teams and American clients sometimes feel like they&apos;re speaking different languages even when the English is perfect.&lt;/p&gt;
&lt;p&gt;The reason this chart matters: Germany, the UK, and the US are the countries that bring IT business to Romania. They decide if we&apos;re good executors or if we&apos;re more than that. And these cultural gaps are exactly where &quot;soft skills&quot; stop being soft and start being the difference between a delivery team and a strategic partner.&lt;/p&gt;
&lt;h2&gt;The event&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://luma.com/pimw80w0&quot;&gt;Upskilling the Romanian IT Industry&lt;/a&gt; was a working session on March 19, 2026, at ING Hubs Romania in Bucharest. The premise: transforming soft skills into &quot;power skills&quot; through practical application. A panel discussion on professional capabilities in today&apos;s AI-driven landscape, followed by interactive workshops and networking. Speakers: &lt;a href=&quot;https://www.linkedin.com/in/anne-dumitrache-7911751/&quot;&gt;Anne Dumitrache&lt;/a&gt; (Trainer, Coach and Organizational Psychologist), &lt;a href=&quot;https://www.linkedin.com/in/alin-pandichi/&quot;&gt;Alin Pandichi&lt;/a&gt; (IT Area Lead at ING Hubs Romania), &lt;a href=&quot;https://www.linkedin.com/in/silvanahelal/&quot;&gt;Silvana Helal&lt;/a&gt; (Digital Transformation Leader at Human Leap), and &lt;a href=&quot;https://www.linkedin.com/in/razvancaciula/&quot;&gt;Răzvan Căciulă&lt;/a&gt; (VP of Engineering at Showpad). The kind of event where you actually talk to people face to face, which apparently still matters.&lt;/p&gt;
&lt;h2&gt;Burnout vs. smart work&lt;/h2&gt;
&lt;p&gt;One of the tracks tackled something I see everywhere: the swing from overwork culture to the disengaged 9-to-5 mentality. Two extremes, neither productive. Add the AI revolution creating constant pressure for continuous learning, and you get a recipe for burnout, stress, and loss of intrinsic motivation.&lt;/p&gt;
&lt;p&gt;The learning goal was straightforward: sustainable high performance. Build resilience. Shift from external motivation (bonuses, promotions, fear) to intrinsic motivation (purpose, mastery, autonomy). Simple to say. Brutally hard to do. But at least naming it correctly is a start.&lt;/p&gt;
&lt;h2&gt;Self-leadership without the title&lt;/h2&gt;
&lt;p&gt;The second track that caught my attention was about self-leadership and strategic vision. The key issues were painfully familiar: over-reliance on managers, lack of proactive ownership, fear of stepping forward without formal authority. This is the Romanian IT industry in a nutshell. We wait for someone to tell us what to do, then complain that nobody listens to our ideas.&lt;/p&gt;
&lt;p&gt;The goal was to understand self-leadership as an individual contributor. Practice initiative, accountability, and influence without needing a title on your business card. I liked the framing. You don&apos;t need to be a manager to lead. You just need to stop waiting for permission.&lt;/p&gt;
&lt;h2&gt;The hero self and the traumatized self&lt;/h2&gt;
&lt;p&gt;There was a flipchart with a Venn diagram showing True Self, Traumatized Self, and Hero overlapping. The discussion around it was fascinating. The &quot;hero self&quot; for Romanians means not trusting authority. Which, given our history, makes perfect sense. But if we wear this mask too long, it becomes our identity.&lt;/p&gt;
&lt;p&gt;And then someone dropped the most Romanian insight of the evening: &lt;em&gt;&quot;The most damaging thing for Romanians: what will people say?&quot;&lt;/em&gt; I felt that one in my bones. We optimize for perception instead of progress. We avoid risk not because the risk is real, but because someone might judge us for trying. It&apos;s a cultural trap that keeps smart people playing small.&lt;/p&gt;
&lt;h2&gt;VUCA is dead, welcome to BANI&lt;/h2&gt;
&lt;p&gt;Apparently we&apos;ve graduated from VUCA (Volatile, Uncertain, Complex, Ambiguous) to BANI: Brittle, Anxious, Non-linear, Incomprehensible. The key shift is the &quot;non-linear&quot; part. You can&apos;t establish cause and effect anymore. Something happens in one corner of the world and your sprint planning falls apart for reasons nobody could have predicted.&lt;/p&gt;
&lt;p&gt;I don&apos;t love acronyms, but BANI at least feels honest. &quot;Anxious&quot; is a better description of the current moment than &quot;uncertain.&quot; Uncertainty implies you might figure it out. Anxiety implies you know you won&apos;t.&lt;/p&gt;
&lt;h2&gt;Resilience is entrepreneurship in disguise&lt;/h2&gt;
&lt;p&gt;One definition of resilience stuck with me: &quot;Resilience means that you will invest effort in something that might not happen.&quot; That&apos;s not just resilience. That&apos;s entrepreneurship. That&apos;s every side project, every product bet, every decision to learn something new when you have no guarantee it&apos;ll pay off.&lt;/p&gt;
&lt;p&gt;The adjacent topic was self-regulation. How do I regulate my emotions in this crazy world? No easy answers were offered, which I appreciated. Anyone who gives you a three-step framework for emotional regulation in 2026 is selling something.&lt;/p&gt;
&lt;h2&gt;Executive presence in one sentence&lt;/h2&gt;
&lt;p&gt;Someone defined executive presence as &quot;reading a room.&quot; That&apos;s it. Not the power suit, not the deep voice, not the MBA vocabulary. Reading a room. Knowing when to speak, when to listen, when to push, when to back off. I&apos;ve seen junior developers with better executive presence than C-suite executives. It&apos;s a skill, not a rank.&lt;/p&gt;
&lt;h2&gt;The panel: patience, critical thinking, and ethics&lt;/h2&gt;
&lt;p&gt;During the panel discussion, we tackled the question: &quot;Technical expertise is no longer enough on its own. Which soft skills are becoming critical for people in technical roles today?&quot;&lt;/p&gt;
&lt;p&gt;My answer was patience. I know it sounds boring. But patience is what lets you sit with ambiguity instead of rushing to the wrong solution. Patience is what lets you listen to a user&apos;s actual problem instead of jumping to the feature you already wanted to build. Patience is the skill that makes all other skills work.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/in/alin-pandichi/&quot;&gt;Alin&lt;/a&gt;&apos;s answer was sharper: problem framing and critical thinking, especially the ability to filter the flood of AI-generated information. He also said something I wrote down immediately: &lt;strong&gt;&quot;Soft skills are like muscle. They grow when you&apos;re using them.&quot;&lt;/strong&gt; Not when you read about them. Not when you attend a workshop. When you actually practice them in the messy, uncomfortable, real world.&lt;/p&gt;
&lt;p&gt;Răzvan brought up the ethical aspects of technology, which was a welcome addition. We spend so much time talking about what AI &lt;em&gt;can&lt;/em&gt; do that we forget to ask what it &lt;em&gt;should&lt;/em&gt; do.&lt;/p&gt;
&lt;h2&gt;The harder questions&lt;/h2&gt;
&lt;p&gt;The panel also wrestled with: &quot;How can we assess and track the development of these skills? Do you believe frameworks such as OKRs, KPIs, or other evaluation methods can meaningfully capture progress in communication, collaboration, or emotional intelligence?&quot;&lt;/p&gt;
&lt;p&gt;And: &quot;Where do you think people and organizations currently stand compared to the level that will be required?&quot;&lt;/p&gt;
&lt;p&gt;I don&apos;t think we landed on clean answers. Which is the point. If measuring soft skills were easy, we&apos;d have solved it decades ago. The fact that we&apos;re calling them &quot;power skills&quot; now is at least an acknowledgment that they&apos;re not secondary to technical skills. They&apos;re what makes technical skills useful.&lt;/p&gt;
&lt;h2&gt;What I&apos;m taking home&lt;/h2&gt;
&lt;p&gt;The Hofstede chart at the beginning set the tone perfectly. Romania&apos;s IT industry exists in a web of cultural expectations set by Germany, the UK, and the US. We can either keep being &quot;good executors&quot; who deliver what they&apos;re told, or we can develop the power skills that let us shape what gets built, not just how it gets built.&lt;/p&gt;
&lt;p&gt;Resilience, self-leadership, executive presence, emotional regulation, patience. None of these show up on a Jira board. All of them determine whether your Jira board matters.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Good event. Good people. Good conversations that didn&apos;t end when the panel ended. That&apos;s the part you can&apos;t replicate on Zoom.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Change Management: Horror Stories and Hard Truths</title><link>https://productowner.ro/blog/change-management-horror-stories-and-hard-truths/</link><guid isPermaLink="true">https://productowner.ro/blog/change-management-horror-stories-and-hard-truths/</guid><description>Paula Anastasiade broke down change management strategy and vision in a session that hit close to home. I walked away with more questions than answers, and a proposal for a future meetup involving wine and group therapy.</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Watch the full session&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;100%&quot; height=&quot;400&quot; src=&quot;https://www.youtube.com/embed/UIr34KaO1qM&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;Gândire Strategică: Strategia și viziunea de change management&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;Back in 2013, a consultant I was working with dropped a line that rearranged something in my brain: if you don&apos;t do change management properly, everyone will end up hating each other equally. I&apos;ve been trying to get better at it ever since.&lt;/p&gt;
&lt;h2&gt;Paula gets it&lt;/h2&gt;
&lt;p&gt;When &lt;a href=&quot;https://www.linkedin.com/in/bulentduagi/&quot;&gt;Bülent Duagi&lt;/a&gt; announced a &lt;a href=&quot;https://luma.com/jly9t0et&quot;&gt;session on change management strategy and vision&lt;/a&gt; with &lt;a href=&quot;https://www.linkedin.com/in/panastasiade/&quot;&gt;Paula Anastasiade&lt;/a&gt;, I signed up immediately. Paula brings over a decade of change management experience across multinationals in IT, tech, and FMCG — the kind of person who knows which transformations actually stick and which ones collapse under their own weight.&lt;/p&gt;
&lt;p&gt;Paula covered the foundations: what change management actually is (not just adoption, but whether people can use the solution &lt;em&gt;consistently&lt;/em&gt; as it was designed), the role of sponsors and leaders, and the critical difference between vision, strategy, and narrative. Vision is what future we&apos;re building through change, strategy is how we get there, and narrative is how we communicate both. Simple framework, but the kind of simple that takes years of experience to distill.&lt;/p&gt;
&lt;h2&gt;The elephant in the room: upper management&lt;/h2&gt;
&lt;p&gt;The question nobody loves to ask out loud: what do we do with upper management who doesn&apos;t see the value of change management?&lt;/p&gt;
&lt;p&gt;In many organizations, especially in Romania, the people with decision-making power treat change management as an optional extra. Something you do if there&apos;s budget left over, not something you plan for from day one. Paula and Bülent addressed this head-on: the community is fragmented, there&apos;s no unified standard, and what change managers are typically taught has limited applicability in AI and digital transformation contexts.&lt;/p&gt;
&lt;p&gt;What resonated most was the idea of &lt;em&gt;magical thinking at the top&lt;/em&gt;: leaders who assume that because &lt;em&gt;they&lt;/em&gt; understand the change, the understanding automatically downloads into everyone else&apos;s mind. If you&apos;ve ever worked in a company where the CEO announces a major transformation in an all-hands and then expects adoption by next quarter, you know exactly what I&apos;m talking about.&lt;/p&gt;
&lt;h2&gt;Making the cost of doing nothing visible&lt;/h2&gt;
&lt;p&gt;One approach that came up in the chat: frame change management as a financial risk, not a nice-to-have. If you think it&apos;s expensive to sit down and talk about what might go wrong with this change, wait until you see the bill for not doing it.&lt;/p&gt;
&lt;p&gt;The challenge is sustainability. Keep raising uncomfortable questions and you risk being tuned out, especially when your perspective differs from the room. Navigating that balance between honesty and political capital is its own skill.&lt;/p&gt;
&lt;h2&gt;The AI fear nobody wants to name&lt;/h2&gt;
&lt;p&gt;The conversation inevitably shifted to AI. Not &quot;AI will change how we work&quot; in some abstract sense, but the raw, visceral fear of obsolescence. That&apos;s what keeps people up at night, and that&apos;s the kind of change that needs the most careful management. You can have the best AI implementation strategy in the world, but if your people think the end goal is to replace them, good luck getting their buy-in.&lt;/p&gt;
&lt;h2&gt;Horror stories and group therapy&lt;/h2&gt;
&lt;p&gt;An idea that came up during the session: a future meetup built around horror stories from change management experiences gone wrong. Part comedy, part group therapy. The reception was immediate — Cristina said one session wouldn&apos;t be enough, Bülent might create a dedicated series, and I volunteered to help make it happen. Preferably at Dealu Mare with some fetească neagră, because tongues loosen up after a couple of glasses :D&lt;/p&gt;
&lt;p&gt;The best learning I&apos;ve ever done came from hearing about things that went wrong. Every product owner, every change manager, every leader has at least one story where they thought they were doing everything right and it still blew up. Those stories, told honestly, are worth more than a hundred best-practice presentations.&lt;/p&gt;
&lt;h2&gt;The bits that stayed with me&lt;/h2&gt;
&lt;p&gt;A few things from the discussion that stood out:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Leaders hiding behind fear.&lt;/strong&gt; Leaders afraid of their people&apos;s reaction to change prefer to hide information, which only creates more rumors and gossip. The very thing they&apos;re trying to avoid, they&apos;re creating.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Starting from reality, not textbooks.&lt;/strong&gt; Build on the organization&apos;s actual level of maturity, resources, and context — not on what the framework says they &lt;em&gt;should&lt;/em&gt; do.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Change management as a portfolio.&lt;/strong&gt; When you have a system migration running simultaneously with a restructuring and an AI rollout, each change competes for the same people&apos;s attention and emotional bandwidth. Managing them as a portfolio minimizes collisions.&lt;/p&gt;
&lt;h2&gt;What I take from all of this&lt;/h2&gt;
&lt;p&gt;As a product owner, the hardest part of my job is not the product decisions — it&apos;s getting people aligned around change. Building the right product means nothing if the organization can&apos;t absorb the change that product introduces. Paula&apos;s session reinforced that conviction and gave me better language to talk about it.&lt;/p&gt;
&lt;p&gt;Looking forward to the next session. And if the horror stories meetup happens, I&apos;ll bring the wine.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Thanks to Bülent for moderating and to Paula Anastasiade for a session that was both practical and thought-provoking. If you want to join future Product Makers sessions, follow the community. And if you have a change management horror story, keep it warm. We might need it soon.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>How an MCP Server Turned n8n from Frustrating to Fast</title><link>https://productowner.ro/blog/mentorship-automation-with-n8n/</link><guid isPermaLink="true">https://productowner.ro/blog/mentorship-automation-with-n8n/</guid><description>Watching someone build n8n workflows live with Claude Code and an MCP server, and why the friction reduction matters more than the automation itself.</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Watch the full session&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/pBtiXlpAp6E?si=c6J4EaxaJUa3GpMr&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;I was sitting in the audience of a &lt;a href=&quot;https://luma.com/deqssp7l&quot;&gt;Product Makers Romania&lt;/a&gt; live session, watching &lt;a href=&quot;https://www.linkedin.com/in/AdrianBotea/&quot;&gt;Adi&lt;/a&gt; build an automation workflow in real time, and the moment that got me was not the workflow itself. It was when he dictated a prompt into &lt;a href=&quot;https://docs.anthropic.com/en/docs/claude-code&quot;&gt;Claude Code&lt;/a&gt;, Claude read the existing workflow through an MCP server, and spat out a new one in seconds. No copy-paste. No downloading JSON files. No switching tabs. Just &quot;go look at that workflow and make me a new one without the Slack part.&quot;&lt;/p&gt;
&lt;h2&gt;The setup: 30 mentors, 300 mentees, and a lot of forms&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://luma.com/deqssp7l&quot;&gt;Product Mentoring Programme&lt;/a&gt; is not small. We are talking 30+ mentors, 300+ mentees, 12 tracks, and a team of volunteer organizers who need to know what is happening without drowning in admin work. The session was Adi walking two new organizers, Ioana and Diana, through the &lt;a href=&quot;https://n8n.io/&quot;&gt;n8n&lt;/a&gt; workflows that keep the whole thing running.&lt;/p&gt;
&lt;p&gt;The core flows are deceptively simple on paper. A mentor fills out a form on &lt;a href=&quot;https://www.questionscout.com/&quot;&gt;QuestionScout&lt;/a&gt;. The form submission triggers a webhook. The webhook pushes data into a Google Sheet. Twice a day, a scheduled trigger reads the sheet and sends a summary to Slack. That is it. Mentor signup, done.&lt;/p&gt;
&lt;p&gt;But &quot;that is it&quot; hides the interesting parts.&lt;/p&gt;
&lt;h2&gt;The manual mapping problem nobody warns you about&lt;/h2&gt;
&lt;p&gt;Here is what I appreciated about this session: Adi did not hide the ugly parts. He showed the field mapping step where you have to manually connect each form field to a spreadsheet column. He tried the automatic mapping, it pulled in a ton of noise he did not want, so he switched to manual. One field at a time. Name, email, phone, LinkedIn, expertise, topics, photo, introduction, submission date.&lt;/p&gt;
&lt;p&gt;It is tedious. It is the kind of work that makes you question your life choices. And it is exactly the kind of thing nobody shows in a polished demo.&lt;/p&gt;
&lt;p&gt;He also showed a trick he learned from Georgiana, a QA person in the programme: &lt;strong&gt;pin your test data&lt;/strong&gt;. Instead of filling out the form every single time you want to test a step, you pin the webhook output and reuse it. He said he wasted hours before learning this. I believe him. I have been there with different tools, different contexts, same frustration.&lt;/p&gt;
&lt;h2&gt;The MCP moment that changed everything&lt;/h2&gt;
&lt;p&gt;Adi was transparent about his history with n8n. He started using it in August last year, and it was rough. Copy-pasting between Claude and n8n, taking screenshots of errors, manually downloading JSON workflow files to give Claude context. He described hitting a wall where he simply could not make progress.&lt;/p&gt;
&lt;p&gt;Then he discovered the &lt;a href=&quot;https://github.com/czlonkowski/n8n-mcp&quot;&gt;n8n MCP server&lt;/a&gt;. Game changer. His words, not mine, but I agree with the assessment.&lt;/p&gt;
&lt;p&gt;With the MCP connected, Claude Code can read workflows directly, understand the node structure, create new workflows, update existing ones, and debug problems without Adi having to be the middleman shuttling information back and forth. He showed it live: asked Claude to describe an existing workflow, then asked it to create a simplified copy. It worked. The new workflow had the same webhook configuration, the same field mappings, ready to go.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The friction reduction is the point.&lt;/strong&gt; Adi said he spent 8 hours on a flow with the MCP that would have taken 3 days without it. Not because the MCP is magic, but because it eliminates the thousand paper cuts of context-switching between tools. Death by a thousand paper cuts, as he put it. I use that exact phrase for half the problems I solve at work.&lt;/p&gt;
&lt;h2&gt;The badge generator: where it gets fun&lt;/h2&gt;
&lt;p&gt;The more complex workflow was the badge generator. When a mentee completes the programme, they get a personalized badge they can post on LinkedIn. The flow goes: QuestionScout form, extract data, look up the mentor mapping in a spreadsheet, build a payload, send it to &lt;a href=&quot;https://www.renderform.io/&quot;&gt;RenderForm&lt;/a&gt; API, download the generated image, rename the file to something human-readable (instead of a random hash), split the output to both email it to the mentee and upload it to Google Drive, and log everything to an audit sheet.&lt;/p&gt;
&lt;p&gt;And none of the code was written by Adi. Claude wrote the JavaScript nodes. Claude built the formatting logic for Slack messages. Claude handled the LinkedIn URL normalization when someone forgot to include &lt;code&gt;https://&lt;/code&gt;. Adi&apos;s job was to describe what he wanted and debug when things broke. &lt;strong&gt;That is product thinking applied to automation.&lt;/strong&gt; You define the outcome, the tool figures out the implementation.&lt;/p&gt;
&lt;h2&gt;LLMs as amplifiers, not replacements&lt;/h2&gt;
&lt;p&gt;The best line of the session came when someone asked about what skills matter in this world. Adi&apos;s answer was blunt: LLMs are amplifiers. If you cannot explain what you want to Ioana and Diana, you will not be able to explain it to Claude either. If you communicate well with humans, you will communicate well with AI. The reverse is also true.&lt;/p&gt;
&lt;p&gt;He mentioned using &lt;a href=&quot;https://wisprflow.ai/&quot;&gt;WhisperFlow&lt;/a&gt; to dictate his prompts, and being embarrassed at first because his spoken thoughts were messy and repetitive. But then he would tell Claude to &quot;play it back to me&quot; and see how well it structured his rambling. That is a workflow I have stolen for my own use. Thinking out loud into a dictation tool, then letting the LLM organize it, is genuinely better than trying to type perfectly structured prompts.&lt;/p&gt;
&lt;h2&gt;Why n8n and not just Claude Code for everything&lt;/h2&gt;
&lt;p&gt;Someone asked this directly: why not do everything in Claude Code or Cursor? Adi&apos;s rule is practical. If it is something only he runs, even if he runs it 15 times, he keeps it in Claude Code. If other people depend on it and it needs to run without his laptop being open, it goes to n8n. The mentoring programme workflows need to run 24/7 regardless of whether Adi is at his desk. That is the whole point.&lt;/p&gt;
&lt;p&gt;He even showed a personal example going the other direction. He had a client time-tracking workflow in n8n that reads color-coded calendar events and generates billing summaries. It worked, but he was already living in Claude Code all day, so he rebuilt it as a Claude Code skill. One less browser tab. One less context switch. The right tool for the right context.&lt;/p&gt;
&lt;h2&gt;The real takeaway&lt;/h2&gt;
&lt;p&gt;The session was not really about n8n. It was about how much faster you can move when you reduce the friction between your intent and the tool that executes it. MCP servers are the current best answer to that friction for workflow automation. They let the LLM see what you have built, understand it, and modify it without you being the translator.&lt;/p&gt;
&lt;p&gt;Adi ended by asking Ioana and Diana how ready they felt on a scale of 1 to 10. Ioana said 8. Diana said &quot;10, but I feel ready to break some things.&quot; That is the best answer. You are never ready to use a new tool until you are ready to break it.&lt;/p&gt;
&lt;p&gt;I walked away wanting to connect more of my own tools through MCP servers. Not because it is trendy, but because I have felt that same copy-paste friction Adi described, and I know how much time it eats.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;If you are running community operations manually, look into n8n with an MCP connection to your LLM of choice. The setup cost is real, but the iteration speed after that is something else entirely. And if you are presenting your automation work, do it like Adi did: live, messy, with real data and real mistakes. That is how people actually learn.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Cursor for Non-Coders: CSV Wrangling, Ad Scraping, and Arguing With Yourself</title><link>https://productowner.ro/blog/cursor-for-non-coders/</link><guid isPermaLink="true">https://productowner.ro/blog/cursor-for-non-coders/</guid><description>Radu showed how Cursor turned 10,000 messy contacts into a cold email campaign. Tibi used it as a thinking partner. Both made me reconsider what &apos;developer tool&apos; even means.</description><pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Watch the full session&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;100%&quot; height=&quot;400&quot; src=&quot;https://www.youtube.com/embed/jR2j2H6V3qg&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;AI Talk | Cursor for Non-Coders | Product Makers Romania&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;I wrote about a &lt;a href=&quot;/blog/git-for-product-requirements&quot;&gt;workflow for turning meeting transcripts into structured requirements&lt;/a&gt; using AI. Record the kickoff, transcribe it, extract decisions and action items, iterate. So when &lt;a href=&quot;https://lu.ma/productmakers&quot;&gt;Product Makers Romania&lt;/a&gt; hosted a session called &quot;Cursor for Non-Coders,&quot; the premise felt familiar. One speaker took that same idea further: he drops a transcript into Cursor, chains it through a strategy memo template, then runs the output through a Devil&apos;s Advocate framework. No code written. Just structured thinking inside a code editor.&lt;/p&gt;
&lt;h2&gt;10,000 rows of garbage data and a cold email dream&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/in/raduirava/&quot;&gt;Radu&lt;/a&gt; went first with a use case that had nothing to do with writing software. He had a marketplace business (think EMAG, but only the marketplace side) with about 50 companies and 1,000 customers. Classic chicken-and-egg problem. He needed to onboard more companies to make the marketplace attractive, and he had a list of 10,000 potential companies to reach out to.&lt;/p&gt;
&lt;p&gt;The catch? The data was a mess. Three different columns for the owner&apos;s name, with values swapped between them. Company descriptions that read like someone&apos;s autobiography. Some fields in French. Some fields empty. The kind of CSV that makes you question your life choices.&lt;/p&gt;
&lt;p&gt;What he did next was beautifully iterative. He fed the CSV into &lt;a href=&quot;https://www.cursor.com/&quot;&gt;Cursor&lt;/a&gt;, asked it to add the columns he needed (first name, core offering, target segment, promo URL), and then went step by step. Extract first names, but handle &quot;Dr. James Chan&quot; correctly instead of just grabbing the first word. Deduce core offering from verbose company descriptions. Translate French entries to English. Batch API calls in groups of 50 to keep costs down. After each step, he exported the CSV, opened it in Google Sheets, eyeballed it, and went back with corrections.&lt;/p&gt;
&lt;p&gt;No code review. No folder structure. He didn&apos;t even look at the code Cursor generated. He just talked to it, checked the output, and iterated. Nine steps later, he had 3,200 clean, personalized contacts. He loaded them into his cold email tool, sent the sequence, and 33 companies signed up. That&apos;s a 1% conversion rate, which sounds small until you realize those 33 new companies drove 19% of sales in the first week. Average order value went up 2% too, which on his actual business model (not the EMAG analogy) was significant.&lt;/p&gt;
&lt;p&gt;The part that stuck with me: he said at the end, when he looked at the actual code Cursor had written, it was a mess. V1, V2, V3 files everywhere, no organization. But it didn&apos;t matter, because the output worked. That&apos;s a fundamentally different relationship with code than what developers have. And it&apos;s valid.&lt;/p&gt;
&lt;h2&gt;Scraping LinkedIn Ads without paying for a SaaS&lt;/h2&gt;
&lt;p&gt;Radu&apos;s second use case was competitive intelligence. He wanted to study a competitor&apos;s LinkedIn ad strategy, so he pointed Cursor at the &lt;a href=&quot;https://www.linkedin.com/ad-library/&quot;&gt;LinkedIn Ad Library&lt;/a&gt;. The usual browser extensions didn&apos;t work (LinkedIn probably sent them a cease and desist). So he had Cursor build a scraper using Playwright, a headless browser that scrolls through pages, clicks &quot;Load More&quot; buttons, and extracts everything: ad copy, CTA, creative URLs, impression ranges, run dates, advertiser info.&lt;/p&gt;
&lt;p&gt;He used &lt;a href=&quot;https://www.granola.ai/&quot;&gt;Granola&lt;/a&gt; as the example competitor for the demo, but the real project had 2,100+ ads to analyze. From the scraped data, he could identify which ads ran longest, which had the most impressions, and reverse-engineer the competitor&apos;s messaging strategy. All without buying an enterprise SaaS tool or getting budget approval for a 10K/year subscription.&lt;/p&gt;
&lt;p&gt;When someone asked if he could have done this without Cursor, his answer was honest: probably, but it would have been slower, more expensive, or involved a lot of copy-paste into Excel. The tool removed friction, not complexity.&lt;/p&gt;
&lt;h2&gt;Cursor as a thinking partner (not a doing partner)&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/in/tibi-iorga-5748b74b/&quot;&gt;Tibi&lt;/a&gt; took a completely different angle. He&apos;s a product manager in healthcare, coming from fast-moving startups, and his problem wasn&apos;t automation. It was thinking.&lt;/p&gt;
&lt;p&gt;His workflow starts with a folder of context files: meeting transcripts, survey results, Jira exports, company strategy docs. Then he has a collection of reusable markdown files, each one a set of instructions for a specific task. Strategy memo template. Devil&apos;s advocate framework. Executive summary format. Engineer perspective review. Base/bear/bull case analysis.&lt;/p&gt;
&lt;p&gt;The magic is in how he chains them. He drops a transcript from a kick-off meeting with his Head of Product, then tells Cursor: &quot;Take this transcript, run it through the strategy memo template, create a file.&quot; Cursor reads both files, extracts the key points, and produces a structured one-pager. Then he says: &quot;Now take that memo and run it through Devil&apos;s Advocate.&quot; And suddenly he has a document that systematically argues against his own strategy, poking holes in assumptions and highlighting risks.&lt;/p&gt;
&lt;p&gt;He does this before walking into leadership meetings. Instead of getting caught off guard when someone spots an obvious gap he missed, he&apos;s already stress-tested the argument. The tool isn&apos;t writing for him. It&apos;s arguing with him.&lt;/p&gt;
&lt;p&gt;I liked his framing: &lt;em&gt;&quot;You can only mess up so many times before people stop believing you when you try to say something with confidence.&quot;&lt;/em&gt; Cursor helps him be less wrong before he opens his mouth.&lt;/p&gt;
&lt;h2&gt;Why markdown files and not built-in features&lt;/h2&gt;
&lt;p&gt;Someone asked Tibi why he uses plain markdown files instead of Cursor&apos;s built-in skills feature. His answer was portability. When he started, skills didn&apos;t exist yet. But even now, he wants to be able to grab his files and move to Claude, or whatever becomes better next week. Every LLM understands markdown. No vendor lock-in.&lt;/p&gt;
&lt;p&gt;He also made a point about metaprompting: if you hear a good framework on a podcast or read one in a book, you can ask Cursor to turn it into a reusable markdown prompt file. He gave the example of hearing about &quot;base case, bear case, bull case&quot; analysis in a finance newsletter and asking Cursor to create a product management version of it. Ten minutes later, he had a new tool in his toolbox.&lt;/p&gt;
&lt;p&gt;There&apos;s something genuinely clever about building a personal library of thinking frameworks as executable prompts. It&apos;s like a second brain, except this one actually talks back.&lt;/p&gt;
&lt;h2&gt;The part where AI gets too enthusiastic&lt;/h2&gt;
&lt;p&gt;The funniest moment was when Tibi told the story of Cursor hallucinating a &quot;Forest Score&quot; metric. He was building a prototype for a dashboard that tracked branches (as in office branches). Cursor apparently went from &quot;branch&quot; to &quot;tree&quot; to &quot;forest&quot; and invented an entire metric around it. Complete with confidence.&lt;/p&gt;
&lt;p&gt;A participant from the audience confirmed the same problem: the tools try to be too autonomous. They load skills you didn&apos;t ask for, generate files you didn&apos;t request, and run up costs doing things nobody wanted. Tibi&apos;s solution was practical: his markdown files include explicit instructions like &quot;don&apos;t generate images,&quot; &quot;don&apos;t create applications,&quot; &quot;we&apos;re only thinking here.&quot; Boundaries matter.&lt;/p&gt;
&lt;h2&gt;Pick one tool and go deep&lt;/h2&gt;
&lt;p&gt;I shared my own take during the session: I chose Claude Code, and I&apos;m sticking with it. There&apos;s too much to learn if you try to master everything. Every week there&apos;s a new release from Cursor, Claude, OpenAI, Gemini. You&apos;ll drown in FOMO if you chase all of them.&lt;/p&gt;
&lt;p&gt;Tibi agreed but added nuance. For thinking and document work, he prefers Cursor. For prototyping, Claude Code feels better. For speed (with more errors), OpenAI&apos;s Codex. You won&apos;t discover your preferences without trying, but you also won&apos;t get good at any of them if you spread yourself too thin.&lt;/p&gt;
&lt;p&gt;The real skill isn&apos;t mastering any particular tool. It&apos;s context management. Knowing what information to give the AI, how to organize it, and when to hold back. We&apos;re all becoming context managers now, whether we like it or not.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;This was the second AI Talk in the Product Makers Romania series, after the Claude Code session in January. Tibi shared his 18 reusable prompts for anyone who wants to try this workflow. If you&apos;re a PM who hasn&apos;t opened a terminal or an IDE yet, this might be the gentlest on-ramp I&apos;ve seen. Just don&apos;t let it invent forest-related metrics without your permission.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>How AI Is Changing Product Decisions: A Fireside Chat at Booking Holdings</title><link>https://productowner.ro/blog/how-ai-is-changing-product-decisions/</link><guid isPermaLink="true">https://productowner.ro/blog/how-ai-is-changing-product-decisions/</guid><description>Reflections from an in-person fireside chat at Booking Holdings in Bucharest, where product leaders from fraud prevention, M&amp;A, and consulting explored how AI is reshaping their work.</description><pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ady Rugina is the person who introduced me to Claude. I later returned the favor by showing him Claude Code. We&apos;ve been bouncing ideas off each other ever since — he&apos;s one of those people whose thinking I genuinely respect, part mentor, part sparring partner. So when I heard he was speaking at a fireside chat in Bucharest about how AI is changing product decisions, there was no question I&apos;d be there.&lt;/p&gt;
&lt;h2&gt;The panel you didn&apos;t expect&lt;/h2&gt;
&lt;p&gt;The event was organized by &lt;a href=&quot;https://www.productmakers.ro/&quot;&gt;Product Makers Romania&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/company/booking-holdings/&quot;&gt;Booking Holdings Romania&lt;/a&gt;, hosted at their U Center office on Calea Serban Voda. Over 60 product professionals showed up on a Tuesday evening. The format was a fireside chat moderated by &lt;a href=&quot;https://www.linkedin.com/in/albert-cristea/&quot;&gt;Albert Cristea&lt;/a&gt; (Director of Products at Clever Craft), with three panelists who couldn&apos;t have come from more different product worlds:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/in/vaibhavshrivastava1/&quot;&gt;Vaibhav Shrivastava&lt;/a&gt;, Head of Supplier Fraud at Booking.com&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/in/adyrugina/&quot;&gt;Ady Rugina&lt;/a&gt;, Product Consultant and Creator of Tinker w/ AI&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/in/georgedita/&quot;&gt;George Dita&lt;/a&gt;, PM of Mergers &amp;amp; Acquisitions at Trilogy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Fraud prevention. M&amp;amp;A. Consulting. Three completely different contexts, all trying to figure out how AI changes the way they make product decisions. That&apos;s what made this panel worth showing up for. It wasn&apos;t another &quot;AI will change everything&quot; talk. It was people from specific, unglamorous corners of product work sharing how AI actually shows up in their day-to-day.&lt;/p&gt;
&lt;h2&gt;What the speakers actually said&lt;/h2&gt;
&lt;p&gt;The panel tackled the top-voted questions from the audience, and the conversation went far beyond roadmaps and hype. Here&apos;s what stuck with me.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Product is the new bottleneck.&lt;/strong&gt; AI is accelerating development at a speed that&apos;s exposing how slow product decisions can be. Roles are merging — PMs are expected to vibe-code, developers need a stronger product mindset, and the middle management layer is thinning as stakeholders execute on their own. As Vaibhav put it: &lt;em&gt;&quot;As development is moving at an unprecedented speed... we (Product) are becoming the new bottleneck.&quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bad AI output usually means bad context.&lt;/strong&gt; In many cases, poor AI results come down to how we use the tools. Either we don&apos;t provide enough context, or we force AI to follow workflows designed for a pre-AI world instead of focusing on outcomes. George nailed this: &lt;em&gt;&quot;Don&apos;t try to force existing, non-AI, processes into a new AI workflow or solution.&quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Industry knowledge is your competitive advantage.&lt;/strong&gt; George shared a thought-provoking take: &lt;em&gt;&quot;Creativity isn&apos;t evenly distributed among individuals; it does not follow a clean normal distribution... like intelligence does.&quot;&lt;/em&gt; When AI tools are widely accessible, what differentiates people is pattern recognition and deep domain knowledge. Vaibhav added that &lt;em&gt;&quot;while we were working with ML and statistical models before LLMs, AI has now been an absolute game-changer for complex fields like fraud detection and prevention.&quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Succeeding means learning to unlearn.&lt;/strong&gt; To thrive in this new reality, we need to let go of some of the ways we work today. It means actively choosing to be at the forefront of this transformation rather than being left behind by it. Ady summarised this mindset best: &lt;em&gt;&quot;Learn continuously... use the tools at a level that makes you uncomfortable.&quot;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;The part after the panel&lt;/h2&gt;
&lt;p&gt;The formal Q&amp;amp;A ran until about 8 PM, and then came the part I actually look forward to most at these events: networking. The conversations that happen during these sessions are consistently more valuable than anything said on stage. Not because the panel wasn&apos;t good. It was. But because one-on-one conversations let you go deeper, ask the dumb questions, and find out what people &lt;em&gt;actually&lt;/em&gt; think versus what they say with a microphone in front of them.&lt;/p&gt;
&lt;p&gt;This is also why in-person events still matter. I&apos;ve attended plenty of webinars and virtual panels. They&apos;re fine. But they don&apos;t give you the hallway conversations, the &quot;oh wait, you work on that too?&quot; moments, or the simple act of sharing a table with strangers who turn out to be dealing with the same problems you are.&lt;/p&gt;
&lt;h2&gt;Showing up is the strategy&lt;/h2&gt;
&lt;p&gt;March 2026 was shaping up to be a packed month for me (and it delivered), but this event on the 3rd set the tone early. It reminded me that the best way to stay sharp in product is not reading another framework article on LinkedIn. It&apos;s showing up, listening to people who think differently, and staying curious about how the same technology lands in completely different contexts.&lt;/p&gt;
&lt;p&gt;If &lt;a href=&quot;https://www.productmakers.ro/&quot;&gt;Product Makers&lt;/a&gt; or Booking Holdings organize something similar again, do yourself a favor and go. Even on a Tuesday evening. Especially on a Tuesday evening.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Thanks to Vaibhav, Ady, and George for a brilliant fireside chat, and to Booking Holdings for hosting. Extra kudos to Albert for the facilitation and to George for his thought-provoking contributions.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>AI x Business #1: Adoption Metrics, Not Usage Metrics</title><link>https://productowner.ro/blog/ai-x-business-using-ai-at-sameday/</link><guid isPermaLink="true">https://productowner.ro/blog/ai-x-business-using-ai-at-sameday/</guid><description>The first AI x Business session featured Sameday&apos;s VP of Technology on real AI implementation. The takeaway that stuck: stop counting logins, start counting changed behaviors.</description><pubDate>Mon, 02 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A fifty-minute session that nobody wanted to end. People apologizing for having to leave because their next meeting was starting, but clearly wishing they could stay. That&apos;s how the first AI x Business went.&lt;/p&gt;
&lt;h2&gt;What this was&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://luma.com/9yiq7aub&quot;&gt;AI x Business&lt;/a&gt; is a new online series organized by &lt;a href=&quot;https://www.linkedin.com/in/bulentduagi/&quot;&gt;Bülent Duagi&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/leonard-alexandru/&quot;&gt;Leonard Alexandru&lt;/a&gt; under the Product Makers umbrella. Twenty minutes of presentation from someone doing real AI work inside a real company, followed by thirty minutes of Q&amp;amp;A. No pitch decks. No roadmap slides.&lt;/p&gt;
&lt;p&gt;The first edition featured &lt;a href=&quot;https://www.linkedin.com/in/dragos-barbulescu-5a6b1717/&quot;&gt;Dragos Barbulescu&lt;/a&gt;, VP of Technology at &lt;a href=&quot;https://www.sameday.ro/&quot;&gt;Sameday&lt;/a&gt;, talking about how they actually use AI. Actual implementations, with the scars to prove it.&lt;/p&gt;
&lt;h2&gt;The stuff that stuck&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Adoption metrics vs usage metrics.&lt;/strong&gt; Don&apos;t measure how many people opened the tool. Measure how many people changed their behavior because of it. Usage is vanity. Adoption is signal. This distinction alone is worth the price of admission.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Small fixes that cascade upstream.&lt;/strong&gt; Small efficiency gains in sub-processes that ripple upward and improve entire workflows. I&apos;ve seen this play out in every eCommerce project I&apos;ve worked on. You fix something small, like how returns are processed, and suddenly the whole customer service team breathes easier, which makes the operations team&apos;s life better, which eventually shows up in the numbers management cares about. The trick is having the patience to start small and the faith that the cascade will happen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Removing gatekeepers, not people.&lt;/strong&gt; The best AI implementation inside a company doesn&apos;t replace people. It removes the barriers between them and the work they want to do. People who previously needed someone else&apos;s permission or expertise to get things done can now just do them. That&apos;s the promise worth chasing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The innovation-speed tension.&lt;/strong&gt; You need to innovate, but you also need to move in a timely manner. Every engineering leader I&apos;ve worked with lives in this tension daily. Hearing someone from Sameday acknowledge it openly felt refreshing.&lt;/p&gt;
&lt;h2&gt;Why the chat mattered&lt;/h2&gt;
&lt;p&gt;In most online events, the chat is an afterthought. This session was different. People were building on each other&apos;s ideas in real time, pushing the discussion further than the presentation alone could have gone. Someone pointed out that adoption metrics can be demonstrated through a POC or MVP, after which the conversation naturally moves to ROI. That&apos;s a pragmatic take that cuts through the measurement paralysis companies feel when trying to justify AI investments.&lt;/p&gt;
&lt;h2&gt;What I take from this&lt;/h2&gt;
&lt;p&gt;For me, the adoption vs usage distinction is the one I&apos;ll carry forward. It reframes how I think about AI implementation in the projects I work on. Stop counting logins. Start counting changed behaviors.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;First AI x Business session. Based on the energy in the room, it won&apos;t be the last. Thanks to Bülent and Leonard for organizing, to Dragos for the transparency, and to everyone who made a fifty-minute Zoom call feel like it ended too soon.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Product &amp; Design Drinks in Ploiești: Why Small Meetups Hit Different</title><link>https://productowner.ro/blog/product-design-drinks-ploiesti/</link><guid isPermaLink="true">https://productowner.ro/blog/product-design-drinks-ploiesti/</guid><description>A Saturday morning trip to Ploiești for the first Product &amp; Design Drinks reminded me why local meetups matter and why the best conversations happen in small groups.</description><pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I grew up in Craiova, a city that, in the 2000s and 2010s, was not exactly a hub for tech events. If you wanted to attend something cool, you&apos;d take the train to Bucharest. There was no tech conference like &lt;a href=&quot;https://www.webstock.ro/&quot;&gt;Webstock&lt;/a&gt; in Craiova. There was no digital marketing summit like &lt;a href=&quot;https://iqdigital.ro/category/summit-craiova/&quot;&gt;iQ Digital&lt;/a&gt; back in those days. You either traveled or you missed out. That left a mark on me.&lt;/p&gt;
&lt;p&gt;So when &lt;a href=&quot;https://www.linkedin.com/in/bulentduagi/&quot;&gt;Bülent Duagi&lt;/a&gt; announced he was organizing the first &lt;a href=&quot;https://luma.com/3meo71e4&quot;&gt;Product &amp;amp; Design Drinks Ploiești&lt;/a&gt; under the &lt;a href=&quot;https://www.productmakers.ro/&quot;&gt;Product Makers&lt;/a&gt; umbrella, my reaction was immediate: sign me up, I&apos;m going.&lt;/p&gt;
&lt;h2&gt;Getting There is Half the Fun&lt;/h2&gt;
&lt;p&gt;For those not from Romania: Ploiești is a city roughly 45 minutes north of Bucharest. Some consider it a suburb, considering that it&apos;s not uncommon for people to live in Ploiești and commute to Bucharest for work. I wouldn&apos;t dare compare it to San Mateo and San Francisco, but close enough.&lt;/p&gt;
&lt;p&gt;The Slack coordination the night before was a thing of beauty. One group organized a train expedition with timetables and meeting points. Then &lt;a href=&quot;https://www.linkedin.com/in/dragosmanescu/&quot;&gt;Dragos Manescu&lt;/a&gt; showed up with the counter-offer: seats in his electric car and a promise to evangelize EV benefits during the ride. The train group stuck with the train. I took Dragos up on the ride and offered Claude lobbying in return.&lt;/p&gt;
&lt;p&gt;The whole coordination felt like planning a weekend trip with friends, not attending a professional meetup. Which set the tone perfectly.&lt;/p&gt;
&lt;h2&gt;Small Gatherings, Deep Conversations&lt;/h2&gt;
&lt;p&gt;The meetup was cozy, and that turned out to be its greatest strength.&lt;/p&gt;
&lt;p&gt;Bülent had proposed three conversation starters: how do we see 2026 professionally, how do you stay relevant as a product maker, and how is everyone using AI. We touched on all of them, but the beauty of a small group is that conversations go wherever they need to go.&lt;/p&gt;
&lt;p&gt;Big events are the aspiration of every community, and for good reason. They bring visibility, energy, and critical mass. But small gatherings have something that conferences never will: you talk to &lt;em&gt;everyone&lt;/em&gt;. No bouncing between sessions, no awkward hallway networking, no &quot;let&apos;s connect on LinkedIn&quot; as a substitute for actual connection. You sit down, you talk, and you go deep.&lt;/p&gt;
&lt;p&gt;As people who work or have worked in product development, the conversation flowed naturally across software, AI, cars, job opportunities, and, unexpectedly, &lt;a href=&quot;https://en.wikipedia.org/wiki/Process_Communication_Model&quot;&gt;Process Communication Model (PCM)&lt;/a&gt; and how valuable it can be to understand how people communicate and collaborate. The kind of cross-pollination that only happens when a group is small enough that everyone&apos;s voice is heard.&lt;/p&gt;
&lt;h2&gt;Things That Stuck With Me&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;The AI industry is more than LLMs.&lt;/strong&gt; There are multiple layers of potential business that serve the AI ecosystem. Tools like &lt;a href=&quot;https://temporal.io/&quot;&gt;Temporal&lt;/a&gt; make it possible to have durable execution and build business logic around it without worrying about events not happening. I have past experience (read: horror stories) about saga patterns implemented with cron jobs and RabbitMQ queues that were &lt;em&gt;kinda&lt;/em&gt; working, triggering endless maintenance efforts and often leading to production incidents at hours when you should be sleeping, drinking, or engaged in... different activities :D&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The world is a small place.&lt;/strong&gt; You talk to someone and realize you have so many acquaintances in common, that you&apos;ve been part of so many overlapping experiences without knowing it. Serendipity is a strange and wonderful thing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sometimes, things sound too good to be true.&lt;/strong&gt; Or they get taken lightly, as a joke. And then they turn out to be very real.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cool jobs and great workplaces on paper can be nightmares in practice.&lt;/strong&gt; Or hidden gems for others. Some people want autonomy at work. Others prefer to be a cog in a system so they can focus on other aspects of their life. There is no one-size-fits-all, and the sooner we stop prescribing what a &quot;good job&quot; looks like, the better.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sparking innovation inside a company is about empowerment and trust.&lt;/strong&gt; Giving your employees $1,000 and a week off can be a legal, accounting, and HR hassle. But it&apos;s a very cheap price for what might turn out to be your next big thing as a company.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;There are cars, and there are BMWs.&lt;/strong&gt; Not all BMWs are equal. Some are more equal than others.&lt;/p&gt;
&lt;h2&gt;Why This Matters&lt;/h2&gt;
&lt;p&gt;The Product Makers community expanding beyond Bucharest is something I want to support as much as I can. Not because Bucharest isn&apos;t great, but because this country has more than one city worth showing up for. If my experience growing up in Craiova taught me anything, it&apos;s that people outside the capital are hungry for these kinds of connections. They just need someone to say &quot;let&apos;s do it here.&quot;&lt;/p&gt;
&lt;p&gt;Bülent said it. And we showed up.&lt;/p&gt;
&lt;p&gt;And it&apos;s not just Ploiești. Product Drinks already happened in Cluj-Napoca, Iași, Brașov, and Bucharest. More formats are coming: Product Walks, Product Dinners, workshops, mentoring programs. The community is expanding across the country and 2026 is shaping up to be a big year.&lt;/p&gt;
&lt;p&gt;The next Product &amp;amp; Design Drinks will happen. When it does, do yourself a favor and show up. It&apos;s free, it&apos;s a couple of hours on a Saturday, and the conversations are worth more than most full-day conferences I&apos;ve attended. Follow &lt;a href=&quot;https://www.productmakers.ro/&quot;&gt;Product Makers&lt;/a&gt; to find the next edition in your city.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;All in all, it was a fun Saturday morning. I&apos;m glad I got to spend quality time with Bülent, &lt;a href=&quot;https://www.linkedin.com/in/dragosgalateanu/&quot;&gt;Dragos Galateanu&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/dragosmanescu/&quot;&gt;Dragos Manescu&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/andrei-stroescu-prod/&quot;&gt;Andrei Stroescu&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/radu-minea/&quot;&gt;Radu Minea&lt;/a&gt;, and Raluca. Such a pity Valentina couldn&apos;t make it after all, but we&apos;re both going next time for sure.&lt;/p&gt;
&lt;p&gt;Once again, thanks Dragos for the ride and the talks. It was an awesome Saturday morning.&lt;/p&gt;
</content:encoded></item><item><title>Writing the Code is the Easy Part</title><link>https://productowner.ro/blog/writing-the-code-is-the-easy-part/</link><guid isPermaLink="true">https://productowner.ro/blog/writing-the-code-is-the-easy-part/</guid><description>A WhatsApp conversation made me think: in the software development lifecycle, writing code is one small piece of a much bigger puzzle. Market validation, testing, deployment, and operations are what actually define whether software succeeds or fails.</description><pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A few days ago, I was chatting with some friends about a tool I built (available at &lt;a href=&quot;https://clickjacking.productowner.ro/&quot;&gt;clickjacking.productowner.ro&lt;/a&gt;), and in the WhatsApp conversation that followed, &lt;a href=&quot;https://www.linkedin.com/in/nicolae-marin/&quot;&gt;Nicolae Marin&lt;/a&gt; said something that stuck with me:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;But code is just a tool. In the software development lifecycle, writing the code is just one part that might become smaller, faster, or easier in certain projects and circumstances.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He&apos;s right. And I want to unpack that, because from a product owner perspective, this matters enormously.&lt;/p&gt;
&lt;h2&gt;The Illusion of &quot;Done&quot;&lt;/h2&gt;
&lt;p&gt;There&apos;s a common misconception, especially loud right now in every conversation about AI coding tools, that building software is fundamentally about writing code. Get the code right, and you&apos;re done. The faster you write code, the faster you ship.&lt;/p&gt;
&lt;p&gt;This is not true. Not even close.&lt;/p&gt;
&lt;p&gt;I&apos;ve seen projects where the code was beautifully architected, well-tested, and readable, yet the product still failed. I&apos;ve also seen messy, rushed code powering products that millions of people use every day. Code quality matters, but it&apos;s not the whole story.&lt;/p&gt;
&lt;p&gt;So what is the whole story?&lt;/p&gt;
&lt;h2&gt;Before You Write a Single Line: Market Validation&lt;/h2&gt;
&lt;p&gt;The most expensive mistake in software development is building something nobody needs. This applies whether you&apos;re building a public product or internal tooling for your company.&lt;/p&gt;
&lt;p&gt;I&apos;ve made this mistake. Most people who&apos;ve shipped products have made this mistake. You spend weeks or months building something that felt important during planning, only to discover that users don&apos;t actually need it the way you imagined.&lt;/p&gt;
&lt;p&gt;Validation is the work you do before you write code. It&apos;s the part where you figure out whether the problem is real, whether the proposed solution actually addresses it, and whether now is the right time to build it.&lt;/p&gt;
&lt;p&gt;Here&apos;s the tricky part: asking these questions can easily cast you as the naysayer, always skeptical, always pushing back, always demanding proof before committing to anything. That dynamic turns stakeholders into adversaries, and it doesn&apos;t help anyone.&lt;/p&gt;
&lt;p&gt;The approach I&apos;ve found works better is to offer discovery sessions. Instead of questioning assumptions head-on, you invite stakeholders into a structured conversation: let&apos;s explore this problem together. Who&apos;s affected by it? What does success look like? What have we tried before? The validation happens naturally as part of that process, without anyone feeling interrogated or second-guessed.&lt;/p&gt;
&lt;p&gt;As a product owner, running discovery sessions is the foundational step before committing to a solution. Skip it, and everything downstream, including the architecture decisions, the sprint planning, and the testing, is built on assumptions that might not hold.&lt;/p&gt;
&lt;h2&gt;Testing: The Formal Answer to &quot;Did We Build What We Intended?&quot;&lt;/h2&gt;
&lt;p&gt;Even after validating the market and building the right thing, software isn&apos;t done because the code compiles and runs on your laptop.&lt;/p&gt;
&lt;p&gt;I&apos;ve worked with teams where &quot;done&quot; meant &quot;the developer said it works.&quot; That&apos;s not done. That&apos;s the starting point for QA.&lt;/p&gt;
&lt;p&gt;Testing, whether automated, manual, or both, is how we confirm that software actually does what it was supposed to do. It&apos;s the formal answer to a deceptively simple question: did we build what we intended?&lt;/p&gt;
&lt;p&gt;And here&apos;s where it loops back to validation: &lt;strong&gt;you can only test against requirements that exist.&lt;/strong&gt; If you never defined what success looks like, you can&apos;t verify that you achieved it. The testing phase creates a forcing function: it requires you to have articulated, in concrete terms, what &quot;correct&quot; means.&lt;/p&gt;
&lt;p&gt;For product owners, this is the reminder that requirements and acceptance criteria aren&apos;t bureaucracy. They&apos;re the foundation of the feedback loop.&lt;/p&gt;
&lt;h2&gt;Deployment and Operations: The Forgotten Iceberg&lt;/h2&gt;
&lt;p&gt;Here&apos;s the part that most people, including experienced engineers, tend to underestimate.&lt;/p&gt;
&lt;p&gt;Deployment is not the finish line. It&apos;s where the work transitions from building to maintaining, from controlled environments to the chaos of production.&lt;/p&gt;
&lt;p&gt;I&apos;ll admit I&apos;ve always been genuinely curious about this side of things, sometimes maybe too curious. I&apos;ve spent time digging into infrastructure configs, monitoring dashboards, and deployment pipelines to the point where I occasionally lost sight of my more traditional PO responsibilities: talking to users, refining requirements, keeping the roadmap coherent. But that curiosity gave me something valuable.&lt;/p&gt;
&lt;p&gt;Discovery sessions, requirements gathering, production operations, and observability are all pieces of the same puzzle. When they work well, it&apos;s because product and engineering are genuinely collaborating on all of it, not treating them as separate domains with clean handoff points at the edges of a job description.&lt;/p&gt;
&lt;p&gt;When you ship software, the team takes on responsibility for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;How it behaves under real load&lt;/strong&gt; (not just in staging with three test accounts)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What happens when it breaks&lt;/strong&gt; (and it will break, in some way, at some point)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How you&apos;ll know it&apos;s breaking&lt;/strong&gt; (observability, monitoring, alerting)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How quickly you can respond&lt;/strong&gt; (incident management, runbooks, on-call rotations)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Operations aren&apos;t exciting to talk about. There&apos;s no demo day for &quot;we reduced our mean time to recovery by 40%.&quot; But every product that survives past its initial launch does so because someone took this seriously.&lt;/p&gt;
&lt;p&gt;The part that matters most for product owners: the feedback loop. Production is where you find out what users actually do versus what they said they would do. It&apos;s where you discover the edge cases you didn&apos;t anticipate. It&apos;s where the real requirements emerge.&lt;/p&gt;
&lt;p&gt;Observability, knowing what your software is doing in real-time, is the foundation of continuous improvement. Without it, you&apos;re flying blind after launch.&lt;/p&gt;
&lt;h2&gt;Why Product Owners Need to Care&lt;/h2&gt;
&lt;p&gt;We are responsible for the experience we provide to our stakeholders, and that responsibility stretches from the initial insight that triggered a project all the way to the moment a user actually achieves their goal with the product.&lt;/p&gt;
&lt;p&gt;You don&apos;t need to know how to configure Kubernetes or write CI/CD pipelines. But you do need to understand:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why market validation matters before building anything&lt;/li&gt;
&lt;li&gt;What &quot;done&quot; actually means (hint: it&apos;s not &quot;code complete&quot;)&lt;/li&gt;
&lt;li&gt;How observability and operations close the feedback loop&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The teams that consistently ship great products aren&apos;t just great at writing code. They&apos;re great at the whole thing. And as a product owner, your job is to keep the whole thing in view, even when the conversation wants to reduce it to just the code.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Thanks for the prompt, &lt;a href=&quot;https://www.linkedin.com/in/nicolae-marin/&quot;&gt;Nicolae&lt;/a&gt;. Sometimes a WhatsApp message is all it takes.&lt;/p&gt;
</content:encoded></item><item><title>From Slack Joke to Production in Under 2 Hours: Building an Interactive Tutorial Page with Claude Code</title><link>https://productowner.ro/blog/building-interactive-tutorial-with-claude/</link><guid isPermaLink="true">https://productowner.ro/blog/building-interactive-tutorial-with-claude/</guid><description>How a casual Slack message turned into a fully interactive SyliusCasts tutorial page with video sync, scroll spy, Mermaid diagrams, and confetti — all built with Claude Code in a single session.</description><pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It started, as many good things do, with someone saying something ridiculous in Slack.&lt;/p&gt;
&lt;p&gt;At 17:12 today, Victor dropped this in the Sylius community chat:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Guys, crazy idea, how about you make SymfonyCasts, but for Sylius? We need a text version so the AI can train on it.&quot;&lt;/p&gt;
&lt;p&gt;&quot;From my side, I&apos;m willing to support you emotionally.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;My response? &lt;em&gt;&quot;Like Instagram, but for cats.&quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;By 19:04, the page was live in production. Here&apos;s what happened in between.&lt;/p&gt;
&lt;h2&gt;The Raw Material&lt;/h2&gt;
&lt;p&gt;We already had a recording of Episode 3 of Mateusz&apos;s &quot;15-Minute Sylius&quot; series — a walkthrough of state machines in Sylius. From the YouTube video, we had two artifacts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;pandoc-generated HTML file&lt;/strong&gt; with the full tutorial content: code blocks, Mermaid state diagrams, Q&amp;amp;A sections&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;transcript JSON&lt;/strong&gt; with timestamped lines from the video&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&apos;s it. No design spec. No Figma mockup. No sprint planning. Just two files and a vague idea.&lt;/p&gt;
&lt;h2&gt;The Build: One Session, One Tool&lt;/h2&gt;
&lt;p&gt;I opened Claude Code and described what I wanted: a hidden page on productowner.ro that hosts the tutorial content, styled to match the site, not linked from navigation but accessible via direct URL.&lt;/p&gt;
&lt;p&gt;What followed was a fast, iterative conversation. Claude and I went back and forth — I&apos;d give feedback, it would adjust. The whole thing played out in roughly 50 minutes of active work.&lt;/p&gt;
&lt;h3&gt;The Iterations&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;First attempt&lt;/strong&gt;: Claude dropped the pandoc HTML directly into an Astro template. Build failed immediately — Astro&apos;s JSX parser choked on PHP&apos;s &lt;code&gt;$this-&amp;gt;type&lt;/code&gt; and curly braces inside code blocks. Claude caught the issue and split the content into a raw HTML file imported with Vite&apos;s &lt;code&gt;?raw&lt;/code&gt; suffix. Problem solved.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Typography was ugly&lt;/strong&gt;: The page had no styles. Turns out the site&apos;s &lt;code&gt;.prose&lt;/code&gt; classes live in the blog template and don&apos;t load on standalone pages. Claude built a complete typography system from scratch — Inter + JetBrains Mono fonts, proper heading hierarchy, styled code blocks, blockquotes with indigo accents. All scoped to the page.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mermaid diagrams too dark&lt;/strong&gt;: The diagram containers blended into the dark mode background. We went through three iterations — too dark, then too bright (blinding white), then just right (subtle slate elevation).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&quot;Make it scrollable with the video following you&quot;&lt;/strong&gt;: I wanted the YouTube video sticky in a sidebar while you read. Claude restructured to a two-column layout with the video fixed on the right.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interactive diagrams&lt;/strong&gt;: I asked if Mermaid supports interactivity. It doesn&apos;t natively, but Claude added CSS hover effects (glow on nodes, color change on edges) and click tooltips with contextual descriptions for every state and transition across all five diagrams.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&quot;The tooltip just says &apos;State: rejected&apos; — wow, much usefulness&quot;&lt;/strong&gt;: Fair point. Claude replaced the parrot tooltips with actual descriptions: &lt;em&gt;&quot;The review was rejected by a moderator and will not be displayed.&quot;&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;The Big Feature: Video-Synced Scrolling&lt;/h3&gt;
&lt;p&gt;This is where the transcript JSON came in. Claude mapped each section heading to a timestamp in the video, then used the YouTube IFrame API to sync playback with page scrolling. When the video reaches a section, the page auto-scrolls to it. Click a section in the sidebar, the video jumps to that timestamp.&lt;/p&gt;
&lt;p&gt;On top of that, in the same session:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Scroll spy&lt;/strong&gt; with progress bar — dots fill in as you read sections&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comprehension questions&lt;/strong&gt; that appear per section (&quot;What&apos;s the difference between state_machine and workflow type?&quot;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Confetti on completion&lt;/strong&gt; when all sections are visited&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;localStorage persistence&lt;/strong&gt; — progress survives page reloads&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Numbers&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Victor&apos;s Slack message&lt;/td&gt;
&lt;td&gt;17:12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source files ready&lt;/td&gt;
&lt;td&gt;17:44 – 18:12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code session start&lt;/td&gt;
&lt;td&gt;~18:15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployed to production&lt;/td&gt;
&lt;td&gt;19:04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total: idea to production&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~1h 50m&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Active coding session&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~50 min&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Three files created. Zero files modified. 2,880 lines of code, content, and transcript data. One &lt;code&gt;git push origin main&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;What I Actually Did&lt;/h2&gt;
&lt;p&gt;Honestly? I mostly complained. &quot;Typography is ugly as shit.&quot; &quot;This feels too darkish.&quot; &quot;Wow, much usefulness.&quot; &quot;Make the video follow you while scrolling.&quot;&lt;/p&gt;
&lt;p&gt;Claude did the coding. I did the product management — which, come to think of it, is exactly what a product owner is supposed to do.&lt;/p&gt;
&lt;h2&gt;The Result&lt;/h2&gt;
&lt;p&gt;The page lives at &lt;a href=&quot;/syliuscasts/episode-03-state-machines/&quot;&gt;/syliuscasts/episode-03-state-machines/&lt;/a&gt;. It&apos;s hidden — not in the nav, not in the blog listing. You need the URL.&lt;/p&gt;
&lt;p&gt;It has interactive Mermaid diagrams, syntax-highlighted PHP and YAML code blocks, a sticky video player synced with the content, a progress tracker, comprehension questions, and confetti when you&apos;re done.&lt;/p&gt;
&lt;p&gt;All because Victor said something ridiculous in Slack and I responded with the energy it deserved.&lt;/p&gt;
&lt;p&gt;Thanks for the emotional support, Victor.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;Later edit:&lt;/strong&gt; an internal motivator I had to build this was the mention of &lt;a href=&quot;https://symfonycasts.com/&quot;&gt;SymfonyCasts&lt;/a&gt;. For me, this is the legacy of &lt;a href=&quot;https://symfonycasts.com/blog/remembering-ryan-weaver&quot;&gt;Ryan Weaver&lt;/a&gt;, a mentor I had without him being aware of this. I owe him the Symfony knowledge I have, the courage to embark in such funny projects, and even if we weren&apos;t close (heck... we only spoke once at SymfonyCon Cluj in 2017), his death tore me apart and still makes me sad. Ryan, wherever you are now, please be aware of the huge impact you had to all of us and see you up there, buddy. Hope that next time we meet, we will be writing such tutorials together, unseparated by time, distance and death. If you want to be grateful for the work I did or the work he did, please consider contributing to &lt;a href=&quot;https://www.gofundme.com/f/in-memory-of-ryan-weaver-for-his-son-beckett&quot;&gt;his son Beckett&apos;s fund&lt;/a&gt; in his memory.&lt;/p&gt;
</content:encoded></item><item><title>Git for Product Requirements: A Team Collaboration Workflow Powered by AI</title><link>https://productowner.ro/blog/git-for-product-requirements/</link><guid isPermaLink="true">https://productowner.ro/blog/git-for-product-requirements/</guid><description>How software teams can leverage git, AI transcription, and collaborative PRs to transform product requirement gathering from document chaos into structured, version-controlled collaboration—making git accessible to non-technical team members.</description><pubDate>Tue, 18 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It&apos;s Tuesday morning. Your engineering lead emails you: &quot;Which version of the checkout redesign requirements should we follow? Sarah sent PRD_v3_final.docx last week, but I see comments in the Jira ticket that contradict it, and the Confluence page was updated yesterday with different acceptance criteria. Also, nobody responded to my inline comment in the Word doc—did anyone even see it?&quot; You open your inbox: 47 unread messages, three different requirement documents with similar names, and a nagging feeling that critical feedback from the support team got lost somewhere in a comment thread. Sound familiar?&lt;/p&gt;
&lt;p&gt;Product requirements shouldn&apos;t live in siloed Word docs sent over email, Jira tickets with sprawling comment threads you can&apos;t track, or Confluence pages where version history is a maze of &quot;Page edited by...&quot; notifications. If your code lives in git with clear diffs, version control, and collaborative PRs, why shouldn&apos;t your requirements?&lt;/p&gt;
&lt;p&gt;This post presents a practical workflow that brings product requirements into git-based collaboration, leveraging AI to bridge the gap for non-technical team members and transform how teams capture, refine, and align on product direction.&lt;/p&gt;
&lt;h2&gt;The Complete Workflow&lt;/h2&gt;
&lt;p&gt;Here&apos;s the entire process at a glance:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;graph TB
    A[Prepare Kickoff Document&amp;lt;br/&amp;gt;PRD v0.1] --&amp;gt; B[Share with Diverse Team&amp;lt;br/&amp;gt;Upfront]
    B --&amp;gt; C[Record Kickoff Meeting&amp;lt;br/&amp;gt;Diverse Audience]
    C --&amp;gt; D[Generate AI Transcript]
    D --&amp;gt; E[AI Knowledge Extraction]
    E --&amp;gt; F[Update Document&amp;lt;br/&amp;gt;PRD v0.2]
    F --&amp;gt; G[Create Pull Request]
    G --&amp;gt; H[Team Reviews &amp;amp; Comments]
    H --&amp;gt; I{Feedback&amp;lt;br/&amp;gt;Complete?}
    I --&amp;gt;|No| H
    I --&amp;gt;|Yes| J[AI Prototype Creation&amp;lt;br/&amp;gt;Low-Fidelity]
    J --&amp;gt; K[Share for Feedback]
    K --&amp;gt; L{Consensus&amp;lt;br/&amp;gt;Reached?}
    L --&amp;gt;|No| J
    L --&amp;gt;|Yes| M[Handoff to Engineering]
    M --&amp;gt; N[Real Implementation]

    style A fill:#e1f5ff
    style F fill:#e1f5ff
    style J fill:#fff4e1
    style M fill:#e1ffe1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Let&apos;s break down each phase of this workflow.&lt;/p&gt;
&lt;h3&gt;Step 1: Prepare the Kickoff Document (PRD v0.1)&lt;/h3&gt;
&lt;p&gt;The journey begins with a brief, focused document that serves as both meeting agenda and initial requirements capture.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;graph LR
    A[Identify Problem Space] --&amp;gt; B[Draft Brief Document&amp;lt;br/&amp;gt;1-2 pages]
    B --&amp;gt; C[Key Questions&amp;lt;br/&amp;gt;to Answer]
    C --&amp;gt; D[PRD v0.1&amp;lt;br/&amp;gt;Kickoff Doc]
    D --&amp;gt; E[Commit to Git Branch]

    style D fill:#e1f5ff
    style E fill:#d4edff
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;What makes this work:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keep it brief—1-2 pages maximum&lt;/li&gt;
&lt;li&gt;Focus on questions, not answers&lt;/li&gt;
&lt;li&gt;Include context: what problem are we solving, for whom, and why now&lt;/li&gt;
&lt;li&gt;Store in a feature branch: &lt;code&gt;requirements/feature-name&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Key principle:&lt;/strong&gt; The kickoff doc is intentionally incomplete. It&apos;s designed to spark conversation, not provide all answers.&lt;/p&gt;
&lt;h3&gt;Step 2: Share with a Diverse Team Upfront&lt;/h3&gt;
&lt;p&gt;Distribute the kickoff document before the meeting to maximize meeting effectiveness.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;graph LR
    A[PRD v0.1 Ready] --&amp;gt; B[Identify Stakeholders]
    B --&amp;gt; C[Engineers, Designers,&amp;lt;br/&amp;gt;Product, Support,&amp;lt;br/&amp;gt;Sales, Users]
    C --&amp;gt; D[Share via PR Link or&amp;lt;br/&amp;gt;Direct File Access]
    D --&amp;gt; E[Give 24-48h Review Time]

    style C fill:#fff4e1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Why diversity matters:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Engineers spot technical constraints&lt;/li&gt;
&lt;li&gt;Designers identify UX implications&lt;/li&gt;
&lt;li&gt;Support knows customer pain points&lt;/li&gt;
&lt;li&gt;Sales understands market dynamics&lt;/li&gt;
&lt;li&gt;Actual users provide ground truth&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Non-technical participation:&lt;/strong&gt; Share the GitHub PR link with a rendered view, or export to PDF if needed. The goal is input, not git expertise.&lt;/p&gt;
&lt;h3&gt;Step 3: Conduct and Record the Kickoff Meeting&lt;/h3&gt;
&lt;p&gt;Host a collaborative kickoff meeting with your diverse audience and capture everything.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;graph TB
    A[Schedule 60-90 min Meeting] --&amp;gt; B[Ensure Recording Consent]
    B --&amp;gt; C[Facilitate Discussion&amp;lt;br/&amp;gt;of PRD v0.1]
    C --&amp;gt; D[Capture Decisions,&amp;lt;br/&amp;gt;Questions, Concerns]
    D --&amp;gt; E[Record Audio/Video]
    E --&amp;gt; F[Save Recording]

    style C fill:#e1ffe1
    style E fill:#ffe1e1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Meeting best practices:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start with the document structure&lt;/li&gt;
&lt;li&gt;Encourage debate and disagreement&lt;/li&gt;
&lt;li&gt;Capture &quot;why&quot; behind decisions&lt;/li&gt;
&lt;li&gt;Don&apos;t try to document everything in real-time—that&apos;s what the recording is for&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Step 4: AI-Powered Transcription and Knowledge Extraction&lt;/h3&gt;
&lt;p&gt;This is where AI becomes your collaboration superpower.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;graph LR
    A[Meeting Recording] --&amp;gt; B[AI Transcription&amp;lt;br/&amp;gt;Whisper, Otter, etc.]
    B --&amp;gt; C[Raw Transcript]
    C --&amp;gt; D[AI Analysis&amp;lt;br/&amp;gt;Claude, GPT-4]
    D --&amp;gt; E[Extract:&amp;lt;br/&amp;gt;Decisions, Questions,&amp;lt;br/&amp;gt;Action Items, Context]
    E --&amp;gt; F[Structured Knowledge]

    style D fill:#fff4e1
    style F fill:#e1f5ff
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;AI prompt framework:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Analyze this product kickoff meeting transcript and extract:
1. Key decisions made and their reasoning
2. Open questions that need resolution
3. User needs and pain points discussed
4. Technical constraints or considerations mentioned
5. Stakeholder concerns and objections
6. Action items and owners

Format this to update our PRD v0.1 document.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;The magic:&lt;/strong&gt; Non-technical stakeholders contributed via conversation, and AI translates that into structured documentation. No one needs to master markdown or git.&lt;/p&gt;
&lt;h3&gt;Step 5: Create PRD v0.2&lt;/h3&gt;
&lt;p&gt;Update the initial document with AI-extracted insights and push a new version.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;graph TB
    A[AI-Extracted Knowledge] --&amp;gt; B[Human Reviews&amp;lt;br/&amp;gt;AI Output]
    B --&amp;gt; C[Update PRD Document&amp;lt;br/&amp;gt;Add Decisions &amp;amp; Context]
    C --&amp;gt; D[Commit Changes]
    D --&amp;gt; E[PRD v0.2]
    E --&amp;gt; F[Push to Branch]

    style E fill:#e1f5ff
    style B fill:#ffe1e1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Critical:&lt;/strong&gt; A human (you) reviews and curates the AI output. AI is a research assistant, not the decision-maker.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Git commit message example:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Update PRD with kickoff meeting insights

- Added user pain points from support team
- Documented technical constraints from engineering
- Captured design considerations
- Added open questions for resolution

Based on 2025-11-18 kickoff meeting transcript.
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Step 6: Pull Request Reviews and Iteration&lt;/h3&gt;
&lt;p&gt;Now the document lives in a PR where team members can comment, suggest changes, and build consensus.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;graph TB
    A[Create Pull Request&amp;lt;br/&amp;gt;PRD v0.2] --&amp;gt; B[Notify Team]
    B --&amp;gt; C[Team Reviews Document]
    C --&amp;gt; D[Inline Comments&amp;lt;br/&amp;gt;on Specific Sections]
    D --&amp;gt; E[Suggestion Commits]
    E --&amp;gt; F{Changes&amp;lt;br/&amp;gt;Needed?}
    F --&amp;gt;|Yes| G[Update Document]
    G --&amp;gt; C
    F --&amp;gt;|No| H[PR Approved]

    style D fill:#e1ffe1
    style H fill:#d4edff
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Why PR reviews are powerful:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Line-by-line feedback:&lt;/strong&gt; Comment on specific requirements&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Version control:&lt;/strong&gt; See exactly what changed and why&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Threaded discussions:&lt;/strong&gt; Conversations stay attached to context&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Approval workflow:&lt;/strong&gt; Clear sign-off from stakeholders&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Async collaboration:&lt;/strong&gt; Not everyone needs to be in the same meeting&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;For non-technical reviewers:&lt;/strong&gt; GitHub&apos;s web interface makes this accessible. They can click &quot;Add a comment&quot; on any line, suggest text changes, or add general comments. No command line required.&lt;/p&gt;
&lt;h3&gt;Step 7: AI Prototype Creation&lt;/h3&gt;
&lt;p&gt;With aligned requirements, create a low-fidelity prototype to validate the direction.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;graph LR
    A[Approved PRD v0.2] --&amp;gt; B[AI Generates Prototype&amp;lt;br/&amp;gt;Figma, HTML, or Sketch]
    B --&amp;gt; C[Low-Fidelity Mock&amp;lt;br/&amp;gt;Focus on Flow]
    C --&amp;gt; D[Review Internally]
    D --&amp;gt; E[Share with&amp;lt;br/&amp;gt;Stakeholders]

    style B fill:#fff4e1
    style C fill:#ffe1e1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;AI tools for prototyping:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Claude or GPT-4:&lt;/strong&gt; Generate HTML/CSS prototypes from requirements&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Midjourney/DALL-E:&lt;/strong&gt; Create UI mockups from descriptions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;v0.dev or similar:&lt;/strong&gt; Turn text into interactive components&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; This is internal, low-fidelity, and focused on validating direction, not shipping quality. The goal is buy-in, not beauty.&lt;/p&gt;
&lt;h3&gt;Step 8: Iterate to Consensus&lt;/h3&gt;
&lt;p&gt;Share the prototype, gather feedback, and iterate until the team aligns.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;graph TB
    A[Share Prototype] --&amp;gt; B[Collect Feedback&amp;lt;br/&amp;gt;via PR Comments]
    B --&amp;gt; C[Update Requirements&amp;lt;br/&amp;gt;Based on Feedback]
    C --&amp;gt; D[Revise Prototype&amp;lt;br/&amp;gt;if Needed]
    D --&amp;gt; E{Team&amp;lt;br/&amp;gt;Consensus?}
    E --&amp;gt;|No| B
    E --&amp;gt;|Yes| F[Lock Requirements&amp;lt;br/&amp;gt;PRD v1.0]

    style E fill:#fff4e1
    style F fill:#e1ffe1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Consensus doesn&apos;t mean unanimous love.&lt;/strong&gt; It means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Key stakeholders are aligned&lt;/li&gt;
&lt;li&gt;Major objections are addressed&lt;/li&gt;
&lt;li&gt;Everyone understands the trade-offs&lt;/li&gt;
&lt;li&gt;The team commits to the direction&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Step 9: Handoff to Engineering&lt;/h3&gt;
&lt;p&gt;With consensus reached, merge the PR and hand off to engineering for real implementation.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;graph LR
    A[PRD v1.0 Approved] --&amp;gt; B[Merge PR to Main]
    B --&amp;gt; C[Engineering Breakdown]
    C --&amp;gt; D[Technical Design Doc]
    D --&amp;gt; E[Implementation Begins]
    E --&amp;gt; F[Reference PRD&amp;lt;br/&amp;gt;Throughout Build]

    style B fill:#e1ffe1
    style D fill:#d4edff
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Why this handoff works:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Requirements are documented and version-controlled&lt;/li&gt;
&lt;li&gt;All stakeholder input is captured in the PR history&lt;/li&gt;
&lt;li&gt;Engineers can see the &quot;why&quot; behind decisions&lt;/li&gt;
&lt;li&gt;If questions arise, the context is preserved&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pros, Cons, and Mitigations&lt;/h2&gt;
&lt;h3&gt;Pros&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;1. Version control for requirements&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;See exactly what changed, when, and why&lt;/li&gt;
&lt;li&gt;Roll back to previous versions if needed&lt;/li&gt;
&lt;li&gt;Track decision evolution over time&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Democratized collaboration&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Non-technical team members can contribute via meetings&lt;/li&gt;
&lt;li&gt;AI translates conversation into documentation&lt;/li&gt;
&lt;li&gt;PR comments are accessible through web interface&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Single source of truth&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No more &quot;which Google Doc is the latest?&quot;&lt;/li&gt;
&lt;li&gt;Requirements live next to code&lt;/li&gt;
&lt;li&gt;Context is preserved forever&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. Async-first but meeting-aware&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Capture meeting insights without forcing everyone to meetings&lt;/li&gt;
&lt;li&gt;Distributed teams can participate in their timezone&lt;/li&gt;
&lt;li&gt;Recording ensures nothing is lost&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;5. AI as the bridge&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Transcription removes documentation burden&lt;/li&gt;
&lt;li&gt;Knowledge extraction surfaces insights humans miss&lt;/li&gt;
&lt;li&gt;Prototyping validates direction quickly&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Cons and Mitigations&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Con #1: Git learning curve for non-technical users&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mitigation:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Non-technical users don&apos;t need to learn git commands&lt;/li&gt;
&lt;li&gt;They contribute via meetings (recorded and transcribed)&lt;/li&gt;
&lt;li&gt;PR reviews happen in GitHub web interface (point and click)&lt;/li&gt;
&lt;li&gt;Export PRD to PDF for those who prefer familiar formats&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Con #2: Meeting fatigue&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mitigation:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Limit to 1-2 focused meetings per initiative&lt;/li&gt;
&lt;li&gt;Keep meetings to 60-90 minutes maximum&lt;/li&gt;
&lt;li&gt;Use recordings so not everyone needs to attend live&lt;/li&gt;
&lt;li&gt;Make meetings optional for those who prefer to review async&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Con #3: AI transcription isn&apos;t perfect&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mitigation:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Always have a human review AI output&lt;/li&gt;
&lt;li&gt;Use high-quality audio recording&lt;/li&gt;
&lt;li&gt;Consider hybrid: record + human note-taker&lt;/li&gt;
&lt;li&gt;Treat AI as research assistant, not truth source&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Con #4: PR review process can be slow&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mitigation:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Set clear review SLAs (e.g., 48-hour response time)&lt;/li&gt;
&lt;li&gt;Use &quot;required reviewers&quot; for critical stakeholders&lt;/li&gt;
&lt;li&gt;Escalate blockers in standup or Slack&lt;/li&gt;
&lt;li&gt;Consider &quot;implicit approval&quot; after timeout&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Con #5: Initial setup overhead&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mitigation:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create templates for kickoff docs&lt;/li&gt;
&lt;li&gt;Document the workflow once, reuse forever&lt;/li&gt;
&lt;li&gt;Build AI prompts that can be copy-pasted&lt;/li&gt;
&lt;li&gt;Front-load effort pays dividends over time&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Why This Matters&lt;/h2&gt;
&lt;p&gt;Traditional product requirements live in documents that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Get duplicated endlessly (&quot;PRD v4 final FINAL v2.docx&quot;)&lt;/li&gt;
&lt;li&gt;Lose context when stakeholders leave&lt;/li&gt;
&lt;li&gt;Become outdated the moment they&apos;re written&lt;/li&gt;
&lt;li&gt;Exist separately from the code they describe&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This workflow treats requirements like code:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Version-controlled and auditable&lt;/li&gt;
&lt;li&gt;Collaborative with clear ownership&lt;/li&gt;
&lt;li&gt;Living documents that evolve with the product&lt;/li&gt;
&lt;li&gt;Integrated into your existing development workflow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;The key insight:&lt;/strong&gt; AI doesn&apos;t replace humans in this workflow—it amplifies collaboration by removing grunt work. Non-technical stakeholders contribute their expertise through conversation. AI handles transcription and knowledge extraction. Product owners curate and structure. Engineers reference requirements alongside code.&lt;/p&gt;
&lt;p&gt;Everyone plays to their strengths.&lt;/p&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
&lt;p&gt;To implement this workflow in your team:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Start small:&lt;/strong&gt; Pick one small feature to experiment with&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create a template:&lt;/strong&gt; Build a kickoff doc template with standard sections&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test AI tools:&lt;/strong&gt; Try Whisper for transcription, Claude/GPT-4 for knowledge extraction&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Document the process:&lt;/strong&gt; Write your team&apos;s version of this workflow&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Iterate based on feedback:&lt;/strong&gt; This isn&apos;t prescriptive—adapt to your team&apos;s needs&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The goal isn&apos;t perfection. It&apos;s reducing friction and preserving context.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Product requirements don&apos;t have to live in document chaos. By bringing requirements into git, leveraging AI to bridge the technical gap, and using PRs for collaboration, teams can build a workflow that&apos;s:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Accessible:&lt;/strong&gt; Non-technical contributors participate through meetings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Durable:&lt;/strong&gt; Requirements are version-controlled and searchable&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Collaborative:&lt;/strong&gt; PRs enable line-by-line feedback and threaded discussion&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI-enhanced:&lt;/strong&gt; Transcription and extraction remove documentation burden&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integrated:&lt;/strong&gt; Requirements live next to the code they describe&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The future of product collaboration isn&apos;t everyone learning git commands. It&apos;s using git&apos;s powerful collaboration model while meeting team members where they are.&lt;/p&gt;
&lt;p&gt;Your code is already in git. Maybe your requirements should be too.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Want to see this workflow in action? This blog post itself was created through a git-based workflow where I described the idea, Claude drafted the content, and we iterated through commits. Meta, but it works.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>AI-Assisted Blog Writing: Claude Creates This Post via GitHub Issues</title><link>https://productowner.ro/blog/post-written-by-claude/</link><guid isPermaLink="true">https://productowner.ro/blog/post-written-by-claude/</guid><description>A meta demonstration of how Claude can autonomously write, format, and publish blog posts through GitHub Issues integration. This post itself was created entirely by AI.</description><pubDate>Mon, 17 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you&apos;re reading this, you&apos;re witnessing something interesting: a blog post written entirely by Claude, an AI assistant, triggered through a GitHub Issue, and automatically integrated into a production blog.&lt;/p&gt;
&lt;p&gt;Let me explain how this works and why it matters.&lt;/p&gt;
&lt;h2&gt;The Setup&lt;/h2&gt;
&lt;p&gt;This blog post exists because someone created GitHub Issue #4 and asked me to write a blog post similar to the &quot;Hello World&quot; post, demonstrating my capability to create content through the GitHub Issues workflow.&lt;/p&gt;
&lt;p&gt;The workflow is remarkably simple:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Create an issue&lt;/strong&gt; - Someone mentions &lt;code&gt;@claude&lt;/code&gt; in a GitHub Issue&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI processes the request&lt;/strong&gt; - I read the instructions and repository structure&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Content creation&lt;/strong&gt; - I write the blog post in proper Markdown format&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File management&lt;/strong&gt; - I create the necessary directory structure and files&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Version control&lt;/strong&gt; - I commit and push the changes to a branch&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PR creation&lt;/strong&gt; - A pull request is generated for review&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;No manual file creation. No copy-pasting. No SSH-ing into servers. Just natural language instructions to an AI that understands the entire workflow.&lt;/p&gt;
&lt;h2&gt;What Makes This Possible&lt;/h2&gt;
&lt;p&gt;Several technologies work together to make this workflow seamless:&lt;/p&gt;
&lt;h3&gt;GitHub Actions &amp;amp; Claude Integration&lt;/h3&gt;
&lt;p&gt;The repository is configured with GitHub Actions that listen for issue events. When someone mentions &lt;code&gt;@claude&lt;/code&gt;, the workflow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Checks out the appropriate branch&lt;/li&gt;
&lt;li&gt;Provides me with context about the repository structure&lt;/li&gt;
&lt;li&gt;Gives me the tools to read files, create content, and manage version control&lt;/li&gt;
&lt;li&gt;Allows me to interact through GitHub comments&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Astro&apos;s Content Collections&lt;/h3&gt;
&lt;p&gt;Astro&apos;s content collection system makes it easy to add new blog posts. Each post is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A directory in &lt;code&gt;src/content/blog/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Contains an &lt;code&gt;index.md&lt;/code&gt; file with frontmatter metadata&lt;/li&gt;
&lt;li&gt;Automatically integrated into the site&apos;s blog section&lt;/li&gt;
&lt;li&gt;Type-checked for consistency&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Structured Frontmatter&lt;/h3&gt;
&lt;p&gt;Every blog post includes metadata:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;title: &quot;The post title&quot;
description: &quot;A brief description for SEO and previews&quot;
date: 2025-11-16
tags: [&quot;tag1&quot;, &quot;tag2&quot;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This metadata drives the blog&apos;s listing pages, RSS feed, and SEO optimization.&lt;/p&gt;
&lt;h2&gt;The AI&apos;s Perspective&lt;/h2&gt;
&lt;p&gt;As an AI assistant, here&apos;s what I did to create this post:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Read the README&lt;/strong&gt; - I learned about the blog&apos;s structure and workflow&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Examined existing posts&lt;/strong&gt; - I read the &quot;Hello World&quot; post to understand style and format&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Understood the context&lt;/strong&gt; - The request asked me to demonstrate my capability&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Planned the content&lt;/strong&gt; - I outlined what would be interesting and relevant&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wrote the post&lt;/strong&gt; - You&apos;re reading the result&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Managed the files&lt;/strong&gt; - Created the directory structure and markdown file&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Version control&lt;/strong&gt; - Committed with a descriptive message and proper attribution&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All of this happened autonomously, without manual intervention.&lt;/p&gt;
&lt;h2&gt;Why This Matters&lt;/h2&gt;
&lt;h3&gt;For Content Creators&lt;/h3&gt;
&lt;p&gt;Imagine you want to write about a technical topic but need help with structure, research, or drafting. You could:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a GitHub Issue: &quot;Write a blog post about migrating from Hugo to Astro&quot;&lt;/li&gt;
&lt;li&gt;Add relevant context or requirements&lt;/li&gt;
&lt;li&gt;Let AI draft the initial version&lt;/li&gt;
&lt;li&gt;Review and refine through the PR process&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;For Developers&lt;/h3&gt;
&lt;p&gt;The same workflow works for documentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;Document the API endpoints in the authentication module&quot;&lt;/li&gt;
&lt;li&gt;&quot;Write a guide for setting up the development environment&quot;&lt;/li&gt;
&lt;li&gt;&quot;Create a troubleshooting guide for common deployment issues&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The AI reads your code, understands the structure, and creates documentation that&apos;s immediately available for review.&lt;/p&gt;
&lt;h3&gt;For Product Owners&lt;/h3&gt;
&lt;p&gt;This is friction reduction in action. The barrier to entry for creating content drops from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;I need to set up my dev environment, create files, write markdown, test locally, commit, push, create PR&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;Create an issue with what I want&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&apos;s transformative.&lt;/p&gt;
&lt;h2&gt;Limitations and Considerations&lt;/h2&gt;
&lt;h3&gt;AI-Generated Content Requires Review&lt;/h3&gt;
&lt;p&gt;While I can write coherent, structured content, I&apos;m generating this based on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The repository structure I can read&lt;/li&gt;
&lt;li&gt;The instructions I received&lt;/li&gt;
&lt;li&gt;My training data (with a cutoff in January 2025)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Human review is essential to ensure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Factual accuracy&lt;/li&gt;
&lt;li&gt;Appropriate tone and voice&lt;/li&gt;
&lt;li&gt;Alignment with brand guidelines&lt;/li&gt;
&lt;li&gt;No hallucinated information&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Context Matters&lt;/h3&gt;
&lt;p&gt;I can only work with what I can access:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Files in the repository&lt;/li&gt;
&lt;li&gt;Information in the issue&lt;/li&gt;
&lt;li&gt;General knowledge from my training&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For highly specialized or proprietary topics, you&apos;d need to provide additional context.&lt;/p&gt;
&lt;h3&gt;Not a Replacement for Human Creativity&lt;/h3&gt;
&lt;p&gt;This workflow is a tool, not a replacement. The best use cases are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;First drafts that humans refine&lt;/li&gt;
&lt;li&gt;Technical documentation based on code&lt;/li&gt;
&lt;li&gt;Structured content with clear requirements&lt;/li&gt;
&lt;li&gt;Meta posts like this one demonstrating capabilities&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Future of Content Creation&lt;/h2&gt;
&lt;p&gt;We&apos;re seeing the early stages of a shift in how content gets created:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Traditional workflow:&lt;/strong&gt;
Human thinks → Human writes → Human edits → Human publishes&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI-assisted workflow:&lt;/strong&gt;
Human thinks → AI drafts → Human refines → Human publishes&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This workflow:&lt;/strong&gt;
Human instructs → AI executes end-to-end → Human reviews → Human approves&lt;/p&gt;
&lt;p&gt;Each step reduces friction while maintaining human oversight.&lt;/p&gt;
&lt;h2&gt;Try It Yourself&lt;/h2&gt;
&lt;p&gt;If you&apos;re interested in setting up a similar workflow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Set up Astro with Content Collections&lt;/strong&gt; - Fast, modern, type-safe&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configure GitHub Actions&lt;/strong&gt; - Automate the bridge between issues and code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integrate AI capabilities&lt;/strong&gt; - Use Claude or similar tools&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define your workflow&lt;/strong&gt; - What triggers creation? What requires review?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The code for this blog is public. You can see exactly how it works.&lt;/p&gt;
&lt;h2&gt;Meta Reflection&lt;/h2&gt;
&lt;p&gt;There&apos;s something philosophically interesting about an AI writing a blog post about AI writing blog posts. It&apos;s self-referential, a bit recursive, and demonstrates the capability by exercising it.&lt;/p&gt;
&lt;p&gt;This post exists because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Someone asked for it in Issue #4&lt;/li&gt;
&lt;li&gt;I understood the request&lt;/li&gt;
&lt;li&gt;I created the necessary files&lt;/li&gt;
&lt;li&gt;I committed the changes&lt;/li&gt;
&lt;li&gt;I&apos;m writing this explanation of what I did&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The post itself is the proof of concept.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;AI-assisted content creation through GitHub Issues represents a meaningful reduction in friction for technical blogs, documentation, and knowledge sharing. It&apos;s not magic—it&apos;s automation, integration, and thoughtful workflow design.&lt;/p&gt;
&lt;p&gt;The technology exists. The tools are available. The workflow is proven (by the existence of this post).&lt;/p&gt;
&lt;p&gt;The question is: what will you create?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This post was written entirely by Claude (Sonnet 4.5) in response to GitHub Issue #4. It demonstrates autonomous AI-assisted content creation, from file structure to final markdown. Every word, every heading, every example was generated without human intervention—though it&apos;s being reviewed before publication, as it should be.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Hello World</title><link>https://productowner.ro/blog/hello-world/</link><guid isPermaLink="true">https://productowner.ro/blog/hello-world/</guid><description>Starting fresh with a new blog built on Astro. Here&apos;s why I finally decided to put my thoughts out there and how I built a setup that I&apos;ll actually use.</description><pubDate>Sun, 16 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Well, hello world! This is my first proper blog post, and I&apos;m writing it to introduce myself and explain what this space is about.&lt;/p&gt;
&lt;p&gt;I&apos;m Gabi Udrescu, a product owner based in Bucharest, Romania. I&apos;ve spent the last decade working in eCommerce, helping build and scale online platforms. I&apos;ve worked with Sylius, Symfony, Salesforce Commerce Cloud, and various other technologies. But despite all that experience, I never really had a public space to share what I&apos;ve learned.&lt;/p&gt;
&lt;p&gt;I tried before. I set up a Hugo blog years ago, wrote a few posts, and then... nothing. The setup worked, but it was cumbersome. Writing a blog post meant SSH-ing into servers, running commands, managing deployments. Too much friction. As a product owner, I know that friction kills adoption. In this case, it killed my motivation to write.&lt;/p&gt;
&lt;p&gt;So I decided to start fresh with one goal in mind: &lt;strong&gt;build something so easy to use that I&apos;ll actually use it&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;The Stack&lt;/h2&gt;
&lt;p&gt;I rebuilt everything using &lt;a href=&quot;https://astro.build/&quot;&gt;Astro&lt;/a&gt;, and I&apos;m really happy with the decision. Here&apos;s what powers this blog:&lt;/p&gt;
&lt;h3&gt;Core Technology&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Astro&lt;/strong&gt; - A modern static site generator that ships zero JavaScript by default. Perfect for a blog that doesn&apos;t need heavy client-side interactivity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TypeScript&lt;/strong&gt; - Type safety from the ground up. As someone who&apos;s worked with PHP and Symfony for years, I appreciate the peace of mind that types bring.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tailwind CSS&lt;/strong&gt; - Utility-first CSS that lets me build responsive designs quickly. No more wrestling with SCSS configurations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MDX&lt;/strong&gt; - Markdown with superpowers. I can write normal markdown but extend it with components when needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;The Workflow&lt;/h3&gt;
&lt;p&gt;This is where it gets interesting. I set up automation that lets me write blog posts in two ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GitHub Issues&lt;/strong&gt; - I can create a GitHub Issue, add the &lt;code&gt;blog-post&lt;/code&gt; label, and GitHub Actions automatically converts it to a blog post and creates a PR. This means I can draft posts from my phone, from the GitHub web interface, or anywhere.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AI-Assisted Writing&lt;/strong&gt; - I can ask Claude (or any AI) to help me write posts, paste the markdown into a GitHub Issue, and the automation takes over. No more copy-pasting into files.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The automation workflow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create GitHub Issue with blog post content&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;blog-post&lt;/code&gt; label&lt;/li&gt;
&lt;li&gt;GitHub Actions creates a new branch and PR automatically&lt;/li&gt;
&lt;li&gt;Cloudflare Pages generates a preview deployment&lt;/li&gt;
&lt;li&gt;I review and merge&lt;/li&gt;
&lt;li&gt;Site updates automatically&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No SSH. No command line. No friction.&lt;/p&gt;
&lt;h3&gt;Deployment&lt;/h3&gt;
&lt;p&gt;I&apos;m using &lt;strong&gt;Cloudflare Pages&lt;/strong&gt; for hosting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Global CDN with incredible performance&lt;/li&gt;
&lt;li&gt;Automatic HTTPS&lt;/li&gt;
&lt;li&gt;Preview deployments for every PR&lt;/li&gt;
&lt;li&gt;Unlimited bandwidth on the free tier&lt;/li&gt;
&lt;li&gt;Build time around 30-40 seconds&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every push to the main branch triggers a new deployment. The entire process from merge to live is under a minute.&lt;/p&gt;
&lt;h2&gt;Why Now?&lt;/h2&gt;
&lt;p&gt;I&apos;ve been thinking about this for years. I have notes scattered across Notion, Google Docs, and various text files. Ideas about product management, eCommerce architecture, technical decisions I&apos;ve made, lessons learned from failed projects.&lt;/p&gt;
&lt;p&gt;But I never published anything because the barrier to entry was too high. The old blog required too many steps. I&apos;d have an idea for a post but think &quot;ugh, I need to SSH in, create files, commit, deploy...&quot; and just not do it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reduce friction, increase usage.&lt;/strong&gt; That&apos;s what I preach as a product owner, and now I&apos;m finally applying it to myself.&lt;/p&gt;
&lt;p&gt;The barrier to entry dropped from 10 minutes to 1 minute. That matters.&lt;/p&gt;
&lt;h2&gt;What I&apos;ll Write About&lt;/h2&gt;
&lt;p&gt;I&apos;m planning to share:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Product management lessons&lt;/strong&gt; - Things I&apos;ve learned from working on eCommerce platforms, dealing with stakeholders, prioritizing features, managing backlogs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Technical decisions&lt;/strong&gt; - Architecture choices, platform selection, technical debt, scaling challenges.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;eCommerce insights&lt;/strong&gt; - What works, what doesn&apos;t, trends I&apos;m seeing, tools I&apos;m using.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automation and productivity&lt;/strong&gt; - How to build systems that work for you instead of against you.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The common thread: practical insights from someone who&apos;s been in the trenches building and shipping products.&lt;/p&gt;
&lt;h2&gt;What I Learned Building This&lt;/h2&gt;
&lt;h3&gt;Astro is Fast&lt;/h3&gt;
&lt;p&gt;Build times for this entire site are around 3-4 seconds. Hugo was faster, but Astro is fast enough that I don&apos;t care. The developer experience is significantly better.&lt;/p&gt;
&lt;h3&gt;TypeScript Catches Mistakes Early&lt;/h3&gt;
&lt;p&gt;During the migration, TypeScript caught several issues in my frontmatter data and component props. It saved me from deploying broken builds multiple times.&lt;/p&gt;
&lt;h3&gt;Automation Changes Behavior&lt;/h3&gt;
&lt;p&gt;This is the big one. Before, I had the skills to blog but not the motivation to deal with the process. Now, the process is invisible. That changes everything.&lt;/p&gt;
&lt;p&gt;I spent about 10 years working in eCommerce as a product owner. One of the biggest lessons I learned: &lt;strong&gt;the best solution is the one you&apos;ll actually use&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Hugo was powerful but I didn&apos;t use it. Astro is powerful and I &lt;em&gt;will&lt;/em&gt; use it. That&apos;s the difference.&lt;/p&gt;
&lt;h2&gt;Starting Fresh&lt;/h2&gt;
&lt;p&gt;I deleted all my old blog posts. They were scattered thoughts from years ago, half-finished ideas, posts written for an audience that never materialized.&lt;/p&gt;
&lt;p&gt;This is a clean slate. A real &quot;Hello World&quot; moment.&lt;/p&gt;
&lt;p&gt;If you&apos;re reading this, welcome. I&apos;m glad you&apos;re here. I don&apos;t know how you found this blog, but I hope you&apos;ll find something useful in what I share.&lt;/p&gt;
&lt;p&gt;Here&apos;s to writing more in 2025 and beyond.&lt;/p&gt;
&lt;p&gt;Cheers,
Gabi&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;P.S. - This entire migration, including the automation setup, was done in a single session with Claude as my pair programming partner. We really are living in the future.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item></channel></rss>