<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Mindless Rambling Nonsense</title>
		<description>My thoughts are mindless and rambling so the best place for them is the internet</description>		
		<link>https://pauldambra.dev</link>
		<atom:link href="https://pauldambra.dev/feed.xml" rel="self" type="application/rss+xml" />
		<updated>2026-07-25T22:22:08+00:00</updated>
		
			<item>
				<title>How I use LLMs? - six</title>
				<description>&lt;p&gt;Let&apos;s &lt;del&gt;growth hack blog visitor numbers&lt;/del&gt; and keep on recording how I use agents/LLMs today as a little reflection on where I think they work and where they don&apos;t. Something I can revisit as the tech (and my skill with it) improves&lt;/p&gt;

&lt;p&gt;This is update number five, or entry number six, depending on how you want to count it.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/07/how-i-use-llms.html&quot;&gt;part 1 - structured tone of fascination + scepticism&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/10/how-i-use-llms-2.html&quot;&gt;part 2 - learning how to manage and control them&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2026/01/how-i-use-llms-3.html&quot;&gt;part 3 - reluctant acceptance but also thankfulness (?) of what they do for you when you let go of control&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2026/03/how-i-use-llms-4.html&quot;&gt;part 4 - realising even though it&apos;s no longer &quot;braincode&quot; + no longer for humans, it still comes from human brains&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2026/06/how-i-use-llms-5.html&quot;&gt;part 5 - oh no, am i AI pilled&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;someone at work named the episodes for me, i love it&lt;/p&gt;

&lt;p&gt;so now… part 6 - i think maybe everything changed&lt;/p&gt;

&lt;h2 id=&quot;in-todays-edition-of-ai-hot-takes&quot;&gt;in today&apos;s edition of AI hot takes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;saying &quot;slop&quot; considered harmful&lt;/li&gt;
  &lt;li&gt;ship value, not craft&lt;/li&gt;
  &lt;li&gt;don&apos;t read code&lt;/li&gt;
  &lt;li&gt;manage loops and context - fuck prompts&lt;/li&gt;
  &lt;li&gt;if you make me copy &amp;amp; paste a prompt you&apos;ve lost me&lt;/li&gt;
&lt;/ul&gt;

&lt;!--more--&gt;

&lt;h1 id=&quot;first-a-necessary-but-brief-diversion-into-how-i-use-tools-generally&quot;&gt;First, a necessary but brief diversion into how I use tools generally&lt;/h1&gt;

&lt;p&gt;I was largely self-taught as a developer and (after vbscript 😱) I started with DotNet. I found JetBrains Resharper early on and never looked back. The assistance in the IDE to write, refactor, and improve code was game-changing. I don&apos;t begrudge anybody any tool they want to use to level-up. Wanna use a graphical git client, or emacs, or anything else… go for it, go make cool things&lt;/p&gt;

&lt;p&gt;Because of that entry to the industry I&apos;m also not super keen on VSCode (you love it? great, see above, you do you, go make cool things). I&apos;m too used to clever interventions helping me and VSCode is too barebones (and so much slower than SublimeText)&lt;/p&gt;

&lt;p&gt;So, I &lt;em&gt;like&lt;/em&gt; having tools directly involved in my workflow. I learned LINQ more quickly and more thoroughly because I had resharper prompting me inline, at write-time: &quot;hey, why not like this?&quot;&lt;/p&gt;

&lt;h1 id=&quot;saying-slop-considered-harmful&quot;&gt;saying &quot;slop&quot; considered harmful&lt;/h1&gt;

&lt;p&gt;I&apos;ve noticed a habit for folk reporting a bug with a system to say things like: &quot;ugh, the clink expander doesn&apos;t work. why even ship this slop?!&quot;&lt;/p&gt;

&lt;p&gt;my friends, if you think there were no bugs prior to December 2025 then you were not paying attention.&lt;/p&gt;

&lt;p&gt;through most of 2025 if you were just shipping AI generated code without thorough checking then you were going to be in for a bad time… but the world changed in Dec 2025 and several times again through 2026.&lt;/p&gt;

&lt;p&gt;the code written by LLMs is now at least as good as that written by the worst junior developers i&apos;ve worked with over ~20 years. and sometimes much better.&lt;/p&gt;

&lt;p&gt;those junior developers all managed to ship value despite being inexperienced.&lt;/p&gt;

&lt;p&gt;and the goal is shipping value&lt;/p&gt;

&lt;h1 id=&quot;ship-value-not-craft&quot;&gt;ship value, not craft&lt;/h1&gt;

&lt;p&gt;i have long considered myself a software crafts person. attended user group meetups; run brownbags at work; practised deliberately and consistently; learned about XP, agile, tdd, and more.&lt;/p&gt;

&lt;p&gt;why… because i believe that software gets harder to change and extend over time otherwise&lt;/p&gt;

&lt;p&gt;and that&apos;s important because i have always been focused on shipping value to people&lt;/p&gt;

&lt;p&gt;a problem has a solution in a context&lt;/p&gt;

&lt;p&gt;as agents have improved the context has changed gigantically&lt;/p&gt;

&lt;p&gt;the problem of needing to ship value remains but the solution of software craft doesn&apos;t fit any more&lt;/p&gt;

&lt;p&gt;software needs to be easy to change and extend &lt;strong&gt;by agents&lt;/strong&gt; way more than by humans&lt;/p&gt;

&lt;p&gt;we would slow down when software files became complex because they broke our meat brains… but our meat doesn&apos;t need to parse it any more, our agents will&lt;/p&gt;

&lt;p&gt;if software is for agents not humans, then one change (whether you like or not) is…&lt;/p&gt;

&lt;h1 id=&quot;dont-read-code&quot;&gt;don&apos;t read code&lt;/h1&gt;

&lt;p&gt;to quote a (frankly fantastic) colleague:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I&apos;m sure when the first FORTRAN compiler was released, for a time, engineers still read the machine code output that it produced to make sure it was up to scratch.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Who does that still? Compiler developers and nobody else.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;It will be like that for generative LLMs producing code also.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Imagine someone making the argument that if you don&apos;t read, understand and verify all the assembly that GCC outputs then they&apos;re not a real engineer or they&apos;re somehow not doing their job.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think about this like I am working with a team of developers. Not &lt;em&gt;in&lt;/em&gt; the team. &lt;strong&gt;with&lt;/strong&gt; the team.&lt;/p&gt;

&lt;p&gt;If I hire them to make an API for me. I&apos;ll write tests directly against their API maybe. Against my use of it for sure. I&apos;m very, very unlikely to look at their code. When I&apos;m using agents. I&apos;m working with them, not in them. So, the code they write is simply unimportant if it works.&lt;/p&gt;

&lt;p&gt;I have always asked three questions:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;how do you know the software doesn&apos;t do it today&lt;/li&gt;
  &lt;li&gt;how will you know the software does do it in this change&lt;/li&gt;
  &lt;li&gt;how will you know the software still does it the day after the deployment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;the answer has always been &quot;writing tests, gathering metrics, and talking to users&quot;&lt;/p&gt;

&lt;p&gt;this becomes so much more important in this new world&lt;/p&gt;

&lt;p&gt;deciding what to build and whether it was good idea once you&apos;ve finished is where you should spend your time. reading code used to support that, but not any more&lt;/p&gt;

&lt;h1 id=&quot;if-you-make-me-copy--paste-a-prompt-youve-lost-me&quot;&gt;if you make me copy &amp;amp; paste a prompt you&apos;ve lost me&lt;/h1&gt;

&lt;p&gt;i noticed i now find tools that expect me to copy their output to the next LLM annoying&lt;/p&gt;

&lt;p&gt;the future is a world of agents interacting. not people passing text between agents.&lt;/p&gt;

&lt;p&gt;different people will want to grab output from the loop of genies at different points. your org might require you use a particular system or an air-gapped network or whatevs and you&apos;ll need to break the loop and move data yourself in some way.&lt;/p&gt;

&lt;p&gt;but lots of systems will be a set of agents triggered by timers or external signals passing data and prompts between themselves… and it&apos;s gonna be super cool.&lt;/p&gt;
</description>
				<pubDate>Sat, 25 Jul 2026 08:00:00 +0000</pubDate>
				
				<link>
					https://pauldambra.dev/2026/07/how-i-use-llms-6.html
				</link>
				<guid isPermaLink="true">
					https://pauldambra.dev/2026/07/how-i-use-llms-6.html
				</guid>
			</item>
		
			<item>
				<title>How I use LLMs? - five</title>
				<description>&lt;p&gt;I have lost roughly 60% of my cynicism about the current high-water mark for LLMs and augmented coding… I am certain this last 9 months has been a significant generational change in how we can approach work.&lt;/p&gt;

&lt;p&gt;Oh no, I&apos;m AI pilled&lt;/p&gt;

&lt;p&gt;Let&apos;s &lt;del&gt;growth hack blog visitor numbers&lt;/del&gt; record how I use them today as a little reflection on where I think they work and where they don&apos;t. Something I can revisit as the tech (and my skill with it) improves&lt;/p&gt;

&lt;p&gt;This is update number four, or entry number five, depending on how you want to count it.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/07/how-i-use-llms.html&quot;&gt;part 1 - structured tone of fascination + scepticism&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/10/how-i-use-llms-2.html&quot;&gt;part 2 - learning how to manage and control them&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2026/01/how-i-use-llms-3.html&quot;&gt;part 3 - reluctant acceptance but also thankfulness (?) of what they do for you when you let go of control&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2026/03/how-i-use-llms-4.html&quot;&gt;part 4 - realising even though it&apos;s no longer &quot;braincode&quot; + no longer for humans, it still comes from human brains&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;someone at work named the episodes for me, i love it&lt;/p&gt;

&lt;p&gt;so now… part 5 - yee haw, paul is AI pilled&lt;/p&gt;

&lt;h2 id=&quot;in-todays-edition-of-ai-hot-takes&quot;&gt;in today&apos;s edition of AI hot takes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;the agent is my to-do list&lt;/li&gt;
  &lt;li&gt;no longer focused on the code, 5% focus down from 95%&lt;/li&gt;
  &lt;li&gt;i don&apos;t use these tools, i hire them into my team&lt;/li&gt;
  &lt;li&gt;genuine frustration when they lack autonomy&lt;/li&gt;
  &lt;li&gt;stop making me tell you when to run&lt;/li&gt;
  &lt;li&gt;skills skills skill skills&lt;/li&gt;
&lt;/ul&gt;

&lt;!--more--&gt;

&lt;h1 id=&quot;first-a-necessary-but-brief-diversion-into-how-i-use-tools-generally&quot;&gt;First, a necessary but brief diversion into how I use tools generally&lt;/h1&gt;

&lt;p&gt;I was largely self-taught as a developer and (after vbscript 😱) I started with DotNet. I found JetBrains Resharper early on and never looked back. The assistance in the IDE to write, refactor, and improve code was game-changing. I don&apos;t begrudge anybody any tool they want to use to level-up. Wanna use a graphical git client, or emacs, or anything else… go for it, go make cool things&lt;/p&gt;

&lt;p&gt;Because of that entry to the industry I&apos;m also not super keen on VSCode (you love it? great, see above, you do you, go make cool things). I&apos;m too used to clever interventions helping me and VSCode is too barebones (and so much slower than SublimeText)&lt;/p&gt;

&lt;p&gt;So, I &lt;em&gt;like&lt;/em&gt; having tools directly involved in my workflow. I learned LINQ more quickly and more thoroughly because I had resharper prompting me inline, at write-time: &quot;hey, why not like this?&quot;&lt;/p&gt;

&lt;h1 id=&quot;the-agent-is-my-to-do-list&quot;&gt;the agent is my to-do list&lt;/h1&gt;

&lt;p&gt;why write something down in a to-do list when i can open a new conversation and write exactly the same text as a prompt?! i immediately switch away and carry on with my day, like with a to-do list.&lt;/p&gt;

&lt;p&gt;but my agent is connected to our code and to all of our analytics, so almost every time when I switch back it has context and challenge. or a PR&lt;/p&gt;

&lt;p&gt;to-do list on steroids&lt;/p&gt;

&lt;h1 id=&quot;no-longer-focused-on-the-code-5-focus-down-from-95&quot;&gt;no longer focused on the code, 5% focus down from 95%&lt;/h1&gt;

&lt;p&gt;Last time I said:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Recent improvements to agents and their UX has meant I only have to actively write code when I choose to. It would be possible to completely work via agents.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I can literally never write a line of code manually anymore and it is so ok.&lt;/p&gt;

&lt;p&gt;Because the cost of understanding the code is basically zero now. The importance of the code being understandable is dropping.&lt;/p&gt;

&lt;p&gt;It still has to be correct and fast but if I can&apos;t quickly grok it. I can just ask an LLM to explain it, or write some tests to exercise it. What might have taken hours in the past, I&apos;ve worked on code that took me days to understand, will now take seconds.&lt;/p&gt;

&lt;p&gt;Writing code is now far from the highest leverage thing I could do with my time&lt;/p&gt;

&lt;p&gt;&quot;Oh but Paul some code is very important!&quot;&lt;/p&gt;

&lt;p&gt;Yep, and cool, the literal code might still be the highest leverage thing &lt;em&gt;you&lt;/em&gt; can do. But it isn&apos;t the highest leverage thing I could do any more. And I&apos;d argue for many people that&apos;s true too.&lt;/p&gt;

&lt;p&gt;And that is truly magical because now I can care about and achieve a bunch of stuff all at the same time and that would have been impossible for 2025 Paul.&lt;/p&gt;

&lt;h1 id=&quot;i-dont-use-these-tools-i-hire-them-into-my-team&quot;&gt;i don&apos;t use these tools, i hire them into my team&lt;/h1&gt;

&lt;p&gt;If I am nailing two pieces of wood together it is up to me to figure out how to do it. To choose the hammer. To choose the nail. To pick the place and the angle that the nail goes in. To make sure I don&apos;t hit my thumb.&lt;/p&gt;

&lt;p&gt;If I hire a carpenter then I make them a brew and tell them I&apos;m here if they need me.&lt;/p&gt;

&lt;p&gt;So, the mindset shift I&apos;m suggesting is that I am hiring a junior engineer or product manager or whatever. And I am responsible for giving them context and guard rails. And then I let them do their work. I&apos;m still responsible for if the work is valuable, but I&apos;m not literally hitting the nail any more.&lt;/p&gt;

&lt;p&gt;It changes so much about how I interact with the thing. And it lets me completely change how I work. I&apos;ve moved into an executive role and I can still sling lots of code cos I don&apos;t hold the hammer, I hire the carpenter.&lt;/p&gt;

&lt;h1 id=&quot;genuine-frustration-when-they-lack-autonomy&quot;&gt;genuine frustration when they lack autonomy&lt;/h1&gt;

&lt;p&gt;We run a bunch of AI review tools on our PRs. And they have varying quality. They get better over time bit by bit. And they are earning their keep (just about - although they&apos;re pretty expensive tbh)&lt;/p&gt;

&lt;p&gt;But over the last months since part 4 I&apos;ve noticed a new expectation from me… they post their comment and I think &quot;ugh, now i have to read and act on that… such bullshit&quot;&lt;/p&gt;

&lt;p&gt;By comparison, I have a &quot;PR Shepherd&quot; skill. I&apos;ve had Claude do research about XP on the C2 wiki. I&apos;ve had it interview me about software engineering to see what I care about in how work is done. And I&apos;ve had it review the public history of my PR reviews to see what I care about in reviewing.&lt;/p&gt;

&lt;p&gt;And when I run that skill it does a bunch of reviews in parallel, and anything that has a single solution, it just does. You can see &lt;a href=&quot;https://github.com/PostHog/posthog/pull/61611&quot;&gt;an example here&lt;/a&gt; - I have it run and publicly comment on all of my PRs. It now feels rude to have a human review before I&apos;ve had the robot find things. In the same way that for the longest time it&apos;s been rude to make a human lint your code when a tool could do it.&lt;/p&gt;

&lt;p&gt;So, increasingly, the word machine can no longer earn its keep by only turning one set of words into another. It needs to turn that set of words into action. Just like if I hire a junior engineer and they asked me &quot;should i fix this obvious bug&quot; i would be frustrated.&lt;/p&gt;

&lt;h1 id=&quot;stop-making-me-tell-you-when-to-run&quot;&gt;stop making me tell you when to run&lt;/h1&gt;

&lt;p&gt;this has a side effect… i don&apos;t want to have to remember to ask an LLM for a whole bunch of stuff. same way i don&apos;t want to have to ask my colleagues about a bunch of stuff.&lt;/p&gt;

&lt;p&gt;i want to say &quot;hey, we should check the clink expander every two hours and route fanglers appropriately&quot; and that just happens&lt;/p&gt;

&lt;p&gt;i think the next great frontier is long-running and trigger-driven agents. and i am so excited for it&lt;/p&gt;

&lt;h1 id=&quot;skills-skills-skill-skills&quot;&gt;skills skills skill skills&lt;/h1&gt;

&lt;p&gt;I mention &quot;PR shepherd&quot; above. It does all the mechanical work of getting a PR through review. It checks if a PR is open, opens it if not. marks it ready for review, runs a swarm of parallel reviewers and responds to them, checks external reviews and responds to them. It defers to me when it has to, otherwise it checks CI until it&apos;s green. It took me about an hour in total so far prompting to create it. And has saved me multiples of that.&lt;/p&gt;

&lt;p&gt;Soooo much time back.&lt;/p&gt;

&lt;p&gt;I have &quot;Paul pair&quot;. Every time the robot finishes work or is about to ask me a question it has an instruction to run the &quot;Paul pair&quot; skill. Which reminds it what I care about and to only interrupt me with important things. It&apos;s mecha paul. Saving meat paul from repeating the thing i was obviously going to repeat.&lt;/p&gt;

&lt;p&gt;I have an executive coach (admittedly not a skill). It checks granola and slack and github and the org chart etc etc and once a week tells me if I&apos;m working on what I&apos;ve said is important. Tells me what I&apos;m missing, what patterns it sees, what the top 3 things I should do to get back on track. It&apos;s not always right, but it doesn&apos;t have to be - it&apos;s on me to manage my work and attention regardless of what advice i receive.&lt;/p&gt;

&lt;p&gt;If you have never done it then stop what you&apos;re doing. Open a new session with your favourite robot and type &quot;look at our conversations and tell me what repeated interactions we could automate&quot;&lt;/p&gt;

&lt;p&gt;Then sit back and prepare to have your mind blown.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/pauldambra/dotfiles/tree/main/ai/skills&quot;&gt;Here are all my public skills&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;paul-you-sound-irredeemably-ai-pilled&quot;&gt;paul, you sound irredeemably AI pilled&lt;/h1&gt;

&lt;p&gt;yep, I am. sorry, it&apos;s happened. there&apos;s no going back. i&apos;ve been sucked into the bubble. this is the future.&lt;/p&gt;

&lt;p&gt;&quot;but LLMs gets things wrong sometimes!&quot;&lt;/p&gt;

&lt;p&gt;yep, and this might shock you. so do human colleagues. even incredible colleagues can do silly things. yes, reader, even I have once or twice shipped a bug&lt;/p&gt;

&lt;p&gt;it&apos;s not about the LLM being perfect. it doesn&apos;t have to be perfect. it&apos;s about the LLM being useful. And it really f-in is.&lt;/p&gt;
</description>
				<pubDate>Thu, 04 Jun 2026 08:00:00 +0000</pubDate>
				
				<link>
					https://pauldambra.dev/2026/06/how-i-use-llms-5.html
				</link>
				<guid isPermaLink="true">
					https://pauldambra.dev/2026/06/how-i-use-llms-5.html
				</guid>
			</item>
		
			<item>
				<title>Where have I been?</title>
				<description>&lt;p&gt;At a recent company offsite a bunch of people asked me how many of the off-sites I&apos;d been on. I didn&apos;t remember so I made this list since if I don&apos;t remember now I have no chance of remembering in 5 or 10 years.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;2021&quot;&gt;2021&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Place&lt;/th&gt;
      &lt;th&gt;Type&lt;/th&gt;
      &lt;th&gt;Note&lt;/th&gt;
      &lt;th&gt;Hackathon&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;London&lt;/td&gt;
      &lt;td&gt;&lt;em&gt;my&lt;/em&gt; onboarding&lt;/td&gt;
      &lt;td&gt;Jams said &quot;just do the right thing&quot; which was a good signal this company was cool&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Milan&lt;/td&gt;
      &lt;td&gt;working, not a company trip&lt;/td&gt;
      &lt;td&gt;i just had to go to Italy for my soul after covid&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;2022&quot;&gt;2022&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Place&lt;/th&gt;
      &lt;th&gt;Type&lt;/th&gt;
      &lt;th&gt;Note&lt;/th&gt;
      &lt;th&gt;Hackathon&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Barcelona&lt;/td&gt;
      &lt;td&gt;all engineering offsite&lt;/td&gt;
      &lt;td&gt;got hard feedback, realised I had to up my game&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Iceland&lt;/td&gt;
      &lt;td&gt;all company offsite&lt;/td&gt;
      &lt;td&gt;my first posthog hackathon, realised just how talented everyone was&lt;/td&gt;
      &lt;td&gt;writing session replay ingestion to s3. it was a bad implementation.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Cambridge&lt;/td&gt;
      &lt;td&gt;onboarding&lt;/td&gt;
      &lt;td&gt;the one where i felt i could talk about posthog well&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Montesilvano&lt;/td&gt;
      &lt;td&gt;working, not a company trip&lt;/td&gt;
      &lt;td&gt;I just needed time alone&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Rome&lt;/td&gt;
      &lt;td&gt;small team offsite&lt;/td&gt;
      &lt;td&gt;this was the turning point for me being successful and feeling at home at PostHog. I got amazing, direct, constructive feedback. life-changing, no cap&lt;/td&gt;
      &lt;td&gt;in-app notifications on top of the activity log&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Cambridge&lt;/td&gt;
      &lt;td&gt;onboarding&lt;/td&gt;
      &lt;td&gt;the one where we got locked in one of the Cambridge colleges after maybe breaking in&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Lisbon&lt;/td&gt;
      &lt;td&gt;work-blast&lt;/td&gt;
      &lt;td&gt;the one where Ben and I wanted to prove network logging was quick to build - it was. Kaarl told me my schema design was good, I was so in awe of his clickhouse brain i thought i&apos;d faint&lt;/td&gt;
      &lt;td&gt;network request logging in replay&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;2023&quot;&gt;2023&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Place&lt;/th&gt;
      &lt;th&gt;Type&lt;/th&gt;
      &lt;th&gt;Note&lt;/th&gt;
      &lt;th&gt;Hackathon&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Aruba&lt;/td&gt;
      &lt;td&gt;all company offsite&lt;/td&gt;
      &lt;td&gt;the one where we celebrated turning into a juggernaut&lt;/td&gt;
      &lt;td&gt;bug reporting tool in PostHog&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Cambridge&lt;/td&gt;
      &lt;td&gt;onboarding&lt;/td&gt;
      &lt;td&gt;the one where i made pizza with bread flour, no bueno&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Glossop, UK&lt;/td&gt;
      &lt;td&gt;onboarding&lt;/td&gt;
      &lt;td&gt;the one where i couldn&apos;t travel and so the team braved Glossop, i made some pretty good pizza&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Bologna&lt;/td&gt;
      &lt;td&gt;small team offsite&lt;/td&gt;
      &lt;td&gt;the one where posthog 3000 was born, we presented each other&apos;s ideas. It was silly, laughed so much&lt;/td&gt;
      &lt;td&gt;Sampling for session replay&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;2024&quot;&gt;2024&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Place&lt;/th&gt;
      &lt;th&gt;Type&lt;/th&gt;
      &lt;th&gt;Note&lt;/th&gt;
      &lt;th&gt;Hackathon&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Trapani&lt;/td&gt;
      &lt;td&gt;work blast&lt;/td&gt;
      &lt;td&gt;Ben and I wanted to prove Heatmaps was quick to ship, it was&lt;/td&gt;
      &lt;td&gt;Heatmaps&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Vienna&lt;/td&gt;
      &lt;td&gt;onboarding&lt;/td&gt;
      &lt;td&gt;the best beetroot i&apos;ve had to date, my favourite part of italy&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Cambridge&lt;/td&gt;
      &lt;td&gt;onboarding&lt;/td&gt;
      &lt;td&gt;manoel did amazing bbq steak&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Valencia&lt;/td&gt;
      &lt;td&gt;small team offsite&lt;/td&gt;
      &lt;td&gt;the one where i realised i could push people more&lt;/td&gt;
      &lt;td&gt;AI summarisation of survey responses&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;2025&quot;&gt;2025&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Place&lt;/th&gt;
      &lt;th&gt;Type&lt;/th&gt;
      &lt;th&gt;Note&lt;/th&gt;
      &lt;th&gt;Hackathon&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Cambridge&lt;/td&gt;
      &lt;td&gt;onboarding&lt;/td&gt;
      &lt;td&gt;very cold, we saw a fox, Ben improv&apos;d the architecture diagram&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Budapest&lt;/td&gt;
      &lt;td&gt;onboarding&lt;/td&gt;
      &lt;td&gt;great coffee, so many irish bars&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Tulum, Mexico&lt;/td&gt;
      &lt;td&gt;all company offsite 2025&lt;/td&gt;
      &lt;td&gt;the one where i realised just how much we&apos;d grown&lt;/td&gt;
      &lt;td&gt;CSP violation reporting… that has started to make bank now&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Munich&lt;/td&gt;
      &lt;td&gt;onboarding&lt;/td&gt;
      &lt;td&gt;my first ever visit to germany, how?!&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Palermo&lt;/td&gt;
      &lt;td&gt;small team offsite&lt;/td&gt;
      &lt;td&gt;the one where we experimented with combining small team offsites (and it changed things a lot)&lt;/td&gt;
      &lt;td&gt;letting people add screenshots to action and event definitions&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;London&lt;/td&gt;
      &lt;td&gt;xmas hackathon and onboarding&lt;/td&gt;
      &lt;td&gt;the one where Tue got very excited about a smash burger&lt;/td&gt;
      &lt;td&gt;tooling to make session replay support easier&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;2026&quot;&gt;2026&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Place&lt;/th&gt;
      &lt;th&gt;Type&lt;/th&gt;
      &lt;th&gt;Note&lt;/th&gt;
      &lt;th&gt;Hackathon&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Lisbon&lt;/td&gt;
      &lt;td&gt;analytics platform small team offsite&lt;/td&gt;
      &lt;td&gt;the one where we figured out how to make a query performance team&lt;/td&gt;
      &lt;td&gt;adding AI summary to insight subscriptions&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Barbados&lt;/td&gt;
      &lt;td&gt;all company offsite&lt;/td&gt;
      &lt;td&gt;my first all team offsite as an exec. lots of great feedback and pina coladas&lt;/td&gt;
      &lt;td&gt;creating an AI user researcher&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;It turns out I&apos;ve been away from home for roughly 26 weeks in the time I&apos;ve been at PostHog. Or roughly 10% of the weeks I&apos;ve worked here. Wouldn&apos;t change it for the world.&lt;/p&gt;
</description>
				<pubDate>Fri, 22 May 2026 10:00:00 +0000</pubDate>
				
				<link>
					https://pauldambra.dev/2026/05/22/where-have-i-been.html
				</link>
				<guid isPermaLink="true">
					https://pauldambra.dev/2026/05/22/where-have-i-been.html
				</guid>
			</item>
		
			<item>
				<title>Let&apos;s plan that</title>
				<description>&lt;p&gt;My favourite quote is &quot;The plans are useless, the planning is essential&quot;&lt;/p&gt;

&lt;p&gt;Since the plans are useless, why do we run planning sessions at all?&lt;/p&gt;

&lt;p&gt;It&apos;s planning season at work. We are high trust, high agency, and minimise collaboration. It is pretty common for folk to change their plans and they do so without needing to seek approval.&lt;/p&gt;

&lt;p&gt;Without shared context and an understanding of the broader picture, people would change plans but be pulling in different directions. Having the big picture means you can rely more on instinct and curiosity rather than rigid plans.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h1 id=&quot;torture-a-metaphor-if-you-insist&quot;&gt;Torture a metaphor? If you insist…&lt;/h1&gt;

&lt;p&gt;The landscape you&apos;re building software in probably doesn&apos;t look like this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/sunny-day.jpg&quot; alt=&quot;a picture of the peak district with great visibility&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We&apos;re generally operating under imperfect conditions. Trying to figure out where we are is more like being in the fog:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/foggy-day.jpg&quot; alt=&quot;a picture of the peak in foggy conditions&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A friend was for a while a member of mountain rescue (who are incidentally incredible - &lt;a href=&quot;https://edalemrt.co.uk/support-us/&quot;&gt;you should give them money&lt;/a&gt;). They once described to me how they navigate when they have very low visibility.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/lost.jpg&quot; alt=&quot;a lost Lego hiker&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In pairs:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;use the map to figure out where you are&lt;/li&gt;
  &lt;li&gt;use that information to figure out what direction to go&lt;/li&gt;
  &lt;li&gt;using a compass one of you slowly walks in that direction&lt;/li&gt;
  &lt;li&gt;the other stays still and calls out when the walker is about to disappear into the fog&lt;/li&gt;
  &lt;li&gt;then that person catches up with the walker&lt;/li&gt;
  &lt;li&gt;repeat&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Looking at the context of where they are against what they know about the world. Working together to understand what that means, right then. Watching each other and relying on communication. Chopping the journey into many safer parts.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The short loop of frequent interactions with your colleagues, your users, your analytics are the small steps in the fog. But you have to plan to have the destination and route.
This navigation completely falls apart without the map. It &lt;em&gt;requires&lt;/em&gt; the wider context.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1 id=&quot;but-surely-you-cant-keep-going-with-this-metaphor&quot;&gt;But surely you can&apos;t keep going with this metaphor?&lt;/h1&gt;

&lt;p&gt;Once we were hiking on Maiden moor and within a half an hour we went from clear skies to low visibility in fog. My wife who is a competent navigator asked me: &quot;why is your thumb there (on the map)?&quot;. I explained it&apos;s where we were. And she pointed out distant landmarks to triangulate how wrong I am.&lt;/p&gt;

&lt;p&gt;My error made it into a much longer and more challenging walk than we had planned.&lt;/p&gt;

&lt;p&gt;Her navigation is better because she is looking at the bigger picture. Whereas I&apos;m counting field boundaries.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Even once we have the map and the route, we still need to navigate by looking at the landscape and landmarks to stay on course.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Your customers and your competitors don&apos;t stand still so you have to keep looking up to see if the world changed under your plan.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1 id=&quot;ok-were-done-now-with-the-hiking-metaphor-now-surely&quot;&gt;OK, we&apos;re done now with the hiking metaphor now, surely?&lt;/h1&gt;

&lt;p&gt;Well, why was I counting field boundaries? Once we have the map and the route we have our plan. But when you try to follow it, you discover all the things that make it difficult. A copse of trees was cleared. A farmer moved a stile. A path is impassable because of thorns or mud.&lt;/p&gt;

&lt;p&gt;The route very quickly becomes a series of small decisions and adjustments as you navigate around obstacles. You can&apos;t make those adjustments with a static plan. You &lt;em&gt;can&lt;/em&gt; make them because you have practised making the route. You know why it is the route and so you can adapt it to changing conditions.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The actual plan is the starting point. The thing we thought would meet our goal before reality hit us over the head.
What you learn on the way will often change your plan. Ignoring that is as silly as not having any goal to head towards.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1 id=&quot;please-no-more-metaphor&quot;&gt;Please no more metaphor&lt;/h1&gt;

&lt;p&gt;In all of these scenarios the planning doesn&apos;t get you anything without execution - no point planning a hike and not walking. But the planning has to happen to make the route any good.&lt;/p&gt;

&lt;p&gt;That&apos;s what good teams do. They have a series of nested loops and they check themselves at each point. Short term loops like daily standups that focus on the next few hours. And long term loops like quarterly planning that focus on the next few months.&lt;/p&gt;

&lt;p&gt;You have to plan but be receptive to changing plan. If you stuck to a plan despite what you learn you&apos;ll get stuck in  a bog, but if you never plan you wouldn&apos;t avoid any.&lt;/p&gt;
</description>
				<pubDate>Fri, 13 Mar 2026 10:00:00 +0000</pubDate>
				
				<link>
					https://pauldambra.dev/2026/03/13/why-plan.html
				</link>
				<guid isPermaLink="true">
					https://pauldambra.dev/2026/03/13/why-plan.html
				</guid>
			</item>
		
			<item>
				<title>How I use LLMs? - four</title>
				<description>&lt;p&gt;I remain very cynical about the current high-water mark for LLMs and augmented coding… but at the same time I use them every day and I don&apos;t think they&apos;re finished improving.&lt;/p&gt;

&lt;p&gt;Let&apos;s &lt;del&gt;growth hack blog visitor numbers&lt;/del&gt; record how I use them today as a little reflection on where I think they work and where they don&apos;t. Something I can revisit as the tech (and my skill with it) improves&lt;/p&gt;

&lt;p&gt;This is update number three, or entry number four, depending on how you want to count it.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/07/how-i-use-llms.html&quot;&gt;the first entry is here&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2025/10/how-i-use-llms-2.html&quot;&gt;the second entry is here&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2026/01/how-i-use-llms-3.html&quot;&gt;the third entry is here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;in-todays-edition-of-ai-hot-takes&quot;&gt;in today&apos;s edition of AI hot takes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;basically never braincode&lt;/li&gt;
  &lt;li&gt;it&apos;s still about your brain&lt;/li&gt;
  &lt;li&gt;hot take&lt;/li&gt;
&lt;/ul&gt;

&lt;!--more--&gt;

&lt;h1 id=&quot;first-a-necessary-but-brief-diversion-into-how-i-use-tools-generally&quot;&gt;First, a necessary but brief diversion into how I use tools generally&lt;/h1&gt;

&lt;p&gt;I was largely self-taught as a developer and (after vbscript 😱) I started with DotNet. I found JetBrains Resharper early on and never looked back. The assistance in the IDE to write, refactor, and improve code was game-changing. I don&apos;t begrudge anybody any tool they want to use to level-up. Wanna use a graphical git client, or emacs, or anything else… go for it, go make cool things&lt;/p&gt;

&lt;p&gt;Because of that entry to the industry I&apos;m also not super keen on VSCode (you love it? great, see above, you do you, go make cool things). I&apos;m too used to clever interventions helping me and VSCode is too barebones (and so much slower than SublimeText)&lt;/p&gt;

&lt;p&gt;So, I &lt;em&gt;like&lt;/em&gt; having tools directly involved in my workflow. I learned LINQ more quickly and more thoroughly because I had resharper prompting me inline, at write-time: &quot;hey, why not like this?&quot;&lt;/p&gt;

&lt;h1 id=&quot;basically-never-braincode&quot;&gt;basically never braincode&lt;/h1&gt;

&lt;p&gt;Recent improvements to agents and their UX has meant I only have to actively write code when I choose to. It would be possible to completely work via agents.&lt;/p&gt;

&lt;p&gt;It really is only necessary to &quot;braincode&quot; when it is easier for me to sketch a solution than to prompt an LLM to write it. Even then I would quickly fall back to &quot;hey agent, here&apos;s what i mean. finish this off&quot;&lt;/p&gt;

&lt;p&gt;Having the agent in slack is chef&apos;s-kiss-dot-reacji. Someone says &quot;hey, should the foo be wider&quot; and you reply &quot;@agent, make the foo wider&quot; Like having a super eager and precocious intern sat waiting for the next task.&lt;/p&gt;

&lt;h1 id=&quot;its-still-about-your-brain&quot;&gt;it&apos;s still about your brain&lt;/h1&gt;

&lt;p&gt;You&apos;ll see a lot of people saying variations on &quot;it was never about the code&quot; or &quot;it was always about what you chose to make not how you made it&quot;. And tbh I 90% agree with them. The code was &lt;em&gt;a&lt;/em&gt; hard part but it wasn&apos;t the only hard part.&lt;/p&gt;

&lt;p&gt;We&apos;ve automated a big chunk of code understanding and generation but we still need to choose the direction. Reaching through the system of systems you can affect to try and deliver value.&lt;/p&gt;

&lt;p&gt;Astronaut-with-pistol-dot-meme&lt;/p&gt;

&lt;h1 id=&quot;hot-take&quot;&gt;hot take&lt;/h1&gt;

&lt;p&gt;Code is no longer for humans.&lt;/p&gt;

&lt;p&gt;We are seeing the end of the era of code needing to be in a format that humans can directly parse. Languages are already abstractions on top of what is really being executed. The format being determined by the available technology to let humans create code. And by the needs of the humans at understanding the code.&lt;/p&gt;

&lt;p&gt;In a world where we can say &quot;hey robot, how does the Foo component manage the ClinkExpander interactions&quot;. It no longer matters what the underlying code looks like.&lt;/p&gt;

&lt;p&gt;My expectation is that there are already folk working on a storage format that is accessible to agents but loses the trade-offs it had to make for human readability. Maybe a binary DAG format since we don&apos;t  really need the translation from an abstract syntax tree in memory into text anymore.&lt;/p&gt;

&lt;p&gt;If the agents keep getting better, my expectation is that I need to be able to ask for representations of the code that help me and them interact with it way more than I need a flat text file.&lt;/p&gt;
</description>
				<pubDate>Tue, 10 Mar 2026 08:00:00 +0000</pubDate>
				
				<link>
					https://pauldambra.dev/2026/03/how-i-use-llms-4.html
				</link>
				<guid isPermaLink="true">
					https://pauldambra.dev/2026/03/how-i-use-llms-4.html
				</guid>
			</item>
		
			<item>
				<title>I shipped 1000 PRs in a year, AMA</title>
				<description>&lt;p&gt;I shipped 1000 PRs in the last 12 months at &lt;a href=&quot;https://posthog.com&quot;&gt;PostHog&lt;/a&gt;. And someone asked me how I do it… let&apos;s see if i know.&lt;/p&gt;

&lt;h3 id=&quot;preamble&quot;&gt;preamble&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;yes, yes, I know you don&apos;t think I should count PRs&lt;/li&gt;
  &lt;li&gt;when a measure becomes a target it stops being a useful measure&lt;/li&gt;
  &lt;li&gt;embrace yourself&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;advice&quot;&gt;advice&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;it is running not cycling&lt;/li&gt;
  &lt;li&gt;small steps ftw&lt;/li&gt;
  &lt;li&gt;practice like a jazz musician&lt;/li&gt;
  &lt;li&gt;love making things&lt;/li&gt;
  &lt;li&gt;one more iteration&lt;/li&gt;
&lt;/ul&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;yes-yes-i-know-you-dont-think-i-should-count-prs&quot;&gt;yes, yes, I know you don&apos;t think I should count PRs&lt;/h2&gt;

&lt;p&gt;So, first something important…&lt;/p&gt;

&lt;p&gt;Counting PRs is a very poor metric for measuring progress. Someone who ships 10 PRs has not provided a guaranteed ten times the value of someone who ships one PR.&lt;/p&gt;

&lt;p&gt;I&apos;m not telling you to count PRs. Or to worship the github tile graph.&lt;/p&gt;

&lt;p&gt;But….&lt;/p&gt;

&lt;p&gt;Yes, weighing yourself is a bad way of checking if your last meal was healthy. 
Yes, merging a PR is a bad way of checking if you just provided any value.&lt;/p&gt;

&lt;p&gt;But &lt;em&gt;not weighing yourself&lt;/em&gt; is a great way to put on weight without noticing.&lt;/p&gt;

&lt;p&gt;And &lt;em&gt;not measuring what you ship&lt;/em&gt; is a great way to accidentally ship less value.&lt;/p&gt;

&lt;p&gt;However………..&lt;/p&gt;

&lt;h1 id=&quot;when-a-measure-becomes-a-target-it-stops-being-a-useful-measure-charles-goodhart-in-preparation-for-my-birth&quot;&gt;&quot;when a measure becomes a target it stops being a useful measure&quot;: Charles Goodhart in preparation for my birth&lt;/h1&gt;

&lt;p&gt;Taking a look at how many PRs or lines of code people ship &lt;em&gt;is&lt;/em&gt; a measure of what people are doing. It&apos;s vague and lossy but it&apos;s a starting point.&lt;/p&gt;

&lt;p&gt;And, yes, of course, someone could ship lots of PRs but they&apos;re no good or only ship one thing a week but it&apos;s super impactful.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So even if you use it as a measure it should not be your only measure of progress&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But, importantly, if you tell people &quot;number of PRs is related to promotion review&quot; then they &lt;em&gt;will damn well make sure they ship more PRs&lt;/em&gt; without that being related to actual value to users.&lt;/p&gt;

&lt;p&gt;It is no longer a useful measure of progress &lt;em&gt;because&lt;/em&gt; it became a target.&lt;/p&gt;

&lt;h1 id=&quot;embrace-yourself&quot;&gt;embrace yourself&lt;/h1&gt;

&lt;p&gt;didn&apos;t that feel nice?&lt;/p&gt;

&lt;p&gt;no, not like that&lt;/p&gt;

&lt;p&gt;Throughout my career I&apos;ve been told I spin too many plates and to try and reduce my work in progress. I tried really hard to lower personal WIP and it was sooooo much effort.&lt;/p&gt;

&lt;p&gt;My colleague Marius at PostHog said (roughly): &quot;you always apologise for spinning plates, but you&apos;re good at it. why don&apos;t you try to get better?&quot;&lt;/p&gt;

&lt;p&gt;So, I&apos;ve done that. I&apos;ve accepted that I am easily distracted and that I will start many things. And I&apos;ve concentrated on getting better at making sure the plates I&apos;m spinning are moving forward. And throwing away the ones that are just distraction.&lt;/p&gt;

&lt;p&gt;I&apos;ve &lt;em&gt;started&lt;/em&gt; more than 1000 PRs but recognised the ones that aren&apos;t going anywhere.&lt;/p&gt;

&lt;p&gt;For &lt;em&gt;you this will look different&lt;/em&gt;. You might have to not listen to music with lyrics. You might need to make sure you go for a walk in the morning. Or plan blocks of the day with zero distractions.&lt;/p&gt;

&lt;p&gt;My advice would be - stop listening to advice that makes you fight your nature. Just because someone else wants to work on one thing at a time doesn&apos;t mean you should. And just because I can have 23 open PRs right now and be on top of my work doesn&apos;t mean you should.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Ok, now that I&apos;ve told you to not listen to other people&apos;s advice.&lt;/p&gt;

&lt;p&gt;I will dress in a robe, walk down from the holy mountain of the github tile graph, and hand down my advice of  what I believe contributes to my productivity:&lt;/p&gt;

&lt;h1 id=&quot;it-is-running-not-cycling&quot;&gt;it is running not cycling&lt;/h1&gt;

&lt;p&gt;I used to cycle a lot and having struggled up a big hill it was super cool to stop pedalling and coast down the other side. Then I started running, and having struggled up the big hill I discovered I still had to put in effort to run downhill. Even if gravity was helping me if I stopped moving my legs I stopped moving.&lt;/p&gt;

&lt;p&gt;Delivering valuable software to users is running, not cycling. If you stop shipping your momentum is quickly lost.&lt;/p&gt;

&lt;p&gt;It is up to you to move your legs. To bring the appropriate intensity and effort.&lt;/p&gt;

&lt;p&gt;Want to ship a lot? Just do the work…&lt;/p&gt;

&lt;h1 id=&quot;small-steps-ftw&quot;&gt;small steps ftw&lt;/h1&gt;

&lt;p&gt;I have seen time and time again that small, concrete steps that you can explain, complete, and measure are the best way to make progress.&lt;/p&gt;

&lt;p&gt;See &quot;But why regularly measure&quot; in &lt;a href=&quot;https://pauldambra.dev/2018/01/direction.html&quot;&gt;one of my earlier weblogs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you feel stuck with the coding, break it into a smaller piece. Not sure how to do the work? Figure out what the simple pieces are and start with those. If the remaining pieces are &quot;too big&quot;  or &quot;too hard&quot; figure out how to change the system so the solution changes and is smaller or easier.&lt;/p&gt;

&lt;p&gt;Often, I will make one big PR that covers the whole change to prove it works. Then break that into smaller pieces that refer back to the whole. To make it easier to review or deploy.&lt;/p&gt;

&lt;h1 id=&quot;practice-like-a-jazz-musician&quot;&gt;practice like a jazz musician&lt;/h1&gt;

&lt;p&gt;When I was younger I was labouring under the misapprehension that I was going to change the world of music. And I was lucky to spend some time with some people who were amazing musicians.&lt;/p&gt;

&lt;p&gt;They would practice frequently and deliberately. They were purposefully aiming to get better at the little things that made them better at the whole.&lt;/p&gt;

&lt;p&gt;Later I spent time with folks talking about the craft of software engineering. Practising skills like TDD and refactoring.&lt;/p&gt;

&lt;p&gt;The little things that make you better at the whole.&lt;/p&gt;

&lt;p&gt;Ah, but Paul this new world of agentic software engineering makes skills like that outdated and unnecessary.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/andrej-karpathy-programming-is-changing-so-fast-v0-xs431byeeikd1.webp&quot; alt=&quot;Andrej Karpathy quote&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I love this quote from Andrej Karpathy&lt;/p&gt;

&lt;p&gt;And I&apos;ve found the same… If the prompt is important then knowing what to prompt is important.&lt;/p&gt;

&lt;p&gt;And when the prompt isn&apos;t enough to get the job done being able to sketch enough code to give a better start to the agent is important.&lt;/p&gt;

&lt;p&gt;In both cases you actually have to know what you want. And practicing what good software, or good architecture looks like is still a differentiator.&lt;/p&gt;

&lt;p&gt;I&apos;d add practicing writing good prompts and managing context well as new skills that it is worth practicing.&lt;/p&gt;

&lt;p&gt;Be purposeful about improving your ability as a person that provides value through creating and changing software. Watch what you do, see what makes it better, double down on those things.&lt;/p&gt;

&lt;p&gt;Avoid through practice and diligence ever doing the wrong thing harder.&lt;/p&gt;

&lt;h1 id=&quot;love-making-things&quot;&gt;love making things&lt;/h1&gt;

&lt;p&gt;I make things all the time. I am sad when I don&apos;t get to make things. This is a vocation for me.&lt;/p&gt;

&lt;p&gt;Nobody points at the musician that plays music for the sheer joy of it and says:  &quot;ha, look at that loser. playing music even though they&apos;re not getting paid for it&quot;&lt;/p&gt;

&lt;p&gt;So, in the evening when I&apos;ve finished getting the kids to bed. I sit and fiddle with software while I watch TV or listen to music.&lt;/p&gt;

&lt;p&gt;I am incredibly lucky to have found something that gives me joy and makes me money.&lt;/p&gt;

&lt;p&gt;Not a vocation for you - ok, cool. Live your life as you see fit. But one of the ways that &lt;em&gt;I&lt;/em&gt; am productive is that this is a joyful vocation. Also, if software is not your vocation, why the heck are you reading about how to ship 1000 PRs in twelve months?! Go, ride horses or fix gates or whatever the thing is that &lt;em&gt;does&lt;/em&gt; bring you joy 💖&lt;/p&gt;

&lt;h1 id=&quot;one-more-iteration&quot;&gt;one more iteration&lt;/h1&gt;

&lt;p&gt;It feels like it goes without saying that iteration is good… but…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Iteration is the process of repeating a set of steps or instructions multiple times, often to reach a specific goal, solve a problem, or improve a result.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&quot;One more iteration&quot; is a phrase that Tim at work uses to push us to think about the quality of what we build…&lt;/p&gt;

&lt;p&gt;OK, you did something. Stop and ask: &quot;am I really finished?&quot;&lt;/p&gt;

&lt;p&gt;How do &lt;em&gt;I&lt;/em&gt; know if I&apos;m really finished?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;are people using it?&lt;/li&gt;
  &lt;li&gt;do they like it?&lt;/li&gt;
  &lt;li&gt;did it move the needle the way I expected?&lt;/li&gt;
  &lt;li&gt;would I know if it was broken?&lt;/li&gt;
  &lt;li&gt;now it is functional does it need to also be delightful?&lt;/li&gt;
  &lt;li&gt;does it help me see what should come next?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think this sits really wonderfully with &quot;small steps ftw&quot;. Iteration of large blocks of work is inherently slower than iteration of small steps.&lt;/p&gt;

&lt;p&gt;The benefit of small steps is you can be nimble in response to what you learn.&lt;/p&gt;

&lt;p&gt;Worse… Something that takes a month to put together will build up a lot of weight in your subconscious. It&apos;s hard to throw it away or change it because of the time you have sunk into it. Not only are you less nimble, you&apos;re less likely to correct your course.&lt;/p&gt;

&lt;h3 id=&quot;a-concrete-example-of-how-i-do-small-steps-and-iteration&quot;&gt;A concrete example of how i do small steps and iteration…&lt;/h3&gt;

&lt;p&gt;A customer reported they were unhappy with filtering in our tool. It was multiple clicks to get to the point where they had type-ahead search. And that was frustrating for them.&lt;/p&gt;

&lt;p&gt;Frustration is no bueno, so I started spinning a new plate. I mocked up a solution for them very quickly and shared a video.&lt;/p&gt;

&lt;p&gt;They loved it.&lt;/p&gt;

&lt;p&gt;BUT I OPTIMISE FOR ITERATION AND SO I DID NOT SIMPLY SHIP IT&lt;/p&gt;

&lt;p&gt;I wrapped it in a flag and released it just for our team and that specific user that I was talking to&lt;/p&gt;

&lt;p&gt;I got fast feedback that they did not like it. They liked the description, and they liked the demo. But what people think they will like and use is not always what they will actually like and use.&lt;/p&gt;

&lt;p&gt;In practice by optimising for one journey through the filtering UX I had made other journeys harder. I wouldn&apos;t have known that if I didn&apos;t think about how to release this in a way that meant I could check if it was any good.&lt;/p&gt;

&lt;p&gt;In the end, this took four attempts to get right.&lt;/p&gt;

&lt;p&gt;And now I have rolled out the flag to all users. After an experiment over those multiple iterations showed folk came back and searched more using the new versions of this change.&lt;/p&gt;

&lt;p&gt;But rolling out the flag isn&apos;t the end of the work. I&apos;m now working on tidying up the code that was there so that I could dual run and measure the change. I&apos;ve got to finish updating the documentation. I need to check that users behaviour really does change over coming weeks and react to that. So there are still more PRs to come from this work.&lt;/p&gt;

&lt;h1 id=&quot;an-inspirational-sign-off&quot;&gt;An inspirational sign-off?&lt;/h1&gt;

&lt;p&gt;The value here isn&apos;t that I shipped lots of PRs. The value is that I work in small steps, and I check direction in between them. That I can loop between what I learn and what I can do next to learn more.&lt;/p&gt;

&lt;p&gt;How you do that might be different, perfect! But my advice: do that.&lt;/p&gt;
</description>
				<pubDate>Wed, 11 Feb 2026 08:00:00 +0000</pubDate>
				
				<link>
					https://pauldambra.dev/2026/02/deca-hundy.html
				</link>
				<guid isPermaLink="true">
					https://pauldambra.dev/2026/02/deca-hundy.html
				</guid>
			</item>
		
			<item>
				<title>How I do user interviews</title>
				<description>&lt;p&gt;I&apos;ve been lucky to watch some excellent engineers, product managers, and user researchers carry out user interviews.&lt;/p&gt;

&lt;p&gt;And had the opportunity at PostHog to practice that skill. I&apos;ve explained all this a couple of times to different people, so thought I&apos;d write it down.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;set expectations&lt;/li&gt;
  &lt;li&gt;write down quotes&lt;/li&gt;
  &lt;li&gt;show &amp;gt; tell&lt;/li&gt;
  &lt;li&gt;compound interest&lt;/li&gt;
  &lt;li&gt;sometimes stop&lt;/li&gt;
  &lt;li&gt;be a Labrador&lt;/li&gt;
  &lt;li&gt;this is the redesign that will kill the the Facebook&lt;/li&gt;
&lt;/ul&gt;

&lt;!--more--&gt;

&lt;h1 id=&quot;set-expectations&quot;&gt;set expectations&lt;/h1&gt;

&lt;p&gt;Whenever I&apos;m starting a user interview I try to set very clear expectations for the person. I will say something like:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Thanks for your time today. And importantly it&apos;s your time. So, while I&apos;m mostly interested in $feature_X if you want to talk about other parts of the product, that&apos;s fine - we can cover the things you&apos;re interested in. I&apos;d really love you to share your screen so I can see what you&apos;re doing as well as hear you talk about it. To start out can you show me how you use $feature_X?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You might want to constrain what they talk about to a specific feature or topic. So your intro would be different. But I find it&apos;s generally better to hear what they&apos;re thinking and feeling even if it doesn&apos;t relate to what I&apos;m focused on.&lt;/p&gt;

&lt;h1 id=&quot;write-down-quotes&quot;&gt;write down quotes&lt;/h1&gt;

&lt;p&gt;I had the great privilege of working with user interviewers with a &lt;a href=&quot;https://www.gov.uk/government/organisations/government-digital-service/about&quot;&gt;GDS&lt;/a&gt; background and was always impressed by their skill.&lt;/p&gt;

&lt;p&gt;One thing I learned from the wonderful &lt;a href=&quot;https://www.linkedin.com/in/simon-hurst-a144b426/&quot;&gt;Simon Hurst&lt;/a&gt; was to write down quotes when you&apos;re taking notes. And to editorialise them later.&lt;/p&gt;

&lt;p&gt;You&apos;re aiming to capture the user&apos;s statement not what you thought about it at the time.&lt;/p&gt;

&lt;p&gt;The benefit of having the quote is that you don&apos;t have to remember what they said later when you&apos;re grouping.&lt;/p&gt;

&lt;p&gt;This is also a great way to introduce colleagues to the process. They can shadow your user interviews and capture quotes as they listen.&lt;/p&gt;

&lt;p&gt;Of course, if you&apos;re doing these remotely it&apos;s trivial to record or transcribe the interview. But I still think there&apos;s value in going through and pulling out the quotes to capture them. I love to talk to a team and find that they know their users by name and can refer back to specific quotes.&lt;/p&gt;

&lt;p&gt;You might worry about acting on anecdotal evidence, and you should test and measure your changes, but that kind of human understanding will guide you to better decisions.&lt;/p&gt;

&lt;h1 id=&quot;show--tell&quot;&gt;show &amp;gt; tell&lt;/h1&gt;

&lt;p&gt;It is super powerful to get users to show you what they mean.&lt;/p&gt;

&lt;p&gt;If you&apos;re interviewing someone and they say &quot;I wish your software let me do Y&quot; (sometimes the software already does do that). The amazing &lt;a href=&quot;http://neilkakkar.com/&quot;&gt;Neil Kakkar&lt;/a&gt; would ask &quot;can you show me where you&apos;d look in the UI to do that?&quot;&lt;/p&gt;

&lt;p&gt;Whether the feature exists or not already, you now know what the UI for discovering it might look like.&lt;/p&gt;

&lt;p&gt;Or a user will say something like &quot;competitor X does this better.&quot; the important response is to ask &quot;can you show me how to do it in competitor X?&quot;. Sometimes you&apos;ll see that it really is better, sometimes that it is just more familiar to them in the other UI.&lt;/p&gt;

&lt;p&gt;The insight isn&apos;t that you should copy what the competitor does. You should try to understand why they prefer it, across multiple users this will help you understand how to position that feature or introduce that user flow.&lt;/p&gt;

&lt;h1 id=&quot;compound-interest&quot;&gt;compound interest&lt;/h1&gt;

&lt;p&gt;Setting up and running user interviews can take a lot of time. And so people often skip them. But 1 interview is better than none. 2 is better than 1. And so on.&lt;/p&gt;

&lt;p&gt;And this compounds over time. Before you know it you&apos;ve met tens or hundreds of users.&lt;/p&gt;

&lt;p&gt;The knowledge you accumulate about your users (individually and organisationally) will give you instincts on what to build and how to build it.&lt;/p&gt;

&lt;p&gt;Decide how many interviews you want to run each month. And stick to it… there&apos;s always something more to learn.&lt;/p&gt;

&lt;h1 id=&quot;sometimes-stop&quot;&gt;sometimes stop&lt;/h1&gt;

&lt;p&gt;Sometimes you think it&apos;s going to be a user interview. But it turns out this is a user that&apos;s unhappy with the product. Or doesn&apos;t understand the platform and just needs help. I used to struggle through a bunch of open questions trying to &quot;stay in interview mode&quot;.&lt;/p&gt;

&lt;p&gt;Then I observed &lt;a href=&quot;https://x.com/annikaze_&quot;&gt;Annika Schmid&lt;/a&gt; on one call recognise it for what it was and shift into training/explaining mode. It already wasn&apos;t going to be a great user interview. So, may as well make it a good experience for the user.&lt;/p&gt;

&lt;h1 id=&quot;be-a-labrador&quot;&gt;be a Labrador&lt;/h1&gt;

&lt;p&gt;Importantly, you are there to learn. So, you need to be as interested in their opinions as a Labrador is in cheese.&lt;/p&gt;

&lt;p&gt;&quot;I&apos;d love to know more about…&quot;
&quot;Can you show me…&quot;
&quot;Oh wow, that&apos;s  not how we expected folk to use this! Can you dive into…&quot;&lt;/p&gt;

&lt;p&gt;One thing I&apos;ve picked up from the fabulous &lt;a href=&quot;https://github.com/EDsCODE&quot;&gt;Eric Duong&lt;/a&gt; is the phrase &quot;out of interest…&quot;&lt;/p&gt;

&lt;p&gt;Not just in user interviews but in every customer interaction. You can drop it in… &quot;Ah, it doesn&apos;t work like that… you can workaround by x, y, and z… out of interest what does it unlock for you if we support this?&quot;&lt;/p&gt;

&lt;p&gt;I love that framing. &quot;Out of interest what does it unlock for you if we support this?&quot;&lt;/p&gt;

&lt;p&gt;That user might not commit to 30 minutes for a user interview. But I bet they&apos;ll spend 30 seconds replying to a slack message. And since these things compound over time, you&apos;ll learn a lot from accruing all these tiny insights.&lt;/p&gt;

&lt;h1 id=&quot;this-is-the-redesign-that-will-kill-the-facebook&quot;&gt;this is the redesign that will kill the Facebook&lt;/h1&gt;

&lt;p&gt;Related to &quot;competitor X does it better&quot; i remember at least three occasions where Facebook changed their UI and everyone was wild in the comments talking about how it would kill Facebook.&lt;/p&gt;

&lt;p&gt;Twitter changing the star to a heart &lt;a href=&quot;https://www.bbc.co.uk/news/newsbeat-34713811&quot;&gt;made the national news&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With enough users you&apos;ll discover that you will get negative feedback no matter what you do. And if you chase every user, you&apos;ll end up with a product that no one wants.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/homers-car.webp&quot; alt=&quot;Homer&apos;s car&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Even though, if you don&apos;t listen to the users, you&apos;ll end up with a product that no one wants.&lt;/p&gt;

&lt;p&gt;Gathering all this feedback isn&apos;t so that you can just make all the changes people tell you they want. It&apos;s to get an instinct for how and why they use your product. You will be asked for conflicting things and without the gut-feeling for what users want, you&apos;ll end up with Homer&apos;s car.&lt;/p&gt;
</description>
				<pubDate>Wed, 11 Feb 2026 08:00:00 +0000</pubDate>
				
				<link>
					https://pauldambra.dev/2026/02/how-i-do-user-interviews.html
				</link>
				<guid isPermaLink="true">
					https://pauldambra.dev/2026/02/how-i-do-user-interviews.html
				</guid>
			</item>
		
			<item>
				<title>How I use LLMs? - three</title>
				<description>&lt;p&gt;I remain very cynical about the current high-water mark for LLMs and augmented coding… but at the same time I use them every day and I don&apos;t think they&apos;re finished improving.&lt;/p&gt;

&lt;p&gt;Let&apos;s &lt;del&gt;growth hack blog visitor numbers&lt;/del&gt; record how I use them today as a little reflection on where I think they work and where they don&apos;t. Something I can revisit as the tech (and my skill with it) improves&lt;/p&gt;

&lt;p&gt;This is update number two, or entry number three, depending on how you want to count it.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2025/07/how-i-use-llms.html&quot;&gt;the first entry is here&lt;/a&gt;
&lt;a href=&quot;/2026/01/how-i-use-llms-2.html&quot;&gt;the second entry is here&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;XP pedant agent&lt;/li&gt;
  &lt;li&gt;primarily using LLMs&lt;/li&gt;
  &lt;li&gt;throw away way more work&lt;/li&gt;
  &lt;li&gt;be very strict with what i &lt;em&gt;do&lt;/em&gt; type&lt;/li&gt;
  &lt;li&gt;i approach understanding code differently&lt;/li&gt;
&lt;/ul&gt;

&lt;!--more--&gt;

&lt;h1 id=&quot;first-a-necessary-but-brief-diversion-into-how-i-use-tools-generally&quot;&gt;First, a necessary but brief diversion into how I use tools generally&lt;/h1&gt;

&lt;p&gt;I was largely self-taught as a developer and (after vbscript 😱) I started with DotNet. I found JetBrains Resharper early on and never looked back. The assistance in the IDE to write, refactor, and improve code was game-changing. I don&apos;t begrudge anybody any tool they want to use to level-up. Wanna use a graphical git client, or emacs, or anything else… go for it, go make cool things&lt;/p&gt;

&lt;p&gt;Because of that entry to the industry I&apos;m also not super keen on VSCode (you love it? great, see above, you do you, go make cool things). I&apos;m too used to clever interventions helping me and VSCode is too barebones (and so much slower than SublimeText)&lt;/p&gt;

&lt;p&gt;So, I &lt;em&gt;like&lt;/em&gt; having tools directly involved in my workflow. I learned LINQ more quickly and more thoroughly because I had resharper prompting me inline, at write-time: &quot;hey, why not like this?&quot;&lt;/p&gt;

&lt;h1 id=&quot;xp-pedant-agent&quot;&gt;XP pedant agent&lt;/h1&gt;

&lt;p&gt;I love the &lt;a href=&quot;https://wiki.c2.com/?XpSimplicityRules&quot;&gt;XP simplicity rules&lt;/a&gt; for guiding decision making…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Passes all the tests.&lt;/li&gt;
  &lt;li&gt;Expresses every idea that we need to express.&lt;/li&gt;
  &lt;li&gt;Says everything OnceAndOnlyOnce.&lt;/li&gt;
  &lt;li&gt;Has no superfluous parts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I like that they&apos;re in tension with each other.&lt;/p&gt;

&lt;p&gt;I&apos;ve added them to my &lt;a href=&quot;https://github.com/pauldambra/dotfiles/blob/main/ai/CLAUDE.md&quot;&gt;AGENTS.md&lt;/a&gt; and if it forgets I can prompt it &quot;hey, apply the simplicity rules&quot;.&lt;/p&gt;

&lt;p&gt;Often the change it makes is the one I would have manually made.&lt;/p&gt;

&lt;h1 id=&quot;primarily-using-llms&quot;&gt;Primarily using LLMs&lt;/h1&gt;

&lt;p&gt;Over the last three months particularly the capability of LLMs has transformed. I can now go whole days mostly prompting an LLM and writing only a fraction of the code myself. This is… fine.&lt;/p&gt;

&lt;p&gt;I&apos;ve been working on super complex, tricky to find memory leak problems. I would not have had the patience to notice some of the things that the robot can when i provide it with context from my investigations.&lt;/p&gt;

&lt;p&gt;And while it&apos;s working on the next step I can be improving my investigation, or catching up on Slack, or taking my kids to school.&lt;/p&gt;

&lt;p&gt;I don&apos;t feel like I&apos;ve lost anything by not (always) typing out the code directly. And since &lt;a href=&quot;https://github.com/pauldambra/dotfiles/blob/main/ai/CLAUDE.md&quot;&gt;I taught the robot some extreme programming techniques&lt;/a&gt;, i find i don&apos;t need to re-work much at all.&lt;/p&gt;

&lt;p&gt;I genuinely didn&apos;t think I&apos;d switch this much… and like all sticky tools I didn&apos;t have to think about it. The tool hooked me.&lt;/p&gt;

&lt;p&gt;That said… i don&apos;t like vibe coding… I&apos;m not asleep at the wheel and do care about the diff that&apos;s being generated. So I feel slightly vindicated by this research from Anthropic https://www.anthropic.com/research/AI-assistance-coding-skills&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In a randomized controlled trial, we examined 1) how quickly software developers picked up a new skill (in this case, a Python library) with and without AI assistance; and 2) whether using AI made them less likely to understand the code they’d just written. 
We found that using AI assistance led to a statistically significant decrease in mastery.
…
Importantly, using AI assistance didn’t guarantee a lower score. How someone used AI influenced how much information they retained.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1 id=&quot;throw-away-way-more-work&quot;&gt;throw away way more work&lt;/h1&gt;

&lt;p&gt;Since I didn&apos;t type it, I don&apos;t feel invested. I dump a prompt in. Come back, see what came out. And sometimes I just throw it away. It doesn&apos;t help as much as I expected, or a UI change doesn&apos;t look as good as I hoped.&lt;/p&gt;

&lt;p&gt;Without feeling invested in the creation I am a little more rational about whether to throw it away.&lt;/p&gt;

&lt;p&gt;It&apos;s cheap to do many things at once and keep the useful things.&lt;/p&gt;

&lt;h1 id=&quot;be-very-strict-with-what-i-do-type&quot;&gt;be very strict with what I &lt;em&gt;do&lt;/em&gt; type&lt;/h1&gt;

&lt;p&gt;This is an addition to &quot;manage context&quot;.&lt;/p&gt;

&lt;p&gt;Sometimes I find myself writing a huge prompt. I have low tolerance for this. Or I find the task is spinning and churning and going nowhere. So, instead, when I recognise that I stop, I clear the prompt, and I spike the work. Then when I have a good enough sketch I point the robot at the changes and say &quot;hey, like this&quot;. I believe we do understand some problems better through trying to solve them.&lt;/p&gt;

&lt;p&gt;The robot is still more stupid than it is clever. So, giving it code is a good way to clever it up.&lt;/p&gt;

&lt;p&gt;It is still valuable to be a decent software engineer. But it might be more valuable to be a decent software engineer who dumps a sketch into an LLM. (if it isn&apos;t now, and they can keep improving, then it will be soon)&lt;/p&gt;

&lt;h1 id=&quot;i-approach-understanding-code-differently&quot;&gt;I approach understanding code differently&lt;/h1&gt;

&lt;p&gt;This one is difficult for me to accept, but it&apos;s snuck up on me and over the last few months changed how I work.&lt;/p&gt;

&lt;p&gt;The cost of writing code is falling &lt;em&gt;and&lt;/em&gt; the cost of understanding code is falling.&lt;/p&gt;

&lt;p&gt;When the cost of a thing fundamentally changes, you have to change your approach.&lt;/p&gt;

&lt;p&gt;&quot;Hey robot, write a script to validate the blah does thingy (or not) when the wotsit is twanged&quot;&lt;/p&gt;

&lt;p&gt;&quot;Hey robot, why does the clinkexpander accept a boolean?&quot;&lt;/p&gt;

&lt;p&gt;&quot;Hey robot, how does the clinkexpander work?&quot;&lt;/p&gt;

&lt;p&gt;&quot;Hey robot, what does the clinkexpander actually do?&quot;&lt;/p&gt;

&lt;p&gt;Tasks that would have taken me hours or days or weeks in the past are genuinely done in minutes now.&lt;/p&gt;

&lt;p&gt;I&apos;ve spent a big chunk of time recently feeding heap snapshots to the robot. I can only give huge thanks I&apos;ve not had to manually grok this myself.&lt;/p&gt;

&lt;p&gt;Is the robot perfect? No. not even.&lt;/p&gt;

&lt;p&gt;Is the robot a good software engineer? No. not even.&lt;/p&gt;

&lt;p&gt;Is it silly to ignore the fact that the robot does not need to be perfect or good for it to be a fantastic tool?&lt;/p&gt;

&lt;p&gt;yes, veryeven.&lt;/p&gt;

&lt;p&gt;the game has changed. pandora&apos;s box is open. the robot is here to stay.&lt;/p&gt;

&lt;p&gt;It reminds me of once… I used to work with someone who had worked mostly with signal processing baked into hardware. Very painful to discover a bug after release. We were sat together and I changed a field in a JSON response. He asked in a mid-panic: &quot;but how many bytes will that add to the payload?&quot;. Genuinely confused, I said: &quot;I&apos;ve barely ever had to care… I don&apos;t think it matters&quot;&lt;/p&gt;

&lt;p&gt;We&apos;re on the verge of that kind of change. We&apos;re not there ffs but some point down the road someone is going to ask &quot;but isn&apos;t that AI slop&quot; and their colleague will answer, genuinely confused: &quot;yes, why?&quot;&lt;/p&gt;

&lt;p&gt;Will some of that software be bad? yes
always-has-been-dot-meme&lt;/p&gt;
</description>
				<pubDate>Fri, 30 Jan 2026 08:00:00 +0000</pubDate>
				
				<link>
					https://pauldambra.dev/2026/01/how-i-use-llms-3.html
				</link>
				<guid isPermaLink="true">
					https://pauldambra.dev/2026/01/how-i-use-llms-3.html
				</guid>
			</item>
		
			<item>
				<title>Things that a different me would have been tipped into psychosis by</title>
				<description>&lt;p&gt;&lt;img src=&quot;/images/prawn_face.png&quot; alt=&quot;prawn face&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There are a few memes (in the original sense) that have got stuck in my head. They feel like the beginning of madness. I&apos;m going to track them, to see how many I accumulate&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;water isn&apos;t real&lt;/li&gt;
  &lt;li&gt;old people are time travellers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of them feels like something that would tip a different me over the edge into madness.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h1 id=&quot;water-isnt-real&quot;&gt;Water isn&apos;t real&lt;/h1&gt;

&lt;p&gt;I could be easily convinced that water isn&apos;t real.&lt;/p&gt;

&lt;p&gt;Sit in a boat, look over the edge at the water.&lt;/p&gt;

&lt;p&gt;It&apos;s obviously CGI. Can&apos;t possibly be real.&lt;/p&gt;

&lt;h1 id=&quot;old-people-are-time-travellers&quot;&gt;Old people are time travellers&lt;/h1&gt;

&lt;p&gt;Whenever I&apos;ve had a baby (a common thing I&apos;ve done) I&apos;ll be walking with the baby in the pram, and very sleep deprived.&lt;/p&gt;

&lt;p&gt;An old person passing by will say something like: &quot;Oh, what a lovely baby&quot;. Some similar nice thing to that.&lt;/p&gt;

&lt;p&gt;In my sleep deprived state it once occurred to me that a very lucrative business - if time travel existed - would be to let you travel back and see your grandparent as a baby.&lt;/p&gt;

&lt;p&gt;Can&apos;t get that out of my head now. Whenever an old person is nice to me, i&apos;m a little odd with them… because at the back of my mind there&apos;s a voice saying &quot;that&apos;s exactly what a time traveller would say&quot;.&lt;/p&gt;
</description>
				<pubDate>Wed, 03 Dec 2025 08:00:00 +0000</pubDate>
				
				<link>
					https://pauldambra.dev/2025/12/avoiding-madness.html
				</link>
				<guid isPermaLink="true">
					https://pauldambra.dev/2025/12/avoiding-madness.html
				</guid>
			</item>
		
			<item>
				<title>How I use LLMs - two?</title>
				<description>&lt;p&gt;I remain very cynical about the current high-water mark for LLMs and augmented coding… but at the same time I use them every day and I don&apos;t think they&apos;re finished improving.&lt;/p&gt;

&lt;p&gt;Let&apos;s &lt;del&gt;growth hack blog visitor numbers&lt;/del&gt; record how I use them today as a little reflection on where I think they work and where they don&apos;t. Something I can revisit as the tech (and my skill with it) improves&lt;/p&gt;

&lt;p&gt;This is update number one, or entry number two, depending on how you want to count it. So, here are the changes in how I&apos;m using LLMs&lt;/p&gt;

&lt;p&gt;(we had a brownbag on this at work yesterday, so it&apos;s been on my mind)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2025/07/how-i-use-llms.html&quot;&gt;the first entry is here&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;manage context&lt;/li&gt;
  &lt;li&gt;track longer tasks in a structured file&lt;/li&gt;
  &lt;li&gt;smallest prompt that describes how you want to work&lt;/li&gt;
  &lt;li&gt;be sparing with auto-accept edits&lt;/li&gt;
&lt;/ul&gt;

&lt;!--more--&gt;

&lt;h1 id=&quot;first-a-necessary-but-brief-diversion-into-how-i-use-tools-generally&quot;&gt;First, a necessary but brief diversion into how I use tools generally&lt;/h1&gt;

&lt;p&gt;REMINDER: I don&apos;t begruge anybody any tool they want to use to level-up. Wanna use a graphical git client, or emacs, or anything else… go for it, go make cool things.&lt;/p&gt;

&lt;p&gt;You don&apos;t use LLMs, or not like this, cool… go make cool things.&lt;/p&gt;

&lt;p&gt;Because of that entry to the industry I&apos;m also not super keen on VSCode (you love it? great, see above, you do you, go make cool things). I&apos;m too used to clever interventions helping me and VSCode is too barebones (and so much slower than SublimeText)&lt;/p&gt;

&lt;p&gt;So, I &lt;em&gt;like&lt;/em&gt; having tools directly involved in my workflow. I learned LINQ more quickly and more thoroughly because I had resharper prompting me inline, at write-time: &quot;hey, why not like this?&quot;&lt;/p&gt;

&lt;h1 id=&quot;anything-removed-from-entry-one&quot;&gt;Anything removed from entry one?&lt;/h1&gt;

&lt;h2 id=&quot;being-your-army-of-interns&quot;&gt;Being your army of interns&lt;/h2&gt;

&lt;p&gt;I don&apos;t believe in having a personal WIP of one item in progress. So, I like that I can have a higher WIP without exhausting my own kreplets&lt;/p&gt;

&lt;p&gt;But… I find the background work is best as tasks like&lt;/p&gt;

&lt;p&gt;&quot;upgrade Jest to the next major version&quot;&lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;&quot;why is this component rendering too much&quot;&lt;/p&gt;

&lt;p&gt;very, very constrained yak shavey tasks.&lt;/p&gt;

&lt;p&gt;otherwise I find that the LLM needs a lot of attention to complete the task well, and so my kreplets are being used up - and because I&apos;m not doing the work I&apos;m learning more slowly.&lt;/p&gt;

&lt;h1 id=&quot;manage-context&quot;&gt;Manage context&lt;/h1&gt;

&lt;p&gt;I&apos;m pretty vicious about managing context. If I start a new task I&apos;ll clear the context completely. If I get even the slightest inkling that the LLM is going off on a tangent, I&apos;ll clear the context completely.&lt;/p&gt;

&lt;p&gt;It isn&apos;t thinking despite all the cognitive biases that make us think it is. It&apos;s just churning out tokens based on the tokens in its context. So, if the context gets screwey so does the output.&lt;/p&gt;

&lt;h1 id=&quot;longer-tasks-track-them-in-a-file&quot;&gt;Longer tasks, track them in a file&lt;/h1&gt;

&lt;p&gt;If we&apos;re doing a big change or exploring something complex. I tell it to make a markdown file with a to-do list and what we&apos;re working on.&lt;/p&gt;

&lt;p&gt;For example, i asked it to track down and edit every event listener in our front end. There are ~350 files it would need to touch. It regularly would partially edit around 30 of them and then we&apos;d hit a &quot;you&apos;re absolutely right&quot; loop.&lt;/p&gt;

&lt;p&gt;So, clear the context. And step 1 &quot;make a file with a markdown table of every logic.ts file that has an event listener in it&quot;.&lt;/p&gt;

&lt;p&gt;Some checks to be sure that was correct… and now step 2 &quot;for each line in the table {do the thing} and then update the table with the result&quot;.&lt;/p&gt;

&lt;p&gt;That was &lt;em&gt;way&lt;/em&gt; better&lt;/p&gt;

&lt;h1 id=&quot;smallest-prompt-i-can-get-away-with&quot;&gt;Smallest prompt I can get away with&lt;/h1&gt;

&lt;p&gt;I&apos;m not doing evals with my prompts so it&apos;s a little like some pagan weather magic ritural but I did add a custom prompt in my home directory. Which I believe is helping.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Approach to work

I like &quot;Simple code&quot; that means:

* Passes all the tests.
* Expresses every idea that we need to express.
* Says everything OnceAndOnlyOnce.
* has no superfluous parts

These rules are in conflict with each other. Sometimes to express every idea we can&apos;t say everything only once. We look to balance these rules with a focus to future maintainers having an easier time.

Also... it means we work in three stages

* make it work
* make it right
* make it fast

We should always pause and consider if the working code should be improved to make it simpler or to make it faster, but only once we&apos;re sure it works

# tests

* IMPORTANT prefer parameterized tests

# validating this file has been read

if i say &quot;cuckoo&quot;, you say &quot;Phil Haack has taught me well&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The cuckoo thing is useful to check if the file has been read at all.&lt;/p&gt;

&lt;p&gt;But, otherwise, I can now periodically prompt: &quot;ok, review the work so far using the simplicity rules and suggest improvements&quot;&lt;/p&gt;

&lt;p&gt;And it will write me a  mini-report that is much more like the type of self-review that I would write.&lt;/p&gt;

&lt;p&gt;It was also an interesting exercise to try to write the smallest description of how I like to work.&lt;/p&gt;

&lt;h1 id=&quot;sparing-with-auto-accept-edits&quot;&gt;Sparing with auto-accept edits&lt;/h1&gt;

&lt;p&gt;Reviewing code is essential but boring. And even more so with an LLM that might go off the rails…&lt;/p&gt;

&lt;p&gt;So, I will tend to manually accept edits on the task I give it. But, yesterday I asked it to update a major release of Jest. Turned on auto-accept and went and collected #4 from school, made flapjacks with her, and then checked in.&lt;/p&gt;

&lt;p&gt;A little fangling but otherwise it was dull work I would have had to do. That has relatively little value (particularly compared to making flapjacks with #4 daughter)&lt;/p&gt;

&lt;p&gt;Here&apos;s the PR: https://github.com/PostHog/posthog-js/pull/2413&lt;/p&gt;
</description>
				<pubDate>Fri, 24 Oct 2025 08:00:00 +0000</pubDate>
				
				<link>
					https://pauldambra.dev/2025/10/how-i-use-llms-2.html
				</link>
				<guid isPermaLink="true">
					https://pauldambra.dev/2025/10/how-i-use-llms-2.html
				</guid>
			</item>
		
	</channel>
</rss>