<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Elezea — essays</title><description>Rian van der Merwe&apos;s blog</description><link>https://elezea.com/</link><item><title>Two small new things on the blog</title><link>https://elezea.com/2026/04/two-small-new-things-on-the-blog/</link><guid isPermaLink="true">https://elezea.com/2026/04/two-small-new-things-on-the-blog/</guid><description>Two small improvements the WordPress migration unlocked: auto-posted side-project releases and per-content-type RSS feeds.</description><pubDate>Sun, 19 Apr 2026 20:29:02 GMT</pubDate><content:encoded>&lt;p&gt;Now that &lt;a href=&quot;https://elezea.com/2026/04/free-from-wordpress/&quot;&gt;the site is off WordPress&lt;/a&gt;, I can finally start doing a bunch of things I&apos;ve wanted to do for years. Here are the first two:&lt;/p&gt;
&lt;h2&gt;1. Auto-posting side-project releases&lt;/h2&gt;
&lt;p&gt;When I tag a GitHub release on one of my side projects — &lt;a href=&quot;https://tldl-pod.com/&quot;&gt;tldl&lt;/a&gt;, &lt;a href=&quot;https://listentomore.com/&quot;&gt;listentomore&lt;/a&gt;, &lt;a href=&quot;https://github.com/rianvdm/discogs-mcp&quot;&gt;discogs-mcp&lt;/a&gt;, and others — a post now appears on this site automatically. Title, tagline, release notes, and a link back to the GitHub release.&lt;/p&gt;
&lt;p&gt;I ship a lot of small improvements, and historically none of that work was visible anywhere except the GitHub tab nobody reads. Now it shows up on the blog as a first-class content type.&lt;/p&gt;
&lt;h2&gt;2. Per-content-type RSS feeds&lt;/h2&gt;
&lt;p&gt;If you only want the long essays and not my link posts or quotes about other people&apos;s writing (or the release notes, for that matter), you can now subscribe to just those. There are six feeds:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://elezea.com/feed.xml&quot;&gt;Everything&lt;/a&gt; — the full firehose&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://elezea.com/feed/standard.xml&quot;&gt;Essays only&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://elezea.com/feed/link.xml&quot;&gt;Link posts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://elezea.com/feed/quote.xml&quot;&gt;Quotes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://elezea.com/feed/release.xml&quot;&gt;Releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://elezea.com/feed/summary.xml&quot;&gt;Summary&lt;/a&gt; — titles and descriptions only&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&apos;ve also updated &lt;a href=&quot;https://elezea.com/subscribe/&quot;&gt;/subscribe&lt;/a&gt; with the full list. And a reminder that RSS is very much alive and well. Get started with &lt;a href=&quot;https://aboutfeeds.com/&quot;&gt;What is a Feed?&lt;/a&gt;.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>What actually changed about being a PM</title><link>https://elezea.com/2026/04/what-actually-changed-about-being-a-pm/</link><guid isPermaLink="true">https://elezea.com/2026/04/what-actually-changed-about-being-a-pm/</guid><description>Fear-Driven Development, evals as the new PRD, and what actually shifts in the PM job when AI becomes part of the stack.</description><pubDate>Sat, 18 Apr 2026 14:54:37 GMT</pubDate><content:encoded>&lt;p&gt;I have decided that in this new AI era I will be practicing FDD. Fear-Driven Development. Every time I send a pull request, which happens a lot now, I&apos;m terrified of an engineer sending it back to me and asking me to please stay in my lane and stop sending them slop. So I plan, write specs and implementation plans, test thoroughly, and I don&apos;t trust the agent&apos;s inevitable confidence.&lt;/p&gt;
&lt;p&gt;I&apos;ll come back to that, but let me first frame what this post is about. The loudest take on PM work right now is that AI is collapsing the role — that we&apos;re one product cycle away from redundancy, or being reduced to prompt jockeys. That hasn&apos;t been my experience at all. The job got more hands-on, harder (&lt;a href=&quot;https://hbr.org/2026/03/when-using-ai-leads-to-brain-fry&quot;&gt;brain fry&lt;/a&gt; is real), but also a lot more fun. What follows is what actually shifted for me over the last 5 months at Cloudflare, what didn&apos;t, and a couple of things I got wrong.&lt;/p&gt;
&lt;!--more--&gt;
&lt;h2&gt;What changed&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;We all ship now.&lt;/strong&gt; The biggest shift in my day-to-day is that my team and I write code. Not as a vanity exercise or to replace engineers — there is no universe in which I&apos;m touching our data pipeline code. But for prototypes, internal tools, small features, and live bugs or UX improvements that are safe for us to do, we just go ahead and make a PR instead of adding things to the backlog. This quote from one of our EMs sums it up well:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I like these dashboard revamps. Far better if PMs can express their visions for the product directly to Opencode, avoids a lot of back and forth.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is where FDD comes in. The terror of shipping slop is the thing that keeps me responsible. Telling Claude &amp;quot;hey, build me X&amp;quot; is a fast road to code that doesn&apos;t work the way it should, or worse, works but introduces ten regressions along the way. So the pattern I run now is: brainstorm first, usually with &lt;a href=&quot;https://github.com/obra/superpowers&quot;&gt;a skill&lt;/a&gt; that forces me to articulate what I&apos;m actually trying to do; write a spec; turn the spec into an implementation plan; and only then start generating code.&lt;/p&gt;
&lt;p&gt;Counterintuitively, the planning is what makes the whole thing faster (and better!). Skip the brainstorm and you&apos;ll spend ten rounds of PR review untangling code the model wrote confidently and incorrectly. Plan properly and the build itself is usually the fast part.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Context is the product, and evals are the new PRD.&lt;/strong&gt; The second change is arguably even more consequential: I spend real time maintaining a context layer. A &lt;a href=&quot;http://CLAUDE.md&quot;&gt;CLAUDE.md&lt;/a&gt;, a library of skills, stakeholder memory, agent routing, a second brain that feeds all of it. None of this was part of my job a year ago, and treating AI as a chat window means missing most of what it can do. My own PM rubrics live inside this layer too. My &lt;code&gt;/okr&lt;/code&gt; and &lt;code&gt;/prd&lt;/code&gt; commands load the problem-first frameworks and antipattern checklists I&apos;d apply myself, so the first pass on any draft or review is already done before I open the doc.&lt;/p&gt;
&lt;p&gt;The same shift is showing up in specs and PRDs. When a document has two audiences (the team building the product and the agent helping them) the writing changes. Ambiguity gets expensive. Rhetorical flourishes don&apos;t survive the first load into context. A good spec is one that loads cleanly as context and runs as a plan — that&apos;s a different job than writing a memo for stakeholders. Ornella at Braintrust &lt;a href=&quot;https://x.com/braintrust/status/2039356267949445230&quot;&gt;has a good post on how evals are the new PRDs&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;An eval is a structured, repeatable test that answers one question. Does my AI system do the right thing? Think of it as a unit test for AI behavior.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Her argument is that in AI-native products the eval suite is what actually defines the product. A PRD says what you want; an eval tells you whether you got it. For PMs, the artifact that matters is the one you can run.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We take more load off engineering.&lt;/strong&gt; CUSTESCs (our customer escalations) used to take hours and hours of PM and engineering capacity. Someone would dig through Jira, read code across a dozen repos, chase down the relevant ClickHouse tables, check the docs against what the customer expected, and go back and forth for days before anyone had a useful working hypothesis.&lt;/p&gt;
&lt;p&gt;Our team now has a &lt;code&gt;/custesc&lt;/code&gt; command that does most of that in parallel. It pulls the ticket, runs three agents at once across code, Jira, and the wiki, generates and runs ClickHouse queries to check the leading hypothesis, and passes the draft through a blind validator and challenger before it lands as a classified analysis. Ticket ID to root cause in about 20 minutes, most of the time.&lt;/p&gt;
&lt;p&gt;This moves where the investigation work sits. A CUSTESC used to be a tax on engineering. Now I can run the full investigation myself and come to engineering with a classified issue and a working hypothesis, instead of a vague &amp;quot;can someone take a look at this?&amp;quot; One enormous side benefit: I&apos;ve learned more about our products in the past couple of months than I have in the 1.5 years before that.&lt;/p&gt;
&lt;h2&gt;What didn&apos;t change&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Figuring out what to bet on.&lt;/strong&gt; What to say yes/no to is still the hardest part of the job. AI can lay out the tradeoffs; it can&apos;t tell you which user/business opportunities to prioritize this quarter. The roadmap is still a set of bets you own. (What &amp;quot;roadmap&amp;quot; even means in this new world deserves a post on its own, but suffice to say we have fully adopted &lt;a href=&quot;https://elezea.com/2024/02/why-using-a-now-next-later-roadmap-might-be-right-for-you/&quot;&gt;Now/Next/Later&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Trust with engineers.&lt;/strong&gt; There is no AI shortcut for being useful to your team over time. Showing up and owning the ambiguous stuff is still the job. The calls no one wants to make are still yours. If anything, PMs being able to prototype makes the line between helping and stepping on toes harder to hold. It&apos;s a human line, and it gets redrawn every week.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Owning outcomes when things go wrong.&lt;/strong&gt; AI doesn&apos;t absorb accountability. It won&apos;t take the hit in a postmortem, and it won&apos;t rebuild trust with a customer after an incident — you will. The hardest moments in the job haven&apos;t changed.&lt;/p&gt;
&lt;h2&gt;What I got wrong&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;I underestimated the context layer.&lt;/strong&gt; For the first year I treated AI as a chat tool: ask good questions, get good answers. I thought prompt engineering was the skill. The thing I missed is that skills, memory, agent routing, and the specs you load in &lt;em&gt;are&lt;/em&gt; the product. Prompts sit downstream.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I thought adoption would be gradual.&lt;/strong&gt; I assumed PMs would pick this up on a normal curve: some fast, some slow, most in the middle. What I&apos;m seeing industry-wide is a widening gap between PMs who are willing to change how they work and PMs who aren&apos;t. You can see the gap in how fast they investigate a problem, how concretely they argue about a design, and how useful they are to other teams.&lt;/p&gt;
&lt;p&gt;Getting started is easy and the early wins are obvious. The hard part is being open to changing your job. I was talking to my wife the other day about what I&apos;m doing, and she asked the obvious question: &amp;quot;Why are you automating your job away?&amp;quot; My answer: the people who automate their own jobs away are the ones who become more valuable, because the craft is now in orchestration — setting up the layers so the AI does the right thing.&lt;/p&gt;
&lt;h2&gt;Where this leaves us&lt;/h2&gt;
&lt;p&gt;I don&apos;t know what this job looks like in another year. The pattern of the last few months has been that the ground shifts faster than the opinions written about it, and most of the stable-sounding takes age badly within a quarter. What I&apos;m trying to do is pay attention to what&apos;s getting easier, what&apos;s getting harder, and what&apos;s making me uncomfortable. And reminding myself that &amp;quot;uncomfortable&amp;quot; is usually where the real learning happens.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>I am finally — FINALLY — off WordPress</title><link>https://elezea.com/2026/04/free-from-wordpress/</link><guid isPermaLink="true">https://elezea.com/2026/04/free-from-wordpress/</guid><description>After 15+ years on WordPress and Dreamhost, I migrated elezea.com to Astro and Cloudflare Pages in a weekend. AI-assisted planning is what finally made it possible.</description><pubDate>Thu, 16 Apr 2026 02:24:03 GMT</pubDate><content:encoded>&lt;p&gt;A quick meta-post incoming! This site has been running on WordPress and Dreamhost for 18 years. It worked &lt;em&gt;fine&lt;/em&gt;, but the overhead was really starting to get to me: a MySQL database, monthly hosting costs, plugin updates that arrive every other week, and embarrassing page load times...&lt;/p&gt;
&lt;p&gt;I&apos;ve wanted to move to a static site for years, but it felt impossible. Every time I started to think about it I just gave up. How do I migrate 1,700 posts without breaking almost 20 years of URLs? What do I do about search? The &lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt; widget? Email routing? The existing CSS? There were too many things I didn&apos;t know I didn&apos;t know, so I never got very far.&lt;/p&gt;
&lt;!--more--&gt;
&lt;hr&gt;
&lt;p&gt;A few months ago I started working on a fresh migration plan with Claude Code, using the &lt;a href=&quot;https://github.com/obra/superpowers&quot;&gt;obra/superpowers&lt;/a&gt; skill set. Not to write code yet, but to think through the plan. What&apos;s the best long-term architecture for a move like this? What&apos;s the actual order of operations? Where are the traps?&lt;/p&gt;
&lt;p&gt;We iterated on it many times over several weeks. Each pass surfaced something I hadn&apos;t thought about: redirect strategy, shortcode handling, whether my existing CSS depended on WordPress-specific class names, email routing before cancelling the old host, rollback options if something went wrong... The plan got longer and more detailed, but it also got clearer. What had felt like an insurmountable thing gradually became something with known phases, concrete steps, and tradeoffs I could actually evaluate.&lt;/p&gt;
&lt;p&gt;By the end of the planning process, the migration had a 1,300-line plan covering everything from exporting WordPress content to the DNS cutover runbook. And then Claude and I did the actual migration... in a single weekend.&lt;/p&gt;
&lt;p&gt;So WordPress and Dreamhost are both gone. What you see here now is &lt;a href=&quot;https://astro.build&quot;&gt;Astro&lt;/a&gt;, deployed to &lt;a href=&quot;https://workers.cloudflare.com/&quot;&gt;Cloudflare Workers&lt;/a&gt;, with no database and no server-side runtime. Content lives as Markdown files in a git repo. Search runs entirely client-side via &lt;a href=&quot;https://pagefind.app/&quot;&gt;Pagefind&lt;/a&gt;. And of course, it&apos;s also the fastest the site has ever been.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;A lot of people I know have a project like this — something they&apos;ve wanted to do for years, have started and abandoned, and have filed away under &amp;quot;someday.&amp;quot; It stays there because the project doesn&apos;t feel possible. You can&apos;t begin to think of all the complexities involved, so you just don&apos;t start.&lt;/p&gt;
&lt;p&gt;I think we&apos;ve learned now that AI is pretty good at making work legible. If you iterate on a plan long enough the project stops being a vague, scary thing and becomes a checklist you can actually run through. So hey, find your &amp;quot;I&apos;m free&amp;quot; thing. It might be more doable than it looks.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>From Assistant to Collaborator: How My AI Second Brain Grew Up</title><link>https://elezea.com/2026/03/from-assistant-to-collaborator-how-my-ai-second-brain-grew-up/</link><guid isPermaLink="true">https://elezea.com/2026/03/from-assistant-to-collaborator-how-my-ai-second-brain-grew-up/</guid><description>Over the past few months my AI second brain crossed a threshold from tool I invoke to collaborator I dispatch — driven by multi-agent workflows, cross-session memory, and deep domain expertise.</description><pubDate>Sat, 14 Mar 2026 15:13:36 GMT</pubDate><content:encoded>&lt;p&gt;Over the past few months I’ve been writing about how I use AI for product work. The &lt;a href=&quot;https://elezea.com/2025/12/ai-for-product-management/&quot;&gt;first post&lt;/a&gt; covered the philosophy: context files, opinionated prompts, and how to compose the right inputs for each task. The &lt;a href=&quot;https://elezea.com/2025/12/how-my-ai-product-second-brain-evolved/&quot;&gt;second&lt;/a&gt; added slash commands and daily summaries. The &lt;a href=&quot;https://elezea.com/2026/01/how-to-set-up-opencode-as-your-product-second-brain/&quot;&gt;third&lt;/a&gt; was a hands-on setup guide. And the &lt;a href=&quot;https://elezea.com/2026/02/project-brains-organizing-complex-initiatives-for-ai-assisted-work/&quot;&gt;fourth&lt;/a&gt; introduced project brains for keeping complex initiatives organized.&lt;/p&gt;
&lt;p&gt;This post covers a different kind of change. The earlier additions were incremental: more commands, better context, smoother workflows. What changed recently feels more like a threshold. The system graduated from a tool I invoke for specific tasks to something closer to a collaborator I dispatch to do real work. Three capabilities drove that shift: multi-agent orchestration, cross-session memory, and the encoding of domain expertise into the system itself.&lt;/p&gt;
&lt;h2&gt;Multi-Agent Workflows&lt;/h2&gt;
&lt;p&gt;The clearest example is customer escalation investigations. As a PM for data products, I regularly investigate customer-reported issues: logging gaps, data discrepancies, behavior that doesn’t match expectations. These investigations require pulling information from multiple sources and cross-referencing it all into an analysis that engineering can act on.&lt;/p&gt;
&lt;p&gt;I built a &lt;a href=&quot;https://github.com/rianvdm/product-ai-public/blob/main/04-docs/multi-agent-investigation.md&quot;&gt;slash command that handles this as a multi-phase workflow&lt;/a&gt;. When I run it with a ticket ID, here’s what happens:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The system reads the customer ticket, extracts the core problem, identifies which product area is involved, and classifies the issue type.&lt;/li&gt;
&lt;li&gt;Three specialist agents launch simultaneously, each focused on a different data source. One searches the codebase for the relevant logic and recent changes. Another searches for related tickets and prior incidents across projects. A third checks documentation and internal wiki pages for relevant operational context.&lt;/li&gt;
&lt;li&gt;A fourth agent receives the combined findings and produces database queries that can confirm or refute the working hypothesis.&lt;/li&gt;
&lt;li&gt;The system combines everything into a structured analysis: issue classification, root cause anchored in code where possible, customer impact, and recommended next steps.&lt;/li&gt;
&lt;li&gt;A &lt;a href=&quot;https://github.com/rianvdm/product-ai-public/blob/main/.opencode/agent/blind-validator.md&quot;&gt;blind validator&lt;/a&gt; independently re-fetches every source cited in the draft to verify the claims hold up. Then an adversarial challenger looks for alternative explanations and tests whether the classification is correct.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The output is a document I can review with an engineering colleague or paste into a chat thread. It includes a confidence assessment and a data collection status table showing what was checked and what was unavailable, along with how the analysis compensated for gaps.&lt;/p&gt;
&lt;p&gt;The command file that orchestrates all of this isn’t prompting in the traditional sense. It defines which agents to dispatch, what information each one needs, when to wait for results before proceeding, and how to handle failures gracefully. Writing this felt more like designing a workflow than writing a prompt.&lt;/p&gt;
&lt;p&gt;I’ve applied the same pattern to other tasks. A “fix feasibility” command evaluates whether a ticket describes a code change simple enough for a PM to implement with AI coding assistance, and produces an implementation brief if the answer is yes. The specific use cases differ, but the architecture is the same: break the problem into specialist tasks that run in parallel, then synthesize and validate the results.&lt;/p&gt;
&lt;h2&gt;Cross-Session Memory&lt;/h2&gt;
&lt;p&gt;AI conversations are stateless by default. Every new session starts from zero, which means re-explaining context that should already be established. Over a few weeks of working on the same projects, this friction adds up.&lt;/p&gt;
&lt;p&gt;I addressed this with a &lt;a href=&quot;https://github.com/rianvdm/product-ai-public/blob/main/04-docs/cross-session-memory.md&quot;&gt;four-layer memory system&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The first layer is &lt;a href=&quot;https://github.com/rianvdm/product-ai-public/blob/main/01-context/stable-facts-template.md&quot;&gt;stable facts&lt;/a&gt;: a compact file that captures the current state of all active work, including project status, recent decisions, and environment constraints. This is the primary orientation file. When I start a session, the AI reads it and immediately knows what’s in flight.&lt;/li&gt;
&lt;li&gt;The second is a session log: a reverse-chronological list of handoff notes. Each entry records what happened in a session and what threads remain open. The last three entries give enough context to pick up where I left off.&lt;/li&gt;
&lt;li&gt;Third, a corrections file. This holds behavioral fixes for things the AI consistently gets wrong. It’s a staging area that should shrink over time as fixes get promoted elsewhere.&lt;/li&gt;
&lt;li&gt;And finally, a decisions log: a cross-cutting record of decisions that don’t belong to a specific project. Each entry captures context and rationale so I don’t relitigate settled questions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Two commands manage this. &lt;a href=&quot;https://github.com/rianvdm/product-ai-public/blob/main/.opencode/command/session-start.md&quot;&gt;&lt;code&gt;/session-start&lt;/code&gt;&lt;/a&gt; loads all four files and presents a brief summary of current state and recent sessions. &lt;a href=&quot;https://github.com/rianvdm/product-ai-public/blob/main/.opencode/command/session-end.md&quot;&gt;&lt;code&gt;/session-end&lt;/code&gt;&lt;/a&gt; reviews the conversation, writes a handoff note, and then checks whether any learnings should be promoted to infrastructure.&lt;/p&gt;
&lt;p&gt;“Promote to infrastructure” means taking something learned during a session and baking it into the files the agent actually reads. A correction about how to handle a specific edge case in escalation investigations might start in the corrections file, then get promoted into the escalation command or a domain skill once it’s validated. The corrections file shrinks over time as knowledge graduates into the right places.&lt;/p&gt;
&lt;p&gt;This creates a loop where the system improves its own instructions. I approve every change, so it’s not self-modifying in a creepy way. But in practice each work session can make the next one slightly better, and the compound effect over weeks is noticeable.&lt;/p&gt;
&lt;h2&gt;Domain Expertise&lt;/h2&gt;
&lt;p&gt;The earlier posts described skills like &lt;a href=&quot;https://github.com/rianvdm/product-ai-public/blob/main/.opencode/skills/pm-thinking/SKILL.md&quot;&gt;&lt;code&gt;pm-thinking&lt;/code&gt;&lt;/a&gt;, which applies product methodology (problem-first thinking, measurable outcomes) to any PM-related conversation. That’s useful, but generic. It works the same way regardless of what product you’re building.&lt;/p&gt;
&lt;p&gt;The bigger shift was building skills that encode institutional knowledge about specific products. I now have skills for each major product area my team owns: log delivery, analytics, audit logs, alerting, and data pipelines. Each skill contains the product’s architecture and common failure modes, along with which code repositories to search and which database tables hold relevant data.&lt;/p&gt;
&lt;p&gt;This is what makes the multi-agent workflows genuinely useful. When the code investigator agent examines an escalation about missing logs, the domain skill tells it which service handles job state and which repository contains the delivery pipeline. It also flags recent architectural changes that might be relevant. Without that context, the agent produces plausible-sounding analysis that misses the specific details engineering needs.&lt;/p&gt;
&lt;p&gt;Now every investigation that uses a skill validates or extends the knowledge it contains, and &lt;code&gt;/session-end&lt;/code&gt; catches insights that should be added back.&lt;/p&gt;
&lt;h2&gt;How The Work Changes&lt;/h2&gt;
&lt;p&gt;A few practical observations from working this way:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The role has shifted from “write the right prompt” to “design the right process.” The escalation command is a workflow with phases, dependencies, and validation steps. Thinking about it that way produces better results than trying to pack everything into a single conversation.&lt;/li&gt;
&lt;li&gt;Validation has to be built in. The blind validator exists because agents make mistakes. They cite files that don’t exist, mischaracterize what code does, or draw conclusions the evidence doesn’t support. Catching those issues before they reach anyone else is the whole point.&lt;/li&gt;
&lt;li&gt;Cross-session memory requires discipline. The system only works if I run &lt;code&gt;/session-end&lt;/code&gt; after substantive sessions and keep stable facts current. When I skip it, the next session starts cold and I lose the compounding benefit. Automation helps, but the commitment to maintain the memory is mine.&lt;/li&gt;
&lt;li&gt;And domain skills need regular maintenance. Products change. Code gets refactored, pipelines get rearchitected. Skills that aren’t periodically updated drift from reality. I haven’t solved this well yet. It’s still a manual process of noticing when a skill’s knowledge is stale and updating it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The system still makes mistakes. Multi-agent workflows are more thorough than single-prompt conversations, but they’re not infallible. The confidence assessment in the escalation output exists because sometimes the answer is “medium confidence, we couldn’t confirm this from the available data.” That honesty about limitations is more useful than false certainty.&lt;/p&gt;
&lt;h2&gt;Where This Is Going&lt;/h2&gt;
&lt;p&gt;I’m sure the specific commands and skills will look different in six months as I learn what works and what doesn’t. But the underlying pattern feels durable: compose specialist agents with deep domain context, validate their output, and feed learnings back into the system.&lt;/p&gt;
&lt;p&gt;I’ve published updated files to the &lt;a href=&quot;https://github.com/rianvdm/product-ai-public&quot;&gt;Product AI Public repo&lt;/a&gt;, including the session memory commands and a generalized version of the multi-agent escalation workflow. If you’re building something similar, those might be useful starting points.&lt;/p&gt;
&lt;p&gt;The value of this system is in how the pieces reinforce each other. Domain skills make agents useful for real investigations. Session memory means the system gets smarter over time. And the promote-to-infrastructure loop ties it together, so each piece of work has a chance to make the next one better.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>Project Brains: Organizing Complex Initiatives for AI-Assisted Work</title><link>https://elezea.com/2026/02/project-brains-organizing-complex-initiatives-for-ai-assisted-work/</link><guid isPermaLink="true">https://elezea.com/2026/02/project-brains-organizing-complex-initiatives-for-ai-assisted-work/</guid><description>How a simple folder structure with a living CONTEXT.md file eliminates context fragmentation and makes AI assistants dramatically more useful on complex projects.</description><pubDate>Tue, 24 Feb 2026 01:46:50 GMT</pubDate><content:encoded>&lt;p&gt;I’ve written before about &lt;a href=&quot;https://elezea.com/2025/12/ai-for-product-management/&quot;&gt;how I use AI for product work&lt;/a&gt; and &lt;a href=&quot;https://elezea.com/2026/01/how-to-set-up-opencode-as-your-product-second-brain/&quot;&gt;how that workflow evolved&lt;/a&gt; with slash commands and skills. This post focuses on how to maintain context for complex, long-running projects.&lt;/p&gt;
&lt;h2&gt;The Problem: Context Fragmentation&lt;/h2&gt;
&lt;p&gt;When I’m working on a major initiative, relevant information ends up scattered everywhere: PRDs in one tool, tickets in another, meeting notes in a third, plus emails and chat threads. Every time I return to a project after a few days, I spend time reconstructing where things stand.&lt;/p&gt;
&lt;p&gt;AI assistants can make this worse because each conversation starts fresh. I can reference files, but the model doesn’t know which files matter for this project, what decisions we’ve already made, or what questions remain open. I end up re-explaining context that should be obvious.&lt;/p&gt;
&lt;p&gt;Project brains solve this by creating a dedicated folder for each major initiative with a standard structure that both humans and AI can navigate.&lt;/p&gt;
&lt;h2&gt;What a Project Brain Looks Like&lt;/h2&gt;
&lt;p&gt;The structure looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;projects/[project-name]/
├── CONTEXT.md        # The hub: status, stakeholders, decisions, open questions
├── artifacts/        # PRDs, specs, designs, one-pagers
├── decisions/        # Decision logs with rationale and alternatives
├── research/         # Customer feedback, data analysis, technical investigation
└── meetings/         # Meeting notes related to this project
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;CONTEXT.md&lt;/code&gt; file is a living document that answers the questions I’d need to answer every time I pick up a project:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What’s the current status?&lt;/li&gt;
&lt;li&gt;Who are the stakeholders and what do they care about?&lt;/li&gt;
&lt;li&gt;What decisions have we made and why?&lt;/li&gt;
&lt;li&gt;What questions are still open?&lt;/li&gt;
&lt;li&gt;Where are the relevant artifacts?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When I start a conversation about a project, I point the AI to the project folder. It reads &lt;a href=&quot;http://CONTEXT.md&quot;&gt;CONTEXT.md&lt;/a&gt; first, then can drill into specific artifacts as needed. The model immediately knows the project state without me explaining it.&lt;/p&gt;
&lt;h2&gt;A Real Example&lt;/h2&gt;
&lt;p&gt;Say I’m working on adding observability to an internal platform—something that needs coordination across multiple teams over several months. The &lt;code&gt;CONTEXT.md&lt;/code&gt; includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Quick reference table:&lt;/strong&gt; Status, PM, engineering lead, target dates, links to the PRD and relevant tickets. Everything I’d need to orient myself.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Problem statement:&lt;/strong&gt; A clear articulation of the user pain. In this case: “Platform incidents go undetected until users report them, and debugging takes hours due to lack of visibility.”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Success metrics with baselines and targets:&lt;/strong&gt; Things like uptime targets, reduction in mean time to resolution, and alert accuracy. These anchor every conversation about scope.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Key decisions made:&lt;/strong&gt; A table showing what was decided, when, why, and what alternatives we considered. When someone asks “why aren’t we including component X in v1?”, the answer is already documented.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Open questions:&lt;/strong&gt; A checklist of unresolved issues. This prevents the AI from assuming things are settled when they’re not.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Links:&lt;/strong&gt; Direct paths to the PRD, spec, analysis docs, and related pages.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;decisions/&lt;/code&gt; folder contains detailed decision logs for significant choices. The &lt;code&gt;research/&lt;/code&gt; folder holds whatever analysis informed the project direction. The &lt;code&gt;meetings/&lt;/code&gt; folder captures sync notes that would otherwise disappear into Gemini notes in a Google Drive… somewhere.&lt;/p&gt;
&lt;h2&gt;When to Create a Project Brain&lt;/h2&gt;
&lt;p&gt;Not every task needs this treatment. I create a project brain when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The work spans multiple weeks or months.&lt;/strong&gt; Short-term tasks don’t need the overhead.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple stakeholders are involved.&lt;/strong&gt; If I need to coordinate with other teams, having a single source of context helps.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decisions require documented rationale.&lt;/strong&gt; If someone might ask “why did you do it this way?” later, a decision log is worth the investment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The project crosses team boundaries.&lt;/strong&gt; Cross-functional initiatives benefit from dedicated context that doesn’t live in any one team’s space.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For simpler work, I use a flatter folder structure with documents organized by type. Project brains are for the complex initiatives where context fragmentation is a real cost.&lt;/p&gt;
&lt;h2&gt;How AI Uses Project Brains&lt;/h2&gt;
&lt;p&gt;The payoff comes when I’m working with AI on project-specific tasks. A few examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Preparing for a meeting:&lt;/strong&gt; “Read the &lt;a href=&quot;http://CONTEXT.md&quot;&gt;CONTEXT.md&lt;/a&gt; in the [project] folder. I have a spec review meeting tomorrow. What are the open questions I should raise?”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Drafting an update:&lt;/strong&gt; “Based on the project context, draft a status update for leadership. Focus on progress since the start of the month and remaining blockers.”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decision analysis:&lt;/strong&gt; “We need to decide whether to include [component] in scope. Read the research folder and the current &lt;a href=&quot;http://CONTEXT.md&quot;&gt;CONTEXT.md&lt;/a&gt;. What would you recommend and why?”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The AI knows the project history, the stakeholders, the constraints. Its recommendations are grounded in documented context rather than generic best practices.&lt;/p&gt;
&lt;h2&gt;Maintaining the Project Brain&lt;/h2&gt;
&lt;p&gt;The value depends on keeping &lt;a href=&quot;http://CONTEXT.md&quot;&gt;CONTEXT.md&lt;/a&gt; current. I’ve found a few practices help:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Update after significant events.&lt;/strong&gt; When a decision is made, a meeting happens, or the status changes, update the file immediately. “I’ll do it later” means it won’t happen. LLMs are great at making these updates, so you can simply say “update relevant files based on the session we just concluded.”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Move open questions to resolved.&lt;/strong&gt; When a question gets answered, don’t delete it. Mark it resolved and note the answer. This preserves the reasoning trail.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Link, don’t duplicate.&lt;/strong&gt; &lt;a href=&quot;http://CONTEXT.md&quot;&gt;CONTEXT.md&lt;/a&gt; should point to artifacts, not contain them. Keep PRDs in the artifacts folder. Keep meeting notes in the meetings folder. The context file is a hub, not a repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Scaffolding New Projects&lt;/h2&gt;
&lt;p&gt;I have a slash command that scaffolds new project brains:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/new-project platform-observability
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This creates the folder structure, generates a &lt;a href=&quot;http://CONTEXT.md&quot;&gt;CONTEXT.md&lt;/a&gt; from a template, and fills out a rough draft based on whatever context I provide. Removing the friction of setup means I’m more likely to actually use the system. You can &lt;a href=&quot;https://github.com/rianvdm/product-ai-public/blob/main/.opencode/command/new-project.md&quot;&gt;view the command here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The template includes the standard sections (Quick Reference, Problem Statement, Success Metrics, etc.) with placeholder text. I fill in what I know and mark other sections as TBD. Even an incomplete project brain is more useful than scattered notes.&lt;/p&gt;
&lt;h2&gt;What I’ve Learned&lt;/h2&gt;
&lt;p&gt;A few observations from using this approach:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Structure beats volume.&lt;/strong&gt; A well-organized project brain with sparse content is more useful than a folder full of undifferentiated documents. The AI (and future me) can navigate structure. It can’t navigate chaos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decision logs compound.&lt;/strong&gt; Every decision I document now saves time later. When stakeholders ask “why didn’t we do X?”, I can point to a decision log instead of reconstructing my reasoning from memory.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://CONTEXT.md&quot;&gt;CONTEXT.md&lt;/a&gt; is for humans too.&lt;/strong&gt; I originally built this for AI assistance, but I reference these files constantly in my own work. The discipline of maintaining project context helps me stay oriented, not just the AI.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The folder structure is flexible.&lt;/strong&gt; Some projects need more subfolders (like &lt;code&gt;research/customer-interviews/&lt;/code&gt;). Some need fewer. The template is a starting point, not a requirement.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This approach requires discipline to maintain, and the upfront setup takes time. But for complex initiatives where context fragmentation is a real problem, project brains have been worth the investment. The AI becomes a more useful collaborator when it has access to the same context I do.&lt;/p&gt;
&lt;p&gt;I’m still iterating on the structure. I suspect the template will look different six months from now as I learn what sections actually get used and which ones I skip every time. The point isn’t to get the folder structure perfect, but to stop losing context between conversations and start building on what you already know.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>Why AI in Interviews Is Bad for Candidates, Not Just Companies</title><link>https://elezea.com/2026/01/why-ai-in-interviews-is-bad-for-candidates-not-just-companies/</link><guid isPermaLink="true">https://elezea.com/2026/01/why-ai-in-interviews-is-bad-for-candidates-not-just-companies/</guid><description>A LinkedIn post about AI in interviews generated some pushback. Here&apos;s the fuller version of what I was trying to say.</description><pubDate>Mon, 26 Jan 2026 02:03:05 GMT</pubDate><content:encoded>&lt;p&gt;A &lt;a href=&quot;https://www.linkedin.com/posts/rianvdm_i-had-my-first-experience-interviewing-a-activity-7420278084085506048-R-32?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAABjD3ABBkyXFAEwOlo4P2TDy1WPGp228K8&quot;&gt;quick post on LinkedIn&lt;/a&gt; about interviewing a candidate who used real-time AI got more engagement than is usual for me. And as often happens when something goes semi-viral, some folks took issue with what I said, so I want to expand on the point I was trying to make (it wasn’t that “AI is cheating”).&lt;/p&gt;
&lt;p&gt;Here’s what I wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I had my first experience interviewing a candidate who used real-time AI today. If you’re someone who uses AI daily, it’s so easy to spot. The pause before the answer, the constant eyes flicking to the other screen, the perfectly-manicured 3-point answer…&lt;/p&gt;
&lt;p&gt;Friends, just don’t do this. It’s too easy to spot, and it will also set you up for failure, because it might get you a job that you’re not a good fit for, which is bad for &lt;em&gt;everyone&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Use AI &lt;em&gt;in&lt;/em&gt; your job, for sure. But don’t use it to &lt;em&gt;get&lt;/em&gt; the job. The interview process is about you. Be you.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One response called this “absolutely myopic” (I had to double check I didn’t accidentally post on Hacker News) and asked why candidates shouldn’t use AI if it allows for “a better, more creative answer.” Another suggested that if candidates will use AI on the job anyway, then the “real you” isn’t going to be working, so what’s the difference?&lt;/p&gt;
&lt;p&gt;Let’s dig into this.&lt;/p&gt;
&lt;h2&gt;What interviews are actually for&lt;/h2&gt;
&lt;p&gt;I don’t interview people to test whether they can produce a good answer to a question. I interview people to understand &lt;em&gt;how they think&lt;/em&gt;, what they’ve actually done, and whether we’ll work well together.&lt;/p&gt;
&lt;p&gt;When I ask “Tell me about a time you had to make a difficult prioritization decision,” I’m not looking for the theoretically optimal framework. I want to hear &lt;em&gt;your&lt;/em&gt; story. The messy details and the trade-offs you wrestled with. The thing you got wrong and what you learned from it. AI can’t give me that. It can only give me a polished summary of what prioritization frameworks exist.&lt;/p&gt;
&lt;p&gt;One commenter put it well: “It’s about both the company and the individual, so you will often talk about their real experience, what they did, how they felt, what did they learn, digging deeper into their real experience to find out the interesting things that could make them a good match.”&lt;/p&gt;
&lt;p&gt;AI might help you phrase things more clearly. But if it’s &lt;em&gt;generating&lt;/em&gt; your answers, you’re hiding the very thing I’m trying to evaluate.&lt;/p&gt;
&lt;h2&gt;The fit problem&lt;/h2&gt;
&lt;p&gt;Here’s the part that didn’t seem to land: using AI to get a job you’re not qualified for is bad &lt;em&gt;for you&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Let’s say the AI-assisted interview works. You get hired. Now what? You show up on day one, and the expectations are set based on how you performed in those interviews. But that wasn’t you. That was a performance enhanced by a tool you won’t have in the same way during actual work conversations, whiteboard sessions, and quick chat exchanges where people expect you to just… know things.&lt;/p&gt;
&lt;p&gt;I’ve seen what happens when there’s a mismatch between interview performance and actual capability. It’s not a fun experience for anyone, least of all the person who’s now struggling in a role they weren’t ready for. One person called it “artificial buzzword ventriloquism” in the comments. Harsh, but not wrong.&lt;/p&gt;
&lt;h2&gt;It’s about context, not absolutes&lt;/h2&gt;
&lt;p&gt;A few commenters suggested that interviews should evolve to assume AI assistance, since that’s how people will actually work. One person wrote: “By prohibiting AI during interviews, the interview environment diverges from actual job conditions and fails to evaluate a critical skill: the ability to effectively use one of the most powerful productivity tools available today.”&lt;/p&gt;
&lt;p&gt;I think there’s something to this. In fact, our interview process includes a take-home assessment where we explicitly encourage candidates to use AI. We want to see how they approach a problem, how they structure their thinking, and yes, how they use modern tools to get to a good answer. That’s a legitimate skill worth evaluating.&lt;/p&gt;
&lt;p&gt;But that’s different from what happened in my interview, where someone was clearly trying to hide their AI usage while answering questions about their past experience. That’s not “using AI as a tool.” That’s using AI as a mask.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I think candidates should absolutely use AI to prepare for interviews: research the company, practice answering common questions, refine their resume.&lt;/p&gt;
&lt;p&gt;But in the interview itself, when I’m asking about &lt;em&gt;your&lt;/em&gt; experience and &lt;em&gt;your&lt;/em&gt; thinking, I need to hear from you. Not because AI is cheating, but because the whole point is to figure out if &lt;em&gt;you&lt;/em&gt; are the right fit for this role and this team. If I can’t evaluate that, we can’t make a good hiring decision. And that’s bad for both of us.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>How to Set Up OpenCode as Your Product Second Brain</title><link>https://elezea.com/2026/01/how-to-set-up-opencode-as-your-product-second-brain/</link><guid isPermaLink="true">https://elezea.com/2026/01/how-to-set-up-opencode-as-your-product-second-brain/</guid><description>A practical 30-minute guide to setting up OpenCode as a product management second brain with custom slash commands for PRD reviews, OKR checks, and idea stress-testing.</description><pubDate>Thu, 08 Jan 2026 18:20:11 GMT</pubDate><content:encoded>&lt;p&gt;This is the hands-on companion to &lt;a href=&quot;https://elezea.com/2025/12/ai-for-product-management/&quot;&gt;How I Use AI for Product Work&lt;/a&gt; and &lt;a href=&quot;https://elezea.com/2025/12/how-my-ai-product-second-brain-evolved/&quot;&gt;How My AI Product Second Brain Evolved&lt;/a&gt;. Those posts explain the philosophy; this one gets you to a working &lt;a href=&quot;https://opencode.ai&quot;&gt;OpenCode&lt;/a&gt; setup in 30 minutes.&lt;/p&gt;
&lt;p&gt;By the end, you’ll have a folder structure, three useful slash commands, and a context file that makes the AI actually useful.&lt;/p&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;You’ll need OpenCode installed and configured. Follow the &lt;a href=&quot;https://opencode.ai/docs/installation&quot;&gt;installation guide&lt;/a&gt; to get started. If you can run &lt;code&gt;opencode&lt;/code&gt; in your terminal and get a response, you’re ready.&lt;/p&gt;
&lt;h2&gt;Step 1: Create the Folder Structure&lt;/h2&gt;
&lt;p&gt;Create a new directory for your product second brain. I recommend keeping it in a git repo so you can version your prompts over time.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p product-ai/{context,prompts/pm,.opencode/command}
cd product-ai
git init
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Your structure should look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;product-ai/
├── .opencode/
│   └── command/       # Slash commands live here
├── context/           # Personal context files
├── prompts/
│   └── pm/            # PM-specific prompts
├── AGENTS.md          # Instructions for OpenCode
└── opencode.jsonc     # OpenCode config
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Step 2: Create Your Context File&lt;/h2&gt;
&lt;p&gt;The context file tells the AI who you are and how you work. Create &lt;code&gt;context/about-me.md&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# About Me

## Role
[Your title] at [Company], working on [your area].

## What I Care About
- [Your product philosophy, e.g., &amp;quot;Start with the problem, not the solution&amp;quot;]
- [Your working style, e.g., &amp;quot;Bias toward shipping and learning&amp;quot;]
- [Your communication preferences, e.g., &amp;quot;Direct feedback, no hedging&amp;quot;]

## Current Focus
- [Project or initiative 1]
- [Project or initiative 2]

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Keep this updated as your focus changes. The more specific you are, the more useful the AI becomes.&lt;/p&gt;
&lt;h2&gt;Step 3: Create &lt;a href=&quot;http://AGENTS.md&quot;&gt;AGENTS.md&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This file tells OpenCode how to behave in your repo. Create &lt;code&gt;AGENTS.md&lt;/code&gt; in the root:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Product AI Second Brain

Read this file before responding.

## Who I Am
Read `context/about-me.md` for personal context.

## Slash Commands
Run these by typing the command in OpenCode:

| Command | Purpose |
|---------|---------|
| `/prd` | Review a PRD |
| `/debate` | Stress-test a product idea |
| `/okr` | Review OKRs |

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Step 4: Add Your First Commands&lt;/h2&gt;
&lt;p&gt;Slash commands are markdown files in &lt;code&gt;.opencode/command/&lt;/code&gt;. Each command file is a thin wrapper that points to a full prompt file in &lt;code&gt;prompts/pm/&lt;/code&gt;. This separation keeps commands simple while allowing prompts to be detailed and shareable.&lt;/p&gt;
&lt;h3&gt;Command 1: /debate (Stress-test an Idea)&lt;/h3&gt;
&lt;p&gt;Create &lt;code&gt;.opencode/command/debate.md&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
description: Stress-test a product idea with pro vs skeptic debate
---

# Product Debate

Read these files before proceeding:
- `prompts/pm/debate-product-idea.md` - **REQUIRED: Full debate framework**
- `context/about-me.md` - Your product beliefs and context

## Your Task

$ARGUMENTS

## Instructions

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then create the prompt file &lt;code&gt;prompts/pm/debate-product-idea.md&lt;/code&gt; with your full debate methodology. The basic structure: define two personas (a Visionary who argues for the idea and a Skeptic who pokes holes), have them debate, then synthesize the strongest arguments from both sides.&lt;/p&gt;
&lt;h3&gt;Command 2: /okr (Review OKRs)&lt;/h3&gt;
&lt;p&gt;Create &lt;code&gt;.opencode/command/okr.md&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
description: Review OKRs for clarity and outcome-orientation
---

# OKR Review

Read these files before proceeding:
- `prompts/pm/review-okrs.md` - **REQUIRED: Full OKR review framework**
- `context/about-me.md` - Your product beliefs and context

## Your Task

$ARGUMENTS

## Instructions

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then create &lt;code&gt;prompts/pm/review-okrs.md&lt;/code&gt; with your OKR criteria. Mine checks for outcome-orientation (are these outputs or outcomes?), measurability, and whether the key results actually ladder up to the objective.&lt;/p&gt;
&lt;h3&gt;Command 3: /prd (Review a PRD)&lt;/h3&gt;
&lt;p&gt;Create &lt;code&gt;.opencode/command/prd.md&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
description: Review a PRD for completeness and clarity
---

# PRD Review

Read these files before proceeding:
- `prompts/pm/review-prd.md` - **REQUIRED: Full PRD review framework**
- `context/about-me.md` - Your product beliefs and context

## Your Task

$ARGUMENTS

## Instructions

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then create &lt;code&gt;prompts/pm/review-prd.md&lt;/code&gt; with your PRD review criteria.&lt;/p&gt;
&lt;h2&gt;Step 5: Try It Out&lt;/h2&gt;
&lt;p&gt;Navigate to your product-ai directory and run OpenCode:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd product-ai
opencode
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Test each command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/debate Should we build a self-serve dashboard for customers to debug their own issues?
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;/okr [paste your OKRs here]
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;What’s Next&lt;/h2&gt;
&lt;p&gt;Once you’re comfortable with this setup, consider adding:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;More commands:&lt;/strong&gt; &lt;code&gt;/retro&lt;/code&gt; for retrospectives, &lt;code&gt;/feedback&lt;/code&gt; for drafting colleague feedback&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skills:&lt;/strong&gt; Methodology files that OpenCode loads automatically based on context (see the &lt;a href=&quot;https://opencode.ai/docs/skills&quot;&gt;skills documentation&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Daily summaries:&lt;/strong&gt; A &lt;code&gt;/today&lt;/code&gt; command that summarizes what you worked on&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project-specific context:&lt;/strong&gt; Folders for major initiatives with their own context files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The key is to start small and add complexity as you identify repeated workflows. If you find yourself doing the same thing more than twice, it’s probably worth automating.&lt;/p&gt;
&lt;p&gt;If you build something useful on top of this, I’d love to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;hear about it&lt;/a&gt;!&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>How My AI Product &quot;Second Brain&quot; Evolved</title><link>https://elezea.com/2025/12/how-my-ai-product-second-brain-evolved/</link><guid isPermaLink="true">https://elezea.com/2025/12/how-my-ai-product-second-brain-evolved/</guid><description>How I evolved my AI workflow from simple prompts to slash commands, automated daily summaries, and calendar briefings—plus the lessons learned along the way.</description><pubDate>Tue, 30 Dec 2025 13:49:02 GMT</pubDate><content:encoded>&lt;p&gt;A couple of weeks ago I wrote about &lt;a href=&quot;https://elezea.com/2025/12/ai-for-product-management/&quot;&gt;how I use AI for product work&lt;/a&gt;—the basic setup of context files, prompts, and the &lt;code&gt;@&lt;/code&gt; mention system in Windsurf. Since then the system evolved quite a bit, so I figured it’s time for an update.&lt;/p&gt;
&lt;p&gt;The philosophy has shifted a bit. I still don’t use AI to do my core thinking—I write my own PRDs and strategy docs. But I’ve come to rely on it more as a helpful assistant for &lt;em&gt;the work around the work&lt;/em&gt;: reviewing documents before I share them, researching technical questions, summarizing my week, preparing for meetings. It’s now less “sparring partner” and more “capable colleague who’s always available.”&lt;/p&gt;
&lt;h2&gt;From Windsurf to Claude Code / OpenCode&lt;/h2&gt;
&lt;p&gt;The biggest shift was moving from Windsurf to &lt;a href=&quot;https://docs.anthropic.com/en/docs/claude-code&quot;&gt;Claude Code&lt;/a&gt;, Anthropic’s terminal-based AI assistant. Claude Code runs in your terminal and has direct access to your filesystem, which changes how you can structure these workflows.&lt;/p&gt;
&lt;p&gt;The key feature that made this worthwhile is &lt;strong&gt;slash commands&lt;/strong&gt;. Instead of manually &lt;code&gt;@&lt;/code&gt;-mentioning prompt files, I can type &lt;code&gt;/ask-se&lt;/code&gt; and Claude Code automatically loads the right context, reads the relevant files, and knows how to respond. It’s a small thing, but removing that friction makes a real difference in how often I actually use these tools.&lt;/p&gt;
&lt;p&gt;I also started using &lt;a href=&quot;https://opencode.ai/&quot;&gt;OpenCode&lt;/a&gt;, an open-source alternative that works similarly. Both tools read from the same instruction files, so I maintain one set of prompts that work in either environment.&lt;/p&gt;
&lt;h2&gt;Slash Commands&lt;/h2&gt;
&lt;p&gt;The prompts I described in the original post are now wrapped in &lt;a href=&quot;https://code.claude.com/docs/en/slash-commands#parameters&quot;&gt;slash commands&lt;/a&gt;. The files live in &lt;code&gt;.claude/commands/&lt;/code&gt; and look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.claude/commands/
├── prd.md          # Review a PRD
├── okr.md          # Review OKRs
├── debate.md       # Stress-test a product idea
├── ask-se.md       # Research technical questions
├── briefing.md     # Calendar briefing
├── today.md        # End-of-day summary
├── weekly.md       # Weekly summary
└── ...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Each command file contains instructions for the AI, plus a &lt;code&gt;$ARGUMENTS&lt;/code&gt; placeholder for any input I provide. When I run &lt;code&gt;/debate should we build a developer portal?&lt;/code&gt;, Claude Code reads the debate prompt, substitutes my question for the placeholder, and runs through its process.&lt;/p&gt;
&lt;p&gt;The commands I use most often:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/prd&lt;/code&gt;&lt;/strong&gt; — Reviews a PRD I’ve written and pushes back on vague problem statements, missing success metrics, or unclear scope. I run this before sharing drafts with stakeholders.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/debate&lt;/code&gt;&lt;/strong&gt; — Simulates a debate between an optimist and a skeptic about a product idea. This is probably the command I reach for most when I’m still forming an opinion about something.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/ask-se&lt;/code&gt;&lt;/strong&gt; — Helps me answer specific technical questions about our products. For example, today I ran &lt;code&gt;/ask-se On Gateway HTTP Logpush jobs, what would trigger &amp;quot;unknown&amp;quot; as the action?&lt;/code&gt; The command uses MCP (Model Context Protocol) servers to search our public documentation and internal wiki, then synthesizes an answer I can actually use. It’s how I learn the product deeply without having to interrupt engineers or dig through docs myself.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The mental overhead of remembering file paths and composing context manually has mostly disappeared. I just type the command and start the conversation.&lt;/p&gt;
&lt;h2&gt;Skills: Persistent Methodology&lt;/h2&gt;
&lt;p&gt;Commands are things I invoke explicitly. &lt;a href=&quot;https://code.claude.com/docs/en/skills&quot;&gt;Skills&lt;/a&gt; are different—they’re methodology files that get applied automatically when relevant.&lt;/p&gt;
&lt;p&gt;I have three skills set up:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;pm-thinking&lt;/strong&gt; — Applies my product philosophy to any PM-related work. When I’m reviewing a PRD, it automatically checks for problem-first thinking, measurable outcomes, and clear non-goals.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;cloudflare-context&lt;/strong&gt; — Loads knowledge about Cloudflare’s products and triggers proactive use of internal data sources (more on this below).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;data-team-context&lt;/strong&gt; — Specific context about my team’s priorities, current initiatives, and constraints.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The skill files live in &lt;code&gt;.claude/skills/&lt;/code&gt; and contain triggers (when to apply) and behaviors (what to do). For example, the pm-thinking skill flags anti-patterns like “vague success metrics” or “jumping to solutions without understanding the problem.”&lt;/p&gt;
&lt;p&gt;This means even when I’m not explicitly running a PM-focused command, the AI still knows to apply my methodology. It’s like having a linter for product thinking that runs in the background.&lt;/p&gt;
&lt;h2&gt;Daily and Weekly Summaries&lt;/h2&gt;
&lt;p&gt;One of the more useful additions: automated work journaling. At the end of the day, I run &lt;code&gt;/today&lt;/code&gt;. The command:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Finds files I modified that day using filesystem timestamps&lt;/li&gt;
&lt;li&gt;Reads the key files to understand what I actually worked on&lt;/li&gt;
&lt;li&gt;Asks if there’s anything else to add&lt;/li&gt;
&lt;li&gt;Generates a summary focused on outcomes, not tasks&lt;/li&gt;
&lt;li&gt;Saves it to a structured folder: &lt;code&gt;work/cloudflare/weeknotes/2025/01/week-01/2025-01-06.md&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The output follows a consistent format:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Tuesday, December 16, 2025

## Summary
Focused on Q1 planning and customer research. Clarified success
metrics for data quality initiative and documented common Logpush questions.

## What I Worked On
- **Q1 Planning:** Reviewed OKR drafts, identified gaps in success metrics
- **Customer Research:** Documented Logpush egress IP questions for support docs

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then on Friday (or Monday morning), I run &lt;code&gt;/weekly&lt;/code&gt;. It reads all the daily notes for the week and synthesizes them into summary—the kind of thing I can use to prepare for 1:1s or status updates.&lt;/p&gt;
&lt;p&gt;This has been surprisingly effective for a simple reason: It’s sometimes hard to remember everything I did in the week when Friday rolls around... The daily notes capture work while it’s fresh, and the weekly summary rolls it up into something useful.&lt;/p&gt;
&lt;h2&gt;Calendar Briefings&lt;/h2&gt;
&lt;p&gt;The most custom piece of this system is the calendar briefing. I got this idea from &lt;a href=&quot;https://tldl-pod.com/episode/1809663079_1000743044782&quot;&gt;an interview with Webflow’s CPO&lt;/a&gt; on Claire Vo&apos;s podcast, about building an AI chief of staff. Following her example I wrote a Python script that:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Connects to Google Calendar via OAuth&lt;/li&gt;
&lt;li&gt;Fetches events for today, tomorrow, or the week&lt;/li&gt;
&lt;li&gt;Generates a briefing that flags meetings that could be async, suggests prep work, and warns if the day is overloaded&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I run &lt;code&gt;/briefing tomorrow&lt;/code&gt; before wrapping up for the day. It gives me a head start on thinking about what’s coming and whether I need to prepare anything.&lt;/p&gt;
&lt;p&gt;The briefing uses context from my &lt;code&gt;about-me.md&lt;/code&gt; file, so it knows things like which recurring meetings are more important than others, and what kind of prep I typically need for different meeting types.&lt;/p&gt;
&lt;h2&gt;Syncing Between Tools&lt;/h2&gt;
&lt;p&gt;One wrinkle: Claude Code and OpenCode have slightly different formats for commands. Claude Code uses plain markdown; OpenCode expects frontmatter with a description field.&lt;/p&gt;
&lt;p&gt;So I built a sync command. Running &lt;code&gt;/sync-to-opencode&lt;/code&gt; compares the two folders and copies any changed commands, adding the frontmatter OpenCode needs. It means I can maintain one set of prompts (in &lt;code&gt;.claude/commands/&lt;/code&gt;) and have them work in both tools.&lt;/p&gt;
&lt;p&gt;This is the kind of meta-tooling that probably isn’t worth it for most people, but I switch between the tools often enough that keeping them in sync manually was annoying.&lt;/p&gt;
&lt;h2&gt;What I’ve Learned Since the First Post&lt;/h2&gt;
&lt;p&gt;A few things that have become clearer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Automation compounds.&lt;/strong&gt; Each individual piece—slash commands, skills, daily summaries—provides modest value on its own. But they compound. The daily notes feed the weekly summary. The skills apply across all conversations. The slash commands reduce friction enough that I actually use the system instead of just thinking about using it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Building custom workflows is easier than ever.&lt;/strong&gt; With slash commands and skills, I can create tools that work exactly how I want to work. The &lt;code&gt;/ask-se&lt;/code&gt; command knows my products, our customers, and the kinds of questions I typically need answered. The daily summary knows my file structure and my preferred format. It’s not about adapting to a tool’s workflow—it’s about encoding my workflow into a tool.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scripts fill the gaps.&lt;/strong&gt; The calendar briefing couldn’t be a pure prompt—it needed to actually fetch data from an external API. Having a &lt;code&gt;scripts/&lt;/code&gt; folder for Python code that extends the system has been useful for anything that requires real I/O.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep work output local.&lt;/strong&gt; The prompts and context files live in a private git repo so I can sync them between machines and version them over time. But the actual work output—weeknotes, briefings, any documents I’m working on—stays on my local machine, not in the repo. The AI helps me do the work, but the work itself doesn’t need to live in the cloud.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you’re building something similar, I’d recommend starting with the basics from &lt;a href=&quot;https://elezea.com/2025/12/ai-for-product-management/&quot;&gt;the first post&lt;/a&gt;: context files, opinionated prompts, and a tool that lets you compose them easily. The slash commands and automation came later, once I understood what workflows I actually used repeatedly.&lt;/p&gt;
&lt;p&gt;The specific tooling matters less than the approach. Figure out where AI can genuinely help—reviewing your work, researching questions, reducing busywork—and then build the smallest system that makes those things easy to do.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>Introducing TL;DL: AI-Powered Podcast Summaries</title><link>https://elezea.com/2025/12/tldl-ai-powered-podcast-summaries/</link><guid isPermaLink="true">https://elezea.com/2025/12/tldl-ai-powered-podcast-summaries/</guid><description>TL;DL turns podcast episodes into AI-generated summaries. Choose Key Takeaways for actionable insights, Narrative Summary for story-driven content, or ELI5 for complex topics made simple.</description><pubDate>Mon, 22 Dec 2025 15:22:11 GMT</pubDate><content:encoded>&lt;p&gt;Do you ever listen to a podcast episode and wish you could have a summary you could reference later? Not the whole transcript or someone else’s review, just a concise breakdown of the key points in a format you can scan quickly when you need to remember what was covered. Well, that’s why I spent the weekend building &lt;a href=&quot;https://tldl-pod.com&quot;&gt;TL;DL (Too Long; Didn’t Listen)&lt;/a&gt;. It generates AI summaries from podcast episodes.&lt;/p&gt;
&lt;p&gt;Beyond that, there were a few other podcast use cases I kept running into:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Catching up on episodes I missed.&lt;/strong&gt; Sometimes a podcast gets 10 episodes ahead while life happens. A summary helps me decide which ones are worth going back to.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Getting a feel for a new podcast.&lt;/strong&gt; Before committing to a full episode, I want to know if a new show covers topics in a way that works for how I think and learn.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quick reference after listening.&lt;/strong&gt; When I want to apply something from an episode—like a framework or technique—I don’t want to re-listen to an hour of audio to find the relevant 5 minutes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So I built something for myself, and now I’m making it available to others.&lt;/p&gt;
&lt;h2&gt;How It Works&lt;/h2&gt;
&lt;p&gt;Registered users can submit an Apple Podcasts episode URL, choose a summary template, and the system does the rest. It transcribes the audio (using OpenAI Whisper), generates a summary (using GPT–5.2), and caches everything for a year.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&quot;https://file.elezea.com/20251222-yCkDohfG.png&quot; alt=&quot;The TL;DL submission form with three template options&quot;&gt;&lt;/figure&gt;
&lt;p&gt;The three templates are designed for different types of content:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Key Takeaways &amp;amp; Practical Steps&lt;/strong&gt; — This is the default, and it’s what I use most. The summary includes an overview, key insights, actionable steps, and notable quotes. Best for professional development and craft podcasts where you want to walk away with something to implement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Narrative Summary&lt;/strong&gt; — For story-driven content and interviews. Instead of bullet points, this generates flowing prose that captures the arc of the conversation, including key moments and themes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ELI5 (Explain Like I’m 5)&lt;/strong&gt; — For technical or complex topics. It breaks down dense material using everyday analogies and simple language.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The ELI5 Template Passed the Real Test&lt;/h2&gt;
&lt;p&gt;My wife is a therapist. She listens to highly technical psychology podcasts about things like Transference-Focused Psychotherapy and pathological narcissism. When I ran a recent episode she listed to through TL;DL, she was genuinely impressed by the “Key Takeaways” summary. It captured the clinical nuances accurately.&lt;/p&gt;
&lt;p&gt;I, on the other hand, didn’t understand a word of it.&lt;/p&gt;
&lt;p&gt;So I generated another summary using the “ELI5” template, and suddenly I could follow along. Concepts like &lt;em&gt;devaluation&lt;/em&gt; got explained as “when a patient puts down the therapist, the therapy, or anything connected to it.” The technical frameworks became accessible. Here’s &lt;a href=&quot;https://tldl-pod.com/episode/1335892956_1000733360270&quot;&gt;the episode page&lt;/a&gt; if you want to toggle between the two summaries yourself.&lt;/p&gt;
&lt;h2&gt;A Note about Podcast Creators and Attribution&lt;/h2&gt;
&lt;p&gt;Attribution matters to me. Every episode page prominently displays the podcast name, creator names, and both a “Listen on Apple Podcasts” link and a “Website” link to the official podcast website. My hope is that TL;DL helps expand a podcast’s audience by making the content more accessible. Summaries should bring people &lt;em&gt;to&lt;/em&gt; a podcast, not replace the experience of listening—most podcasts have transcripts available already after all.&lt;/p&gt;
&lt;p&gt;That said, if creators would rather not have their podcast processed, they can &lt;a href=&quot;https://tldl-pod.com/about#creator-opt-out&quot;&gt;opt out&lt;/a&gt; and I’ll add their show to the blocklist.&lt;/p&gt;
&lt;h2&gt;The Technical Bits&lt;/h2&gt;
&lt;p&gt;For those interested in the stack: TL;DL runs entirely on Cloudflare’s edge platform. Cloudflare Workers handles the serverless compute, Workers KV stores the cached transcripts and summaries, and Cloudflare Queues manages the background job processing.&lt;/p&gt;
&lt;p&gt;One interesting technical challenge was job status consistency. When you submit an episode, you want to see the status update in real-time as it progresses from “queued” to “transcribing” to “summarizing” to “completed.” Workers KV is eventually consistent, which meant status updates could lag by up to a minute. Users would refresh and still see “queued” even after the job was done.&lt;/p&gt;
&lt;p&gt;I solved this with &lt;a href=&quot;https://developers.cloudflare.com/durable-objects/&quot;&gt;Durable Objects&lt;/a&gt;, Cloudflare’s strongly consistent coordination layer. The job status gets written to both the Durable Object (for immediate reads) and KV (for persistence and fallback). The UI now updates instantly.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&quot;https://file.elezea.com/20251222-cfoRaGrb.png&quot; alt=&quot;&quot;&gt;&lt;/figure&gt;
&lt;p&gt;Audio file handling for long episodes was another challenge. OpenAI Whisper has a 25MB file size limit. For podcasts that exceed this, I implemented MP3 frame-aware chunking—splitting the audio at frame boundaries so transcription can be stitched back together cleanly. The overlap handling ensures no words get lost between chunks.&lt;/p&gt;
&lt;h2&gt;What’s Next&lt;/h2&gt;
&lt;p&gt;Beyond solving my own problem, this was one of those projects where the building itself was the reward. The technical challenges were interesting, the product felt useful from day one, and I got to learn Durable Objects properly.&lt;/p&gt;
&lt;p&gt;Submitting new episodes is currently invite-only while I iron out the rough edges. If you’re interested in access, reach out. For now, you can &lt;a href=&quot;https://tldl-pod.com&quot;&gt;browse existing summaries&lt;/a&gt; to see how it works.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>Building a music discovery app (and what I learned about Product)</title><link>https://elezea.com/2025/12/vibe-coding-for-pms/</link><guid isPermaLink="true">https://elezea.com/2025/12/vibe-coding-for-pms/</guid><description>How a side project combining Last.fm, AI, and Cloudflare Workers helped me gain technical depth and sharpen product thinking.</description><pubDate>Fri, 19 Dec 2025 00:25:38 GMT</pubDate><content:encoded>&lt;p&gt;I miss liner notes. In the age of infinite streaming and algorithmic playlists I find myself longing for the days when you’d flip open a CD case and actually &lt;em&gt;read&lt;/em&gt; about the music you were listening to. Who produced this? What’s the story behind the album? Why does this track feel different from everything else they’ve made?&lt;/p&gt;
&lt;p&gt;Spotify and Apple Music are great at giving you &lt;em&gt;more&lt;/em&gt; music. They&apos;re less good at helping you understand &lt;a href=&quot;https://www.theverge.com/column/815744/music-recommendation-algorithms&quot;&gt;why you might love something&lt;/a&gt;, or what to explore next. So I built my own solution—and then rebuilt it twice.&lt;/p&gt;
&lt;h2&gt;The problem I was trying to solve&lt;/h2&gt;
&lt;p&gt;My relationship with &lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt; goes back to 2007. In case you’re not familiar, &lt;a href=&quot;https://www.last.fm/&quot;&gt;Last.fm&lt;/a&gt; is a service that “scrobbles” (tracks) everything you listen to, building a comprehensive history of your musical life. It’s become a wonderful archive of my taste evolution over nearly two decades.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt; is great at telling you &lt;em&gt;what&lt;/em&gt; you listened to. It’s less useful for helping you understand &lt;em&gt;why&lt;/em&gt; you might love something, or &lt;em&gt;what else&lt;/em&gt; you should explore. Spotify and Apple Music’s algorithmic playlists are fine, but they often feel like they’re &lt;a href=&quot;https://amzn.to/4ji9qEx&quot;&gt;optimizing for engagement&lt;/a&gt; rather than genuine discovery.&lt;/p&gt;
&lt;p&gt;I wanted a tool that would:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Show me context about the artists and albums in my listening history&lt;/li&gt;
&lt;li&gt;Help me discover music through similarity and connection, not just popularity metrics&lt;/li&gt;
&lt;li&gt;Give me that “liner notes” depth I was craving&lt;/li&gt;
&lt;li&gt;Work with my existing &lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt; data (18 years of listening history is a lot to throw away)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So I started building, first by copy-pasting from GPT–4 (the olden days!), and most recently with &lt;a href=&quot;https://antigravity.google/&quot;&gt;Antigravity&lt;/a&gt; + Claude Opus 4.5 (we’ve come a long way since 2023). Here’s where it all stands today…&lt;/p&gt;
&lt;h2&gt;Listen To More: three iterations and counting&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://listentomore.com&quot;&gt;Listen To More&lt;/a&gt;&lt;/strong&gt; is the core project—a music discovery platform that combines real-time listening data with AI-powered insights.&lt;/p&gt;
&lt;p&gt;The first version was simple: a personal dashboard that pulled my &lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt; data and displayed it nicely. Functional, but limited. The second version added some AI summaries using OpenAI’s API. Better, but still rough around the edges.&lt;/p&gt;
&lt;p&gt;The current version—iteration three—is a complete rebuild focused on speed and multi-user support. What started as “a thing I made for myself” is now something anyone can use. Sign in with your &lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt; account, and you get:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rich album and artist pages&lt;/strong&gt; with AI-generated summaries, complete with source citations (so you know the AI isn’t just making things up)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Your personal stats&lt;/strong&gt; showing recent listening activity, top artists and albums over different time periods.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Weekly insights&lt;/strong&gt; powered by AI that analyze your 7-day listening patterns and suggest albums you might love&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cross-platform streaming links&lt;/strong&gt; for every album—Spotify, Apple Music, and more&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A Discord bot&lt;/strong&gt; so you can share music discoveries with friends&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://file.elezea.com/ltmore-top2.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;The tech stack is &lt;a href=&quot;https://hono.dev/&quot;&gt;Hono&lt;/a&gt; on &lt;a href=&quot;https://workers.cloudflare.com/&quot;&gt;Cloudflare Workers&lt;/a&gt;, with D1 (SQLite) for the database and KV for caching. The whole thing is server-side rendered with vanilla JavaScript for progressive enhancement. Pages load in about 300ms, then AI summaries stream in asynchronously.&lt;/p&gt;
&lt;p&gt;I chose this stack partly because &lt;a href=&quot;https://elezea.com/resume/&quot;&gt;I work at Cloudflare&lt;/a&gt; and wanted to understand our developer platform better. More on that later.&lt;/p&gt;
&lt;h2&gt;Extending the ecosystem with MCP servers&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;MCP&lt;/strong&gt; stands for Model Context Protocol. In plain terms, it’s a standard that lets AI assistants (like Claude) connect to external data sources and tools. Think of it as giving an AI the ability to actually &lt;em&gt;use personalized data&lt;/em&gt; rather than just answer questions based on pre-training.&lt;/p&gt;
&lt;p&gt;I built two MCP servers to extend my music discovery ecosystem:&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt; MCP Server&lt;/h3&gt;
&lt;p&gt;Available at &lt;a href=&quot;https://lastfm-mcp.com&quot;&gt;lastfm-mcp.com&lt;/a&gt;, this server lets AI assistants access your &lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt; listening data. Once connected, you can have conversations like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“When did I start listening to Led Zeppelin?”&lt;/li&gt;
&lt;li&gt;“What was I obsessed with in summer 2023?”&lt;/li&gt;
&lt;li&gt;“Show me how my music taste has evolved over the years”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The AI can pull your actual scrobble data, analyze trends, and give you personalized insights. It supports temporal queries (looking at specific time periods), similar artists discovery, and comprehensive listening statistics.&lt;/p&gt;
&lt;h3&gt;Discogs MCP Server&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/rianvdm/discogs-mcp&quot;&gt;This one&lt;/a&gt; connects to &lt;a href=&quot;https://www.discogs.com&quot;&gt;Discogs&lt;/a&gt;—the massive music database and marketplace that’s especially popular with vinyl collectors. If you have a Discogs collection, the MCP server lets AI assistants:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Search your collection with intelligent mood mapping (“find something mellow for a Sunday evening”)&lt;/li&gt;
&lt;li&gt;Get context-aware recommendations based on what you own&lt;/li&gt;
&lt;li&gt;Provide collection analytics and insights&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://file.elezea.com/lastfm-mcp-example.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Both servers run on Cloudflare Workers and use OAuth for secure authentication. They’re open source if you want to poke around or deploy your own.&lt;/p&gt;
&lt;h2&gt;What I learned&lt;/h2&gt;
&lt;p&gt;I’m a Product Manager, not an engineer. But I’ve found that having more technical depth broadens the scope of things I am able to contextualize—and makes me more confident in my interactions with engineers. Here’s what building these projects reinforced for me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Side projects are a low-stakes learning environment.&lt;/strong&gt; When you’re building for yourself, there’s no pressure to ship by a deadline or meet someone else’s requirements. You can experiment, break things, and iterate freely. I tried approaches that would have been too risky to propose in a work context—some of them broke the site spectacularly, others worked beautifully.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;There’s no substitute for using your own product.&lt;/strong&gt; I use these tools every day. That constant exposure surfaces issues and opportunities that you’d never catch in a quarterly review or user interview. The feature prioritization becomes obvious when you’re feeling your own friction.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Building with your company’s tools is invaluable.&lt;/strong&gt; I now have deep, practical knowledge of Cloudflare Workers, D1, KV, and the rest of our developer platform. When I’m talking to customers or evaluating feature requests, I’m drawing on real experience, not just documentation. I can empathize with the developer experience because I’ve lived it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The fun matters.&lt;/strong&gt; I keep coming back to these projects because I genuinely enjoy working on them. The satisfaction of solving a problem you personally care about is different from the satisfaction of shipping something at work. Both are valuable, but the former is what sustains a side project through the inevitable rough patches.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What’s next&lt;/h2&gt;
&lt;p&gt;I have a list of features I’d love to add—better recommendations, more sophisticated listening pattern analysis, maybe even integration with other music services. But I’m also learning to pace myself. These projects aren’t going anywhere, and part of the joy is the slow, steady improvement over time.&lt;/p&gt;
&lt;p&gt;If you’re curious, you can check them out here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://listentomore.com&quot;&gt;listentomore.com&lt;/a&gt;&lt;/strong&gt; — The main music discovery platform&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://lastfm-mcp.com&quot;&gt;lastfm-mcp.com&lt;/a&gt;&lt;/strong&gt; — Connect AI assistants to your &lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt; data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/rianvdm/discogs-mcp&quot;&gt;Discogs MCP Server&lt;/a&gt;&lt;/strong&gt; — Connect AI assistants to your Discogs collection&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And if you’re a PM thinking about starting a technical side project: do it. Pick something you personally care about, use tools you want to learn, and give yourself permission to build slowly. The lessons transfer in ways you won’t expect.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>How I Use AI for Product Work</title><link>https://elezea.com/2025/12/ai-for-product-management/</link><guid isPermaLink="true">https://elezea.com/2025/12/ai-for-product-management/</guid><description>How I use AI for product management: PRD and OKR reviews, debate frameworks, technical explainers, and a Windsurf workflow with @ mentions and MCP</description><pubDate>Sun, 14 Dec 2025 23:11:15 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;&lt;em&gt;Update! I wrote a follow-up post here: &lt;a href=&quot;https://elezea.com/2025/12/how-my-ai-product-second-brain-evolved/&quot;&gt;How My AI Product “Second Brain” Evolved&lt;/a&gt;.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I’ve been refining my approach to using LLMs for product work, and I figured it’s time to write up how I actually use them day-to-day.&lt;/p&gt;
&lt;p&gt;I think the most valuable thing an AI assistant can do isn&apos;t to write your PRD or draft your strategy docs. It&apos;s to push back on weak reasoning, spot gaps you missed, and force you to articulate why your idea is actually good. It’s less a ghostwriter and more a skeptical colleague who shares your product philosophy. With the right prompts AI assistants are also really good at creating background and framing documents (such as explainers that synthesize complex topics, summaries of technical concepts, etc.).&lt;/p&gt;
&lt;p&gt;So let’s walk through how I’ve set this up, what makes it work, and how you might build something similar for yourself.&lt;/p&gt;
&lt;h2&gt;The Philosophy: Sparring Partner, Not Ghostwriter&lt;/h2&gt;
&lt;p&gt;I believe LLMs are most useful when you give them two things: &lt;strong&gt;context&lt;/strong&gt; and &lt;strong&gt;constraints&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Context&lt;/strong&gt; tells the model who you are, what you’re working on, and what “good” looks like in your world.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Constraints&lt;/strong&gt; keep the model from going off the rails with generic advice or hallucinated frameworks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every prompt I use is designed to provide both. They’re opinionated on purpose. I’d rather have an assistant that pushes back on bad ideas than one that says “Great idea!” to everything.&lt;/p&gt;
&lt;p&gt;The goal isn&apos;t to have AI write presentations for me. It&apos;s to have a thinking partner that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Challenges weak problem statements before I waste time on solutions&lt;/li&gt;
&lt;li&gt;Spots missing success criteria I forgot to define&lt;/li&gt;
&lt;li&gt;Asks &amp;quot;why?&amp;quot; when my reasoning gets hand-wavy&lt;/li&gt;
&lt;li&gt;Points out when I&apos;m jumping to solutions before understanding the problem&lt;/li&gt;
&lt;li&gt;Helps me create background docs and explainers that set context for others&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Building Blocks&lt;/h2&gt;
&lt;p&gt;The system works because of how all the pieces fit together. Here’s an overview of the general folder structure I maintain with a series of Markdown files inside:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;llm-prompts/
├── prompts/           # System prompts for different use cases
│   ├── pm/            # Product management prompts
│   └── technical/     # Technical/engineering prompts
├── context/           # Personal context files (who I am, how I work)
├── reference/         # Syntax guides and reference docs
└── work/              # Saved feedback and refined docs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The magic isn’t in any single prompt—it’s in how you combine them. Let me break down each layer.&lt;/p&gt;
&lt;h3&gt;Layer 1: System Prompts&lt;/h3&gt;
&lt;p&gt;These are the instructions that tell the AI how to behave for a specific task. I have different prompts for different jobs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;General PM sparring:&lt;/strong&gt; A prompt that knows my product philosophy and pushes back on weak reasoning. I use this for thinking through tradeoffs, preparing for meetings, and sanity-checking my approach.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Document review:&lt;/strong&gt; Prompts specifically designed to critique PRDs, OKRs, strategy docs, and other artifacts. These encode what “good” looks like and call out common anti-patterns.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Idea stress-testing:&lt;/strong&gt; A prompt that I stole from my friend &lt;a href=&quot;https://www.linkedin.com/in/stephenballot/&quot;&gt;Stephen&lt;/a&gt;, which simulates a debate between an optimist and a skeptic to pressure-test new ideas before I get too attached to them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Technical understanding:&lt;/strong&gt; Prompts that help me understand systems, architectural decisions, and technical concepts well enough to lead effectively (I’m not an engineer, but I need to hold my own in architecture reviews).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The key is that each prompt is opinionated. They’re not generic “be helpful” instructions—they encode specific philosophies about what good work looks like.&lt;/p&gt;
&lt;h3&gt;Layer 2: Personal Context&lt;/h3&gt;
&lt;p&gt;This is where it gets powerful. I maintain files that describe:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Who I am:&lt;/strong&gt; My role, my experience, my communication style&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How I work:&lt;/strong&gt; My product philosophy, my management approach, my values&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What I’m working on:&lt;/strong&gt; Current projects, team context, company priorities&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When I start a conversation, I can pull in the relevant context files alongside my prompt. The model then has the background it needs to give me advice that actually fits my situation—not generic best practices from a blog post.&lt;/p&gt;
&lt;h3&gt;Layer 3: Reference Materials&lt;/h3&gt;
&lt;p&gt;Sometimes you need the model to follow specific formats or conventions. I keep reference files for things like wiki markup syntax, documentation templates, or internal style guides. These ensure the output is actually usable without a bunch of reformatting.&lt;/p&gt;
&lt;h2&gt;How I Actually Use This&lt;/h2&gt;
&lt;p&gt;I use &lt;a href=&quot;https://windsurf.com/&quot;&gt;Windsurf&lt;/a&gt; as my daily driver, and it has a feature that makes this whole system work: the &lt;code&gt;@&lt;/code&gt; mention. In the chat panel, I can reference any file by typing &lt;code&gt;@&lt;/code&gt; followed by the path. Windsurf then includes that file’s contents as context for the conversation.&lt;/p&gt;
&lt;p&gt;This means I can compose my “assistant” on the fly by combining:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A system prompt for the task at hand&lt;/li&gt;
&lt;li&gt;Relevant personal context files&lt;/li&gt;
&lt;li&gt;The document or code I’m working on&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Example: Document Review&lt;/h3&gt;
&lt;p&gt;When I need feedback on a PRD before sharing it with stakeholders, I’ll start a conversation and reference my PRD review prompt plus my product philosophy context. Then I paste in the PRD and ask for critique.&lt;/p&gt;
&lt;p&gt;The model comes back with feedback grounded in my own standards—not generic advice. It’ll call out if my problem statement is vague, if my success metrics aren’t measurable, or if I’m jumping to solutions before properly framing the problem. Exactly the kind of pushback I’d want from a senior colleague.&lt;/p&gt;
&lt;h3&gt;Example: Brainstorming Partner&lt;/h3&gt;
&lt;p&gt;For early-stage thinking, I use a more conversational prompt that knows how I like to explore ideas. I’ll describe what I’m thinking about and ask it to poke holes, suggest angles I haven’t considered, or help me articulate why something feels off.&lt;/p&gt;
&lt;p&gt;This is particularly useful before big meetings. I can rehearse my reasoning and get challenged on the weak spots before I’m in front of stakeholders.&lt;/p&gt;
&lt;h3&gt;Example: Technical Understanding&lt;/h3&gt;
&lt;p&gt;I’m not an engineer, but I work with technical teams. When I need to understand how a system works—well enough to ask good questions or spot when something doesn’t add up—I use prompts designed for technical explanation.&lt;/p&gt;
&lt;p&gt;The key is that these prompts know to explain things without condescension but also without assuming I know the jargon. They cite specific files and line numbers when relevant, and they explain the “why” behind design decisions.&lt;/p&gt;
&lt;h2&gt;Connecting to Real Data&lt;/h2&gt;
&lt;p&gt;One feature that’s made a big difference is MCP (Model Context Protocol) servers. These connect the AI to external data sources—internal wikis, &lt;a href=&quot;https://developers.cloudflare.com/agents/model-context-protocol/mcp-servers-for-cloudflare/&quot;&gt;documentation sites&lt;/a&gt;, code repositories, APIs—so it can ground its responses in actual information rather than just its training data.&lt;/p&gt;
&lt;p&gt;In my prompts, I tell the model which MCP servers are available and when to use them. For example, my technical prompts instruct the model to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Search official documentation first to ground answers in verified information&lt;/li&gt;
&lt;li&gt;Check internal wikis for known issues, edge cases, and workarounds&lt;/li&gt;
&lt;li&gt;Look at code repositories when documentation is incomplete&lt;/li&gt;
&lt;li&gt;Always cite sources with links so I can verify&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This turns the AI from a general-purpose assistant into something more like an expert who has access to your company’s actual knowledge base. The difference in answer quality is significant—instead of generic advice, I get responses that reference real docs and real code.&lt;/p&gt;
&lt;h2&gt;Keeping a Record&lt;/h2&gt;
&lt;p&gt;One practical tip: &lt;strong&gt;save the conversation output somewhere useful&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I have a &lt;code&gt;work/&lt;/code&gt; folder organized by topic where I save feedback and refined thinking. When the model gives me good critique on a PRD, I’ll ask it to write a summary of the key issues to a Markdown file I can reference later. This keeps the insights from getting lost in chat history.&lt;/p&gt;
&lt;h2&gt;What I’ve Learned&lt;/h2&gt;
&lt;p&gt;A few things that have made this work better over time:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Context files are worth the investment.&lt;/strong&gt; I have files that describe who I am, how I work, and what I value. Updating these takes time, but it pays off in every conversation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Push back is a feature, not a bug.&lt;/strong&gt; These prompts are designed to challenge bad thinking. If the model is pushing back on your approach, consider that it might be right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Iterate on the prompts.&lt;/strong&gt; I update these regularly based on what works and what doesn’t. If a prompt isn’t helping, change it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Less context is often more.&lt;/strong&gt; Including too much context can dilute the signal. Start with the minimum you need, add more if the model seems confused.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;This setup isn&apos;t a silver bullet that makes thinking go away—it&apos;s just a way to encode my preferences and philosophies into something an LLM can use as a baseline for pushing back on my thinking. I still write my own PRDs, OKRs, and strategy docs—the artifacts that represent my actual thinking. But I let AI help me create background documents, explainers, and context-setting materials. And I have a sparring partner that catches the gaps I miss, challenges the assumptions I glossed over, and asks the uncomfortable questions before stakeholders do.&lt;/p&gt;
&lt;p&gt;If you build something similar, I’d love to hear how it goes. The prompts are important, but what matters equally as much is the structure—context plus constraints, composed on the fly for the task at hand. That’s the thing that makes it work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Update! I wrote a follow-up post here: &lt;a href=&quot;https://elezea.com/2025/12/how-my-ai-product-second-brain-evolved/&quot;&gt;How My AI Product “Second Brain” Evolved&lt;/a&gt;.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>New side project: Discord Stock &amp; Crypto Bot</title><link>https://elezea.com/2025/11/new-side-project-discord-stock-crypto-bot/</link><guid isPermaLink="true">https://elezea.com/2025/11/new-side-project-discord-stock-crypto-bot/</guid><pubDate>Sat, 29 Nov 2025 19:09:20 GMT</pubDate><content:encoded>&lt;p&gt;Not sure how many people would be interested in this, but it was fun to make so I thought I’d share. This is a Discord bot that provides real-time stock and cryptocurrency information, 30-day price trends, and AI-powered news summaries through slash commands. When you add the bot to Discord you can use the &lt;code&gt;/stock&lt;/code&gt; and &lt;code&gt;/crypto&lt;/code&gt; commands to get information like this:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&quot;https://file.elezea.com/20251129-j0mzEqve.png&quot; alt=&quot;&quot;&gt;&lt;/figure&gt;
&lt;p&gt;Want to add it to your Discord server? &lt;a href=&quot;https://github.com/rianvdm/discord-stock-bot&quot;&gt;Head over here!&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>&quot;The Mountain in the Sea&quot;, AI fears, and connectedness</title><link>https://elezea.com/2025/08/the-mountain-in-the-sea-ai-fears-and-connectedness/</link><guid isPermaLink="true">https://elezea.com/2025/08/the-mountain-in-the-sea-ai-fears-and-connectedness/</guid><pubDate>Sun, 31 Aug 2025 15:31:39 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;(Mild spoilers ahead for &lt;a href=&quot;https://amzn.to/4lOtSMF&quot;&gt;The Mountain in the Sea&lt;/a&gt; by Ray Nayler)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I recently finished the novel &lt;a href=&quot;https://amzn.to/4lOtSMF&quot;&gt;The Mountain in the Sea&lt;/a&gt; by Ray Nayler (see Andrew Liptak’s excellent review &lt;a href=&quot;https://transfer-orbit.ghost.io/mountain-in-the-sea-ray-nayler-sci-fi-book-review/&quot;&gt;here&lt;/a&gt;). On the surface it’s about discovering an octopus colony that evolved into a self-aware, intelligent community—and trying to communicate with them. But as with all good novels it’s &lt;em&gt;actually&lt;/em&gt; about other things. It’s about loneliness, understanding each other, conservation—and yes, our relationship with AI.&lt;/p&gt;
&lt;p&gt;First, to get the AI thing out of the way… I don’t want this blog to sound like I am anti-AI. I use AI every day both at the chat / thinking partner level &lt;em&gt;and&lt;/em&gt; the prototyping / vibe coding level. &lt;strong&gt;I am a fan of using AI &lt;em&gt;for the things that it’s good at&lt;/em&gt;. I just worry that we are not teaching people outside of the tech bubble &lt;em&gt;what those things are&lt;/em&gt;&lt;/strong&gt;. And that’s why we are seeing so many tragic stories right now about chat agents “guiding” people to horrific actions (see, for example, &lt;a href=&quot;https://default.blog/p/lets-talk-about-chatgpt-induced-spiritual&quot;&gt;Let’s Talk About ChatGPT-Induced Spiritual Psychosis&lt;/a&gt; and &lt;a href=&quot;https://archive.is/cWkOT&quot;&gt;‘I Feel Like I’m Going Crazy’: ChatGPT Fuels Delusional Spirals&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;With that as background, the book does a good job of highlighting some of the dangers of using AI for things it’s not good at. First, this is a good point about how with every new technology we &lt;em&gt;have&lt;/em&gt; to think about what can go wrong, not just what can go right:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When you invent the ship, you also invent the shipwreck; when you invent the plane you also invent the plane crash; and when you invent electricity, you invent electrocution. Every technology carries its own negativity, which is invented at the same time as technical progress.&lt;a href=&quot;#fn:1&quot; title=&quot;see footnote&quot;&gt;[1]&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Following from that, this quote about the main character “killing” their AI companion stood out to me…&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;That’s how this works. That’s how addictive this is—this need to feel like there is always someone there, unconditionally. Someone to talk to. Someone who understands. To not have to do the work myself to make myself understood. Instead, I just kept on with this self-deception, pretending I had someone when I did not. I know the doctors who prescribed you to me meant well. They thought they were helping me through a dark time. But in the end, you aren’t anything but a prosthesis. You can’t replace real support.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The other major theme in the book centers around our connectedness with each other and the world, how language can get in the way of connection, and how lonely we’ve become as a society&lt;a href=&quot;#fn:2&quot; title=&quot;see footnote&quot;&gt;[2]&lt;/a&gt;. I love this call to empathy as a way to get ourselves out of that dilemma (emphasis mine):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Are we trapped, then, in the world our language makes for us, unable to see beyond the boundaries of it? I say we are not. Anyone who has watched their dog dance its happiness in the sand and felt that joy themselves—anyone who has looked into a neighboring car and seen a driver there lost in thought, and smiled and seen the image of themselves in that person—knows the way out of the maze: Empathy. Identity with perspectives outside our own. The liberating, sympathetic vibrations of fellow-feeling. &lt;strong&gt;Only those incapable of empathy are truly caged&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A book about discovering intelligent life in an octopus species with its own language and culture might seem like a weird premise. But it works really well here. It gets pretty heavy-handed towards the end, but it still made me think a lot about the “loneliness epidemic”, our relationship with AI, and the continuing role of empathy in making sure we stay connected with each other. Recommended!&lt;/p&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;This line of thinking reminds me a lot of Kevin Kelly’s 2010 (!) book &lt;a href=&quot;https://amzn.to/46gRpBm&quot;&gt;What Technology Wants&lt;/a&gt; in which he makes a similar point that technology is never “neutral”. That’s ok, but we have to be prepared for it.  &lt;a href=&quot;#fnref:1&quot; title=&quot;return to article&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I don’t think that’s a controversial statement any more. See articles like &lt;a href=&quot;https://www.theatlantic.com/magazine/archive/2025/02/american-loneliness-personality-politics/681091/&quot;&gt;The Anti-Social Century&lt;/a&gt;  &lt;a href=&quot;#fnref:2&quot; title=&quot;return to article&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>Automatic syncing from Raindrop.io to Wordpress link posts</title><link>https://elezea.com/2025/06/automatic-syncing-from-raindrop-io-to-wordpress-link-posts/</link><guid isPermaLink="true">https://elezea.com/2025/06/automatic-syncing-from-raindrop-io-to-wordpress-link-posts/</guid><description>I made a Cloudflare Worker that automatically syncs bookmarks with a specified tag from Raindrop.io to WordPress as link posts.</description><pubDate>Sun, 29 Jun 2025 19:43:28 GMT</pubDate><content:encoded>&lt;p&gt;I read Ethan Marcotte’s &lt;a href=&quot;https://ethanmarcotte.com/wrote/link-bug/&quot;&gt;Link bug&lt;/a&gt; this week, which led me to Sophie Koonin’s &lt;a href=&quot;https://localghost.dev/blog/automated-weekly-links-posts-with-raindrop-io-and-eleventy/&quot;&gt;Automated weekly links posts with raindrop.io and Eleventy&lt;/a&gt;, and that is &lt;em&gt;such&lt;/em&gt; a cool idea that I had to do something similar.&lt;/p&gt;
&lt;p&gt;Thanks to getting nerdswiped by Ethan and Sophie I now have a &lt;a href=&quot;https://workers.cloudflare.com/&quot;&gt;Cloudflare Worker&lt;/a&gt; that takes links that I tag with &lt;code&gt;blog&lt;/code&gt; on &lt;a href=&quot;https://raindrop.io/&quot;&gt;Raindrop.io&lt;/a&gt;, and posts them (with excerpts taken from the Notes section) as link posts to this blog. You can just scroll down to see a bunch of examples.&lt;/p&gt;
&lt;p&gt;It’s not fancy but it works beautifully! Every hour it checks for new links in &lt;a href=&quot;http://Raindrop.io&quot;&gt;Raindrop.io&lt;/a&gt; with the &lt;code&gt;blog&lt;/code&gt; tag, and then it creates a posts like this:&lt;/p&gt;
&lt;h1&gt;Link title&lt;/h1&gt;
&lt;p&gt;This is my note about the article, with &lt;strong&gt;markdown&lt;/strong&gt; support.&lt;/p&gt;
&lt;p&gt;→ &lt;a href=&quot;https://example.com&quot; target=&quot;\_blank&quot; rel=&quot;noopener&quot;&gt;Article Title&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If this is something that could be useful to you, you can &lt;a href=&quot;https://github.com/rianvdm/raindrop-wordpress-linkblog-sync&quot;&gt;view the source code here&lt;/a&gt; and deploy to Cloudflare Workers to make it your own.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>Product Management: The Good, the Hard, and How to Know If It&apos;s Right for You</title><link>https://elezea.com/2025/06/product-management-the-good-the-hard-and-how-to-know-if-its-right-for-you/</link><guid isPermaLink="true">https://elezea.com/2025/06/product-management-the-good-the-hard-and-how-to-know-if-its-right-for-you/</guid><description>What I like most about the job, what makes me sometimes want to take a break, and how to choose between PM and EM roles.</description><pubDate>Sun, 22 Jun 2025 16:12:25 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;An engineer recently sent me some questions about the Product Management role. I took a long time to respond because I saw it as a great opportunity to reflect on the role and what it means to me. I decided to share my answers below, in case it’s useful for anyone else!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;What did you like the most about your job as a PM? (I say past tense because Director can be different)&lt;/h2&gt;
&lt;p&gt;The joy of shipping, and shepherding products and features from ideas all the way through execution and user feedback and continuous iteration.&lt;/p&gt;
&lt;p&gt;To me, the PM role is a &lt;em&gt;people&lt;/em&gt; job. How do we get people to work together to do amazing work? How do we get the best ideas out, how do we make them real? How do we build things that people genuinely enjoy using, and don’t mind paying for? How can we understand how our products make people &lt;em&gt;feel&lt;/em&gt;, and how can we make that better?&lt;/p&gt;
&lt;p&gt;If you’re able to get into a product loop that does that over and over, it’s the best job in the world. You get to understand complex user, business, and technical needs, make sense of it all, and support a team of people to get useful products into the world. And then you get to talk to the people who use those products about how to make them even better.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://elezea.com/2014/06/what-motivates-us/&quot;&gt;Daniel Pink says&lt;/a&gt; we are all motivated by 3 things: &lt;em&gt;autonomy&lt;/em&gt; (self-directed work), &lt;em&gt;mastery&lt;/em&gt; (getting better at stuff), and &lt;em&gt;purpose&lt;/em&gt; (serving a greater vision). At the best of times, I can’t think of another job that combines those 3 things as thoroughly as Product Management does.&lt;/p&gt;
&lt;h2&gt;What is the one aspect of the role that makes you from time to time (but consistently) say “I don’t think I want to do this any longer”? Or “I need a break from this”?&lt;/h2&gt;
&lt;p&gt;When we get caught up in the human tendency to forget about what we’re trying to do (that &lt;em&gt;purpose&lt;/em&gt; from the previous question), and focus on our own needs instead. When I interact with teams and people who find their identity in their work to such an extent that it overshadows how cool it is that we get to do this stuff together. In short: when internal politics take over.&lt;/p&gt;
&lt;p&gt;I don’t resent this tendency any more, to be honest. I used to, but not any more. This is normal human behavior—I am not immune to it, no one is. We want to feel heard, we want to feel useful, we want to be seen as competent and smart. But I now recognize very quickly when a discussion about a project or a product becomes about self-preservation vs. what is best for the team and the product and its users, and I am allergic to it. It makes everything more stressful. It requires having to “read between the lines” every minute of the day. It slows everything down. It makes everyone grumpy and wary of each other. It is poison to healthy teams and products, and it affects me deeply (too much).&lt;/p&gt;
&lt;p&gt;I deal with it by losing myself in side projects, and spending deliberate time with the work people who don’t succumb to that behavior.&lt;/p&gt;
&lt;h2&gt;How do you advise me if I were considering either an EM or PM role to decide on which is more suitable to try out first?&lt;/h2&gt;
&lt;p&gt;I think the best starting point is to reflect on where you naturally find energy, especially when things get hard. Do you find satisfaction in crafting elegant systems and seeing the architecture click into place? Or do you come alive when you hear someone articulate a pain point and you can immediately imagine a better experience? Do you find yourself trying to optimize team throughput and code quality, or do you have an interest in clarifying ambiguity, getting people to work together happily and effectively, and shaping decisions through influence rather than control?&lt;/p&gt;
&lt;p&gt;PMs and EMs both lead, but in different ways. Engineering Managers lead through technical insight, mentorship, and a responsibility for the velocity, health, and growth of the team. Their scope is often constrained by the product strategy/roadmap and what’s possible technically, and their main outcome is helping the team build the right thing in the right way.&lt;/p&gt;
&lt;p&gt;Product Managers lead through context, clarity, and storytelling. They untangle complex ambiguity, and they create clarity when everyone sees the world differently (which happens on every project…). Their main outcomes are making sense out of too many chaotic inputs, aligning everyone on the problem to be solved (and how to solve it), and keeping the team connected to each other and customers.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>&quot;Ack, think, act&quot;—building trust as a product manager</title><link>https://elezea.com/2025/03/ack-think-act-building-trust-as-a-product-manager/</link><guid isPermaLink="true">https://elezea.com/2025/03/ack-think-act-building-trust-as-a-product-manager/</guid><description>A short post about how important is for PMs to provide &quot;visibility of system status&quot; to the teams they work with.</description><pubDate>Sat, 15 Mar 2025 13:13:02 GMT</pubDate><content:encoded>&lt;p&gt;Many (oh my word, &lt;em&gt;so&lt;/em&gt; many) years ago I wrote that I thought &lt;a href=&quot;https://elezea.com/2011/03/characteristics-product-manager/&quot;&gt;“fairness” is the most important characteristic of a good Product Manager&lt;/a&gt;. I still stand by that, but I had another thought recently about a related characteristic that forms the other side of that coin.&lt;/p&gt;
&lt;p&gt;Jakob Nielsen’s 30+ year old &lt;a href=&quot;https://www.nngroup.com/articles/ten-usability-heuristics/&quot;&gt;usability heuristics&lt;/a&gt; remain true to this day, but it’s not just relevant to UI/UX. In particularly I think “Visibility of System Status” is one of the most important skills a PM can internalize. The principles states:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The design should always keep users informed about what is going on, through appropriate feedback within a reasonable amount of time.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When users know the current system status, they learn the outcome of their prior interactions and determine next steps. Predictable interactions create trust in the product as well as the brand.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A PM can do nothing without trust. And to build trust in an organization, applying “visibility of system status” thinking is the #1 way to gain (and keep) that trust. That means a PM needs to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Ack:&lt;/strong&gt; Acknowledge comments or questions as soon as reasonably possible (within hours, not days), even if it’s just to say, “I saw this and will get back to you.”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Think:&lt;/strong&gt; Respond to the original comment/question—with ultimate clarity—in a timeframe that balances thoughtfulness and pragmatism (days, not weeks).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Act:&lt;/strong&gt; Follow through on any commitments / next steps with regular proactive updates (for as long as it takes).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Note that the order is important here as well. Don&apos;t Ack only &lt;em&gt;after&lt;/em&gt; you&apos;ve taken the time to Think. Don&apos;t Act &lt;em&gt;before&lt;/em&gt; you Think. That seems obvious, but I&apos;m sure we recognize the wrong order all around us (and in ourselves!) all the time.&lt;/p&gt;
&lt;p&gt;This all might sound hard, but once you’re in the rhythm of this cycle, it becomes second nature. “Ack, think, act” becomes just the way you go through your day. I think this is something we should all aspire to more in product (and probably beyond).&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>Regarding &quot;missed&quot; and &quot;slipped&quot; deadlines</title><link>https://elezea.com/2025/01/regarding-missed-and-slipped-deadlines/</link><guid isPermaLink="true">https://elezea.com/2025/01/regarding-missed-and-slipped-deadlines/</guid><description>One of the issues with quarterly planning cycles and committing to due dates on that cadence is that teams are often asked to commit to dates before they have figured out all the unknowns.</description><pubDate>Fri, 10 Jan 2025 20:10:23 GMT</pubDate><content:encoded>&lt;p&gt;I really like Basecamp’s concept of “Hill Charts”. The gist of it is that each project we work on has two distinct phases: a “figuring it out” phase and a “making it happen” phase:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://file.elezea.com/20250110-000365.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;To &lt;a href=&quot;https://basecamp.com/hill-charts&quot;&gt;quote from their post about it&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;First there’s &lt;strong&gt;an uphill phase where you figure out your approach&lt;/strong&gt;. You have a basic idea about the task, but you haven’t figured out what the solution is going to look like or how to solve all the unknowns.&lt;/p&gt;
&lt;p&gt;Eventually you reach a point where there aren’t any more unsolved problems. That’s like &lt;strong&gt;standing at the top of the hill&lt;/strong&gt;. You can see clearly all the way down the other side. Then the &lt;strong&gt;downhill phase is just about execution&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;“Figuring it out” is full of uncertainty, unknowns, and problem solving. “Making it happen” is all about certainty, confidence, and execution.&lt;/p&gt;
&lt;p&gt;I bring this up because one of the issues with quarterly planning cycles and committing to due dates on that cadence is that teams are often asked to commit to dates during the “figuring it out” phase. There’s a lot of uncertainty and unknowns, so teams have to make best guesses. The problem with this is that these do not reflect what Cagan calls “&lt;a href=&quot;https://www.svpg.com/managing-commitments-in-an-agile-team/&quot;&gt;high-integrity commitments&lt;/a&gt;”:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The key is to understand that the root cause of all this grief about commitments is when these commitments are made. They are made too early. They are made before we know if we can actually deliver on this obligation, and even more important, if what we deliver will actually solve the problem for the customer.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So what inevitably happens is that, for a lot of projects, the date that teams provided “slips”. I believe this language matters, and I think by framing it this way an org tells teams they did something wrong. But the irony is that in the majority of cases, if teams move a date after they reached the “top of the hill”, they are doing the &lt;em&gt;right&lt;/em&gt; thing for the business. They are saying that they have now figured out all the unknowns and uncertainties, and they are ready to make a high-integrity commitment. Again, &lt;a href=&quot;https://www.svpg.com/managing-commitments-in-an-agile-team/&quot;&gt;here is Cagan&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;So the compromise is simple. The product team asks for a little time to do product discovery before commitments are made, and then after enough product discovery is done to consider the risks, we are willing to commit to dates and deliverables so our colleagues can effectively do their jobs as well.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think it’s important to encourage behavior that does the right thing for customers and the business. The right thing would &lt;em&gt;not&lt;/em&gt; be to try to cut corners to meet a date that was committed to during a “figuring things out” phase. I also don’t believe the right thing is to inherently communicate to teams that moving a date once they reach the top of the hill means they “missed” a commitment.&lt;/p&gt;
&lt;p&gt;I think we should be very clear about the nature of commitments when we make them. What is our confidence in our dates? Are we still figuring things out? Or are we at the top of the hill and ready to make a high-integrity commitment? The health of any Product org can be improved if we say that it’s ok to communicate what we &lt;em&gt;think&lt;/em&gt; we can accomplish early on in the quarter, and move to high-integrity commitments once teams reach the top of each project’s hill.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>My 2024 in Music</title><link>https://elezea.com/2024/12/my-2024-in-music/</link><guid isPermaLink="true">https://elezea.com/2024/12/my-2024-in-music/</guid><description>The albums I listened to the most this year, and some brief thoughts on the year ahead.</description><pubDate>Tue, 31 Dec 2024 15:35:50 GMT</pubDate><content:encoded>&lt;p&gt;I love reading end-of-year music wrap-ups from the personal blogs I follow (two highlights this year include the posts by &lt;a href=&quot;https://thisisimportant.net/posts/spotify-wrapped-2024/&quot;&gt;Sarah K. Moir&lt;/a&gt; and &lt;a href=&quot;https://colly.com/journal/twenty-twentyfour-in-music&quot;&gt;Simon Collison&lt;/a&gt;), so I wanted to make an attempt at my own as well. I decided to wait until Dec 31 so I can have accurate data from &lt;a href=&quot;https://www.last.fm/user/bordesak&quot;&gt;my Last.fm profile&lt;/a&gt;, where all my listening stats go (I use Spotify and &lt;a href=&quot;https://roon.app/en/&quot;&gt;Roon&lt;/a&gt; for streaming, and I also send my physical media listening stats there).&lt;/p&gt;
&lt;p&gt;So according to my listening stats, here are my favorite releases from 2024 (plus two standouts from earlier years that I discovered this year and became obsessed with). Links will take you to my side project site &lt;a href=&quot;https://listentomore.com/&quot;&gt;Listen To More&lt;/a&gt; with some more info about each album.&lt;/p&gt;
&lt;h2&gt;#1 - &lt;a href=&quot;https://listentomore.com/album/khruangbin_a-la-sala&quot;&gt;A LA SALA by Khruangbin&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.scdn.co/image/ab67616d0000b2733854b553506134a1421ed58c&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;A return to super chill vibes from the Texas indie soul trio, this is #1 in listen count because it’s a beautiful album, but it’s also wonderful dinner / hangout music. So we put it on a lot over here.&lt;/p&gt;
&lt;h2&gt;#2 - &lt;a href=&quot;https://listentomore.com/album/the-cure_songs-of-a-lost-world&quot;&gt;Songs Of A Lost World by The Cure&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.scdn.co/image/ab67616d0000b2738613a922e2b503736fb2f91f&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Only #2 in listen count because it was released so late in the year… This is my personal Album of the Year. What a gift to get this absolute masterpiece so late in The Cure’s career. If &lt;a href=&quot;https://song.link/us/i/1768728503&quot;&gt;Endsong&lt;/a&gt; is the last song they ever make, I will be happy. “Left alone with nothing at the end of every song”. Dang.&lt;/p&gt;
&lt;h2&gt;#3 - &lt;a href=&quot;https://listentomore.com/album/markus-guentner_kontrapunkt&quot;&gt;Kontrapunkt by Markus Guentner&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.scdn.co/image/ab67616d0000b2730d24f17432b483c4c0c9ec7e&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;This year I started to dive even deeper into the &lt;a href=&quot;https://listentomore.com/genre/dark-ambient&quot;&gt;Dark Ambient&lt;/a&gt; and &lt;a href=&quot;https://listentomore.com/genre/drone&quot;&gt;Drone&lt;/a&gt; genres, so there are 3 such albums on the list, starting with Kontrapunkt. Most folks (myself included!) think of ambient music as “background fluff”, but this is… not that. This is anxious music, and in a weird way I find that it calms me down. If you give this a try (you should!), don’t just turn it on and walk away. Immerse yourself in it. And that goes for the next one too…&lt;/p&gt;
&lt;h2&gt;#4 - &lt;a href=&quot;https://listentomore.com/album/jon-hopkins_ritual&quot;&gt;RITUAL by Jon Hopkins&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.scdn.co/image/ab67616d0000b2738949f4e0f66f90dd28dff250&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Most of us know Jon Hopkins from &lt;a href=&quot;https://song.link/us/i/1541203600&quot;&gt;his collaborations with Coldplay&lt;/a&gt; and his harder dance albums. This is very different—it’s a dark ambient collaboration with several artists that flows like one continuous track. I love this thing. It gets really intense in the middle before settling down in the last couple of tracks to a beautiful, calm release.&lt;/p&gt;
&lt;h2&gt;#5 - &lt;a href=&quot;https://listentomore.com/album/leon-bridges_leon&quot;&gt;Leon by Leon Bridges&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.scdn.co/image/ab67616d0000b273b7ac31cd8650b673ed24ea71&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;I will gobble up anything this neo soul artist puts out, and &lt;em&gt;Leon&lt;/em&gt; is another wonderful entry in his discography. Really chill but also intricate.&lt;/p&gt;
&lt;h2&gt;#6 - &lt;a href=&quot;https://listentomore.com/album/the-black-keys_ohio-players&quot;&gt;Ohio Players by The Black Keys&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.scdn.co/image/ab67616d0000b27350ce9f89ec955ffd8918f6c1&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;I know most people have kind of moved on from &lt;em&gt;The Black Keys&lt;/em&gt;, but their last few albums have been a return to form in my opinion. Ohio Players is solid blues rock from start to finish.&lt;/p&gt;
&lt;h2&gt;#7 - &lt;a href=&quot;https://listentomore.com/album/hermanos-guti%C3%A9rrez_sonido-c%C3%B3smico&quot;&gt;Sonido Cósmico by Hermanos Gutiérrez&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.scdn.co/image/ab67616d0000b2730154dd5d23fb604d43f271cd&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;If you like #1, you’ll love this. These brothers manage to pull off a sound that reminds of Khruangbin, but is also its own thing altogether. That’s a lot of chill on the list, so let’s go to…&lt;/p&gt;
&lt;h2&gt;#8 - &lt;a href=&quot;https://listentomore.com/album/anberlin_vega&quot;&gt;Vega by Anberlin&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.scdn.co/image/ab67616d0000b2732e2b5a9688b9f0872985618f&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ah Anberlin. The crown jewel of the &lt;a href=&quot;https://www.toothandnail.com/&quot;&gt;Tooth and Nail&lt;/a&gt; label for years, before &lt;em&gt;things&lt;/em&gt; happened. I still love this band—&lt;a href=&quot;https://listentomore.com/album/anberlin_cities&quot;&gt;Cities&lt;/a&gt; is such peak 2000s emo hard rock. I didn’t expect much from their latest, especially considering that some songs feature a different lead singer. But this thing goes &lt;em&gt;hard&lt;/em&gt;, y’all. It’s definitely their best effort in years.&lt;/p&gt;
&lt;h2&gt;#9 - &lt;a href=&quot;https://listentomore.com/album/michael-kiwanuka_small-changes&quot;&gt;Small Changes by Michael Kiwanuka&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.scdn.co/image/ab67616d0000b2738828d629678a9d9d15d22d5b&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://listentomore.com/album/michael-kiwanuka_kiwanuka&quot;&gt;self-titled album from Michael Kiwanuka&lt;/a&gt; remains my favorite, but the new outing from this (yes, another!) neo soul artist is a solid entry, and I enjoy it a lot.&lt;/p&gt;
&lt;h2&gt;#10 - &lt;a href=&quot;https://listentomore.com/album/rafael-anton-irisarri_fa%C3%A7adisms&quot;&gt;FAÇADISMS by Rafael Anton Irisarri&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.scdn.co/image/ab67616d0000b273913f7c820639cbd032bcf047&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;The last of the dark ambient albums, and the most devastating. Rafael Anton Irisarri is my favorite ambient artists (check out &lt;a href=&quot;https://listentomore.com/album/rafael-anton-irisarri_solastalgia&quot;&gt;Solastalgia&lt;/a&gt;), and his latest is another fantastic entry in his prolific discography.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;And based on how much I listened to these two new discoveries (for me), I have to give them honorable mentions:&lt;/p&gt;
&lt;h2&gt;&lt;a href=&quot;https://listentomore.com/album/deserta_every-moment-everything-you-need&quot;&gt;Every Moment, Everything You Need by Deserta&lt;/a&gt; (2022)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.scdn.co/image/ab67616d0000b273c511333ba5d2e7d6f74941e4&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;My most-listened song in 2024 was &lt;a href=&quot;https://song.link/i/1588301767&quot;&gt;I’m So Tired by Deserta&lt;/a&gt;. I discovered this album early in the year, and it remained in constant rotation all year long. It’s shimmery guitar shoegaze at its best, with lyrics that feel &lt;em&gt;just right&lt;/em&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Guess you&apos;ll know why I&apos;m so tired&lt;br&gt;
Too tired to be cool&lt;br&gt;
Guess you&apos;ll know why I&apos;m so tired&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;&lt;a href=&quot;https://listentomore.com/album/night-traveler_dreams-you-dont-forget&quot;&gt;Dreams You Don’t Forget by NIGHT TRAVELER&lt;/a&gt; (2021)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.scdn.co/image/ab67616d0000b273e0ceb03e7bba5491334ed478&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;This is an album that’s on the verge of being synthwave, but not quite. It’s &lt;em&gt;just&lt;/em&gt; this side of pop, but it has that neon 80s DNA that I love so much (see also &lt;a href=&quot;https://listentomore.com/album/the-paper-kites_on-the-corner-where-you-live&quot;&gt;On the Corner Where You Live by The Paper Kites&lt;/a&gt; and &lt;a href=&quot;https://listentomore.com/album/bears-den_red-earth-pouring-rain&quot;&gt;Red Earth &amp;amp; Pouring Rain by Bear’s Den&lt;/a&gt;). Another one that was in constant rotation despite being a little older.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;As for 2025… I don’t know? This has been a wild year (but it feels like they all are, these days). I enter 2025 with a fair bit of anxiety. But I also know that, as always, music will be there for me. A companion for every mood, a friend in every circumstance. I remain eternally grateful for this undying obsession of mine.&lt;/p&gt;
&lt;p&gt;Happy New Year, everyone. May you find your Album of the Year early, and hang on to it steadfastly.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>47 (no, not that one)</title><link>https://elezea.com/2024/11/47-no-not-that-one/</link><guid isPermaLink="true">https://elezea.com/2024/11/47-no-not-that-one/</guid><description>Some thoughts on a week that never ended</description><pubDate>Sat, 09 Nov 2024 15:48:05 GMT</pubDate><content:encoded>&lt;p&gt;I turned 47 this week. There was also an election. It was also the 8th anniversary of &lt;a href=&quot;https://rianvdm.com/eulogy-for-dad&quot;&gt;my dad’s passing&lt;/a&gt;. I know this is a Product blog, but allow me to take a moment to just say, &lt;em&gt;dang&lt;/em&gt;, y’all. What a week. What a decade. I don’t have words for the era we are about to enter in the US. So, as always, I turn to music. Some people eat their feelings, I listen to mine.&lt;/p&gt;
&lt;p&gt;First, I made a &lt;a href=&quot;https://open.spotify.com/playlist/39Ek0xjkv73ojZHdyC10XD?si=e3ba1936b7664d2e&quot;&gt;post-election feels&lt;/a&gt; mixtape on Spotify. I am deliberate about calling it a mixtape and not a playlist. There’s no specific genre, it’s all &lt;em&gt;vibes&lt;/em&gt;. And if you do decide to give it a go, don’t shuffle. There’s an arc here.&lt;/p&gt;
&lt;iframe style=&quot;border-radius: 12px;&quot; src=&quot;https://open.spotify.com/embed/playlist/39Ek0xjkv73ojZHdyC10XD?utm_source=generator&quot; width=&quot;100%&quot; height=&quot;352&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;Second, as I often do, I used my birthday to do a listen-through of as many Genesis albums as I can fit in (if you know me and my unnatural obsession with Phil Collins, this won’t surprise you). The song &lt;a href=&quot;https://song.link/us/i/1472172129&quot;&gt;Undertow&lt;/a&gt; has always been one of my favorites, but this week it hit especially hard:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Stand up to the blow that fate has struck upon you Make the most of all you still have coming to you Lay down on the ground and let the tears run from you Crying to the grass and trees and heaven finally on your knees&lt;/p&gt;
&lt;p&gt;Let me live again, let life come find me wanting Spring must strike again against the shield of winter Let me feel once more the arms of love surround me Telling me the danger’s past, I need not fear the icy blast again&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We are heading into—sorry for using the word everyone is using but I don’t think there’s a better one—&lt;em&gt;unprecedented&lt;/em&gt; times. Brené Brown &lt;a href=&quot;https://www.instagram.com/p/DCIHE9ZpW7a/&quot;&gt;says&lt;/a&gt; we should focus on “micro-dosing hope”. I like that. I don’t know where we’re heading, but I have to believe that Spring must strike again. And that when it does, we’ll need not fear the icy blast again.&lt;/p&gt;
&lt;p&gt;Stay strong, friends. ❤️&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item><item><title>Thoughts and takeaways from the Lenny and Friends Summit</title><link>https://elezea.com/2024/10/thoughts-and-takeaways-from-the-lenny-and-friends-summit/</link><guid isPermaLink="true">https://elezea.com/2024/10/thoughts-and-takeaways-from-the-lenny-and-friends-summit/</guid><pubDate>Fri, 25 Oct 2024 01:30:01 GMT</pubDate><content:encoded>&lt;p&gt;I spent the day at &lt;a href=&quot;https://lennyssummit.com/&quot;&gt;Lenny’s Summit&lt;/a&gt; with over 1,000 other product people. The line-up of talks &lt;a href=&quot;https://file.elezea.com/20241021-000180.png&quot;&gt;was fantastic&lt;/a&gt;, but you never know how it’s &lt;em&gt;really&lt;/em&gt; going to go. I am happy to say that the hit rate of good talks was quite a bit higher than some other conferences I’ve been to. I tried to write detailed notes, and below are my summaries and takeaways from 4 of the talks that I enjoyed the most.&lt;/p&gt;
&lt;p&gt;There were also a couple of interviews that were really great—Lenny interviewing &lt;a href=&quot;https://www.linkedin.com/in/shreyasdoshi/&quot;&gt;Shreyas Doshi&lt;/a&gt;, and &lt;a href=&quot;https://www.linkedin.com/in/sarahxguo/&quot;&gt;Sarah Guo&lt;/a&gt; interviewing &lt;a href=&quot;https://www.linkedin.com/in/mikekrieger/&quot;&gt;Mike Krieger&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/kevinweil/&quot;&gt;Kevin Weil&lt;/a&gt; (pretty cool to see two major competitors play nice on stage together)—but those were a little harder to summarize so I gave up on note-taking and just listened.&lt;/p&gt;
&lt;h1&gt;Product Management is Dead (or Will Be Soon) by &lt;a href=&quot;https://www.linkedin.com/in/clairevo/&quot;&gt;Claire Vo&lt;/a&gt; (LaunchDarkly)&lt;/h1&gt;
&lt;p&gt;I’ll start with this one since the title is obviously pretty controversial. I expected to disagree with a lot of it, but it was actually really measured and interesting. Claire focused on the rapid transformation of product management due to AI, and outlined the need for product leaders and teams to adapt to these changes. She highlighted the evolving nature of product roles, driven by automation, and offered insights on how to prepare for an AI-powered future.&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Key Insights:&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;AI Will Transform Product, Design, and Engineering.&lt;/li&gt;
&lt;li&gt;AI is advancing faster than anticipated, reducing the need for traditional product management tasks and roles.&lt;/li&gt;
&lt;li&gt;The key challenge is to not be caught off guard by these changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;3 Requirements for an AI-Powered Team&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Automate to Speed Up Delivery&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Use AI to accelerate common tasks such as:
&lt;ul&gt;
&lt;li&gt;Drafting documents, collecting feedback, writing updates, and creating agendas.&lt;/li&gt;
&lt;li&gt;Monitoring goals (OKRs), tracking competitors, and preparing for interviews.&lt;/li&gt;
&lt;li&gt;Creating customer stories, enhancing presentations, and explaining product functionality.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Aim to achieve 75% progress quickly with AI assistance, rather than striving for 100% automation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add New Skills and Expand Capabilities&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;The future of product management will include people with technical backgrounds (e.g., engineers) who use AI to gain product skills.&lt;/li&gt;
&lt;li&gt;AI will enable individuals to learn and contribute across multiple domains.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiply Your Impact by Teaching AI Skills&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Encourage your team to embrace AI for building products and improving efficiency.&lt;/li&gt;
&lt;li&gt;Normalize the use of AI in everyday tasks to enhance overall team performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;Impact of AI on Product Teams&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Time &amp;amp; Creativity&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;With product work taking less time and requiring less mental effort, product teams can invest more time in creative problem-solving and direct user engagement.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fewer PMs Needed&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;AI will consolidate previously distinct roles, leading to a new model where one person, with the aid of AI, can manage design, engineering, and product functions—creating an “AI-powered triple threat.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;Evolution of Roles&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;From Product Triad to AI-Powered Generalists&lt;/li&gt;
&lt;li&gt;The traditional “product triad” (PM, designer, engineer) is evolving into roles where AI-empowered generalists can handle multiple disciplines.&lt;/li&gt;
&lt;li&gt;Teams will need to adapt to this shift without being intimidated by the collapse of traditional job boundaries.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;Takeaways for Product Leaders&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prepare for the New World of AI-Driven Product Management&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Acquire more commercial and technical skills.&lt;/li&gt;
&lt;li&gt;Learn to budget for AI tools and agents that enhance hiring and team structure.&lt;/li&gt;
&lt;li&gt;Explore new team topologies beyond the traditional triad model.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Start Adapting Now&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;AI-driven changes will happen fast. Begin integrating AI into team processes and management strategies immediately.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Product teams must embrace AI now to remain competitive and efficient.&lt;/li&gt;
&lt;li&gt;AI will consolidate roles, but with the right approach, it won’t break your team—rather, it will strengthen and streamline it.&lt;/li&gt;
&lt;li&gt;Product leaders must learn to navigate and manage this new, AI-driven world.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;How to Do the Product Review Right by &lt;a href=&quot;https://www.linkedin.com/in/yuhki/&quot;&gt;Yuhki Yamashita&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/mihikakapoor/&quot;&gt;Mihika Kapoor&lt;/a&gt; (Figma)&lt;/h1&gt;
&lt;p&gt;This was, unexpectedly, probably my favorite talk of the day. It was just so well executed: a CPO and IC PM riffing off the experience of doing product reviews. They offered a new perspective on product reviews, emphasizing that their true purpose is not about decision-making but about building trust with stakeholders. They shared key insights on how PMs can run effective reviews by shifting their focus from trying to impress to fostering confidence in their judgment and direction.&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Key Insights:&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Product Reviews Are Not for Making Decisions, but for Building Trust&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Traditional advice for product reviews focuses too much on pitching ideas and covering every detail, leading to ineffective presentations.&lt;/li&gt;
&lt;li&gt;The real goal is to gain trust, which allows PMs the time and space to execute on what truly matters—building great products.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;What PMs Are Typically Told (but is Ineffective):&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Build up Context First&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Most attendees won’t care about background details.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cover All Bases&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Trying to explain everything dilutes your message—“if you say everything, they hear nothing.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Circle Back Later if Unsure&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Deferring answers creates uncertainty and erodes confidence.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Make a Big, Bold Pitch&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Emphasizing a grand vision over clarity and precision can backfire.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;What PMs Should Actually Do (for Winning Trust):&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lead with the Punchline&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Present the most controversial or important point first. This sparks honest reactions early and avoids drawn-out discussions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create an Internal Brand&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Use humor or memorable analogies (“Make a meme”) to spread your idea and make it stick with your team. This can generate internal momentum.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Share Your Gut Feelings&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Don’t wait for perfect data. Share your instincts and anticipated learnings upfront, demonstrating decisiveness and confidence.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Be Your Own Biggest Critic&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Show you’ve thoroughly considered all options and potential challenges. Structure your presentation as:
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Pain Point → Solution → Proof Point&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Lay out the solution space and address anticipated concerns to preempt pushback from leadership.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;Summary:&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Product Review Isn’t the Most Important Part&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;While product reviews feel critical, what matters more is what happens outside the review. Building trust during the review gives PMs the freedom to focus on what truly counts: creating and delivering valuable products.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By focusing on trust-building rather than decision-making, PMs can create more impactful product reviews and set the stage for successful product development.&lt;/p&gt;
&lt;h1&gt;How to Win Friends and Influence Decisions by &lt;a href=&quot;https://www.linkedin.com/in/julie-zhuo/&quot;&gt;Julie Zhou&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Julie outlined a structured approach for moving from having a strong personal opinion to shaping better collective outcomes in decision-making. She provided practical steps to navigate disagreements and arrive at informed, collaborative decisions that benefit the entire team.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Steps:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step 1: Draw a Circle Around the Team, Not Yourself&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Frame the decision-making process as a collaborative effort, not a personal mission to convince others.&lt;/li&gt;
&lt;li&gt;Encourage open dialogue by focusing on shared goals: “What we really want is X, so let’s explore various ideas.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 2: Assume Everyone Sees Part of the Truth&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Use the analogy of the “&lt;a href=&quot;https://en.wikipedia.org/wiki/Blind_men_and_an_elephant&quot;&gt;blind men and the elephant&lt;/a&gt;” to acknowledge that everyone holds part of the truth.&lt;/li&gt;
&lt;li&gt;Differences in perspective should be seen as valuable pieces of a larger, more cohesive understanding.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 3: Uncover the Truth from Multiple Perspectives&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Facilitate discussions that explore the rationale behind each person’s perspective. Ask questions like:
&lt;ul&gt;
&lt;li&gt;“What would have to be true for us to believe this is the right approach?”&lt;/li&gt;
&lt;li&gt;“What data or scenario would convince us that the other option is better?”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 4: Turn the Problem Into a Data-Driven Question&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Shift the debate to evidence-based thinking. Seek out relevant data by asking:
&lt;ul&gt;
&lt;li&gt;“How can we know that it’s really true that…?”&lt;/li&gt;
&lt;li&gt;“What evidence do we already have, and what do we need?”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 4b: When Data Isn’t Available, Rely on People&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;If data is unavailable, delegate the decision to someone who is deeply invested, knowledgeable, and trusted to make the best call. Trust the judgment of someone with the right context and skills.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 5: Review and Learn from Decisions&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Regularly revisit past decisions to assess their outcomes. This practice helps identify whether decisions led to success or failure.&lt;/li&gt;
&lt;li&gt;Set calendar reminders to review decisions at regular intervals and document areas of disagreement or learning.&lt;/li&gt;
&lt;li&gt;The layers of learning from past decisions:
&lt;ul&gt;
&lt;li&gt;What did we learn about our customers and their needs and preferences?&lt;/li&gt;
&lt;li&gt;What did we learn about the levers that drive our product usage?&lt;/li&gt;
&lt;li&gt;What did we learn about the best measurement proxies for our goal?&lt;/li&gt;
&lt;li&gt;What did we learn about making better and more efficient decisions?&lt;/li&gt;
&lt;li&gt;What did we learn about the quality of our individual judgments?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This framework emphasizes collaboration, evidence-based decision-making, and continuous learning to improve both individual and team outcomes.&lt;/p&gt;
&lt;h1&gt;How to Craft an Elite Career by &lt;a href=&quot;https://www.linkedin.com/in/nikhyl/&quot;&gt;Nikhyl Singhal&lt;/a&gt; (Former VP of Product at Meta)&lt;/h1&gt;
&lt;p&gt;This talk offered insights on managing a successful career, viewing it as a product to build over time. Nikhyl provided a framework for progressing through different stages of a career while highlighting key pitfalls to avoid and strategies for developing a strong personal brand and maintaining balance.&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Key Insights:&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Your Career is Your Most Important Product&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Careers span multiple jobs, typically 2–3 years each, which can result in 20–30 jobs over a lifetime.&lt;/li&gt;
&lt;li&gt;Treat your career like building floors in a structure, with distinct phases to navigate.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Career Phases&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Foundational&lt;/em&gt;: Gaining experience and stories.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;High Impact&lt;/em&gt;: Driving measurable value and influence.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Joyful Giving&lt;/em&gt;: Contributing to others and sharing your knowledge.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Collect Stories and Build Expertise&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Aim to accumulate stories from diverse experiences (different companies, markets, and cultures).&lt;/li&gt;
&lt;li&gt;The ability to say, “I’ve seen this problem and here’s how I solved it,” is key to advancing.&lt;/li&gt;
&lt;li&gt;Continuously ask yourself: What story will I tell in 12 months? If it’s the same as today, it may signal career stagnation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Establish a Strong Reputation&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Develop a reputation of hard work, being a team player, and offering strong opinions that are open to change.&lt;/li&gt;
&lt;li&gt;Your reputation today forms the brand that can open future opportunities.&lt;/li&gt;
&lt;li&gt;Focus on being a &lt;em&gt;builder&lt;/em&gt; and a &lt;em&gt;giver&lt;/em&gt;—someone who elevates others rather than acting solely for personal gain.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;Avoiding Leadership Pitfalls&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Avoid Burnout&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Over-investing in work can lead to resentment when sacrifices (e.g., missed family events) aren’t reciprocated.&lt;/li&gt;
&lt;li&gt;Enforce boundaries early to prevent burnout—success often leads to more responsibilities without additional rewards.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Beware of Superpower Shadows&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Identify and manage the downsides of your strengths. For example, being great at storytelling might come at the cost of overlooking important details.&lt;/li&gt;
&lt;li&gt;The skills that got you where you are may not be the ones that propel you forward.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recognize You Are Not Alone&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Build a network of product leaders for mutual support and collaboration. Helping others is a key part of career longevity and satisfaction.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Divide your career into phases: foundational, impactful, and giving.&lt;/li&gt;
&lt;li&gt;Accumulate diverse stories that show your growth and problem-solving abilities.&lt;/li&gt;
&lt;li&gt;Your brand is built on your current reputation—focus on being a builder and contributor.&lt;/li&gt;
&lt;li&gt;Set and enforce boundaries to avoid burnout and resentment.&lt;/li&gt;
&lt;li&gt;Leverage your superpowers, but be mindful of their potential downsides.&lt;/li&gt;
&lt;li&gt;Cultivate a community of peers for long-term support and shared learning.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By focusing on storytelling, reputation-building, and self-awareness, you can craft a career that grows over time, with a strong foundation in both personal and professional fulfillment.&lt;/p&gt;
&lt;br&gt;&lt;br&gt;&lt;hr&gt;Thanks for still believing in RSS! Feel free to &lt;a href=&quot;https://elezea.com/contact&quot;&gt;get in touch&lt;/a&gt;.</content:encoded><author>Rian van der Merwe</author></item></channel></rss>