<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: joegaebel</title><link>https://news.ycombinator.com/user?id=joegaebel</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 10:53:15 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=joegaebel" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by joegaebel in "Dopamine Fracking"]]></title><description><![CDATA[
<p>May be more clear to refer to it as Foam Banana Candy syndrome</p>
]]></description><pubDate>Mon, 08 Jun 2026 06:22:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48441889</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=48441889</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48441889</guid></item><item><title><![CDATA[Forcing Claude Code to Run Outside-In TDD]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.joegaebel.com/articles/principled-agentic-software-development/">https://www.joegaebel.com/articles/principled-agentic-software-development/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47438204">https://news.ycombinator.com/item?id=47438204</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 19 Mar 2026 12:28:00 +0000</pubDate><link>https://www.joegaebel.com/articles/principled-agentic-software-development/</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=47438204</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47438204</guid></item><item><title><![CDATA[AI agents write great code but terrible tests – fixing it with outside-in TDD]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.joegaebel.com/articles/principled-agentic-software-development/">https://www.joegaebel.com/articles/principled-agentic-software-development/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47424695">https://news.ycombinator.com/item?id=47424695</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 18 Mar 2026 12:09:46 +0000</pubDate><link>https://www.joegaebel.com/articles/principled-agentic-software-development/</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=47424695</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47424695</guid></item><item><title><![CDATA[New comment by joegaebel in "Get Shit Done: A meta-prompting, context engineering and spec-driven dev system"]]></title><description><![CDATA[
<p>In my view, the problem with specs are:<p>1. Specs are subject to bit-rot, there's no impetus to update them as behaviour changes - unless your agent workflow explicitly enforces a thorough review and update of the specs, and unless your agent is diligent with following it. Lots of trust required on your LLM here.<p>2. There's no way to systematically determine if the behaviour of your system matches the specs. Imagine a reasonable sized codebase - if there's a spec document for every feature, you're looking at quite a collection of specs. How many tokens need be burnt to ensure that these specs are always up to date as new features come in and behaviour changes?<p>3. Specs are written in English. They're ambiguous - they can absolutely serve the planning and design phases, but this ambiguity prevents meaningful behaviour assertions about the system as it grows.<p>Contrast that with tests:<p>1. They are executable and have the precision of code. They don't just describe behaviour of the system, they validate that the system follows that behaviour, without ambiguity.<p>2. They scale - it's completely reasonable to have extensive codebases have all (if not most) of their behaviour covered by tests.<p>3. Updating is enforcable - assuming you're using a CI pipeline, when tests break, they must be updated in order to continue.<p>4. You can systematically determine if the tests fully describe the behaviour (ie. is all the behaviour tested) via mutation testing. This will tell you with absolute certainty if code is tested or not - do the tests fully describe the system's behaviour.<p>That being said, I think it's very valuable to start with a planning stage, even to provide a spec, such that the correct behaviour gets encoded into tests, and then instantiated by the implementation. But in my view, specs are best used within the design stage, and if left in the codebase, treated only as historical info for what went into the development of the feature. Attempting to use them as the source of truth for the behaviour of the system is fraught.<p>And I guess finally, I think that insofar as any framework uses the specs as the source of truth for behaviour, they're going to run into alignment problems since maintaining specs doesn't scale.</p>
]]></description><pubDate>Wed, 18 Mar 2026 10:56:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=47424029</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=47424029</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47424029</guid></item><item><title><![CDATA[New comment by joegaebel in "Get Shit Done: A meta-prompting, context engineering and spec-driven dev system"]]></title><description><![CDATA[
<p>In my view, Spec-Driven systems are doomed to fail. There's nothing that couples the english language specs you've written with the actual code and behaviour of the system - unless your agent is being insanely diligent and constantly checking if the entire system aligns with your specs.<p>This has been solved already - automated testing. They encode behaviour of the system into executables which actually tell you if your system aligns or not.<p>Better to encode the behaviour of your system into real, executable, scalable specs (aka automated tests), otherwise your app's behaviour is going to spiral out of control after the Nth AI generated feature.<p>The way to ensure this actually scales with the firepower that LLMs have for writing implementation is ensure it follows a workflow where it knows how to test, it writes the tests first, and ensures that the tests actually reflect the behaviour of the system with mutation testing.<p>I've scoped this out here [1] and here [2].<p>[1] <a href="https://www.joegaebel.com/articles/principled-agentic-software-development" rel="nofollow">https://www.joegaebel.com/articles/principled-agentic-softwa...</a>
[2] <a href="https://github.com/JoeGaebel/outside-in-tdd-starter" rel="nofollow">https://github.com/JoeGaebel/outside-in-tdd-starter</a></p>
]]></description><pubDate>Wed, 18 Mar 2026 06:06:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47422065</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=47422065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47422065</guid></item><item><title><![CDATA[New comment by joegaebel in "Agents that run while I sleep"]]></title><description><![CDATA[
<p>Actually, every single word was hand typed. You'll probably notice that in areas where I could improve my grammar. It's understandable that you hit the wall of text and felt a bit dismayed by the length- hence the TLDR at the top and the example repo :)</p>
]]></description><pubDate>Wed, 11 Mar 2026 11:28:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47334233</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=47334233</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47334233</guid></item><item><title><![CDATA[New comment by joegaebel in "Agents that run while I sleep"]]></title><description><![CDATA[
<p>That's the kicker - you taught it conventions that it follows. Even better (in my view) is to ensure you're getting higher coverage and tests focused on behaviour by getting it to write the tests first.<p>Even moreso by ensuring it writes "feature complete" tests for each feature first.<p>Even moreso by running mutation testing to backfill tests for logic it didn't cover.</p>
]]></description><pubDate>Wed, 11 Mar 2026 11:26:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47334220</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=47334220</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47334220</guid></item><item><title><![CDATA[New comment by joegaebel in "Agents that run while I sleep"]]></title><description><![CDATA[
<p>Even better, encode it into a workflow and have the subagents be adversarial to each other: <a href="https://www.joegaebel.com/articles/principled-agentic-software-development/" rel="nofollow">https://www.joegaebel.com/articles/principled-agentic-softwa...</a></p>
]]></description><pubDate>Wed, 11 Mar 2026 01:01:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47330700</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=47330700</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47330700</guid></item><item><title><![CDATA[New comment by joegaebel in "Agents that run while I sleep"]]></title><description><![CDATA[
<p>You'd be surprised - I know I was - you can encode Test-Driven development into workflows that agents actually follow. I wrote an in-depth guide about this and have a POC for people to try over here: <a href="https://www.joegaebel.com/articles/principled-agentic-software-development" rel="nofollow">https://www.joegaebel.com/articles/principled-agentic-softwa...</a></p>
]]></description><pubDate>Wed, 11 Mar 2026 00:54:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47330653</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=47330653</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47330653</guid></item><item><title><![CDATA[New comment by joegaebel in "Agents that run while I sleep"]]></title><description><![CDATA[
<p>I've found the best way to achieve that is to force the agent to do TDD. Better to get it to do Outside-in TDD. Even better to get it to run Outside-in TDD, then use mutation testing to ensure it has fully covered the logic.<p>I've written about this and have a POC here for those interested: <a href="https://www.joegaebel.com/articles/principled-agentic-software-development" rel="nofollow">https://www.joegaebel.com/articles/principled-agentic-softwa...</a></p>
]]></description><pubDate>Wed, 11 Mar 2026 00:51:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47330637</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=47330637</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47330637</guid></item><item><title><![CDATA[Show HN: Principled Agentic Software Development]]></title><description><![CDATA[
<p>Encoding software engineering principles like Outside-in TDD to achieve higher quality tests <i>and</i> implementation.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47330519">https://news.ycombinator.com/item?id=47330519</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 11 Mar 2026 00:31:57 +0000</pubDate><link>https://www.joegaebel.com/articles/principled-agentic-software-development/</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=47330519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47330519</guid></item><item><title><![CDATA[New comment by joegaebel in "Agents that run while I sleep"]]></title><description><![CDATA[
<p>I've been able to encode Outside-in Test Driven Development into a repeatable workflow. Claude Code follows it to a T, and I've gotten great results. I've written about it more here, and created a repo people can use out of the box to try it out:<p><a href="https://www.joegaebel.com/articles/principled-agentic-software-development/" rel="nofollow">https://www.joegaebel.com/articles/principled-agentic-softwa...</a>
<a href="https://github.com/JoeGaebel/outside-in-tdd-starter" rel="nofollow">https://github.com/JoeGaebel/outside-in-tdd-starter</a></p>
]]></description><pubDate>Wed, 11 Mar 2026 00:20:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47330440</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=47330440</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47330440</guid></item><item><title><![CDATA[New comment by joegaebel in "Ask HN: What advice would you give for someone who just turned 30?"]]></title><description><![CDATA[
<p>back up your data, cloud storage is ephemeral</p>
]]></description><pubDate>Tue, 09 Jul 2024 23:28:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=40922352</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=40922352</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40922352</guid></item><item><title><![CDATA[New comment by joegaebel in "Unwrapit provides a way to handle errors in JS/TS"]]></title><description><![CDATA[
<p>Nicer way to go about this is `ts-results` which introduces the `Result` type, inspired by rust.<p><a href="https://github.com/vultix/ts-results">https://github.com/vultix/ts-results</a></p>
]]></description><pubDate>Tue, 31 Oct 2023 06:48:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=38081074</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=38081074</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38081074</guid></item><item><title><![CDATA[New comment by joegaebel in "US urged to reveal UFO evidence after claim that it has intact alien vehicles"]]></title><description><![CDATA[
<p>I've never seen a more perfect example of non-ironic American exceptionalism</p>
]]></description><pubDate>Wed, 07 Jun 2023 04:44:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=36222924</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=36222924</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36222924</guid></item><item><title><![CDATA[New comment by joegaebel in "Psychedelics: A Personal Take (2021)"]]></title><description><![CDATA[
<p>I'm surprised to see the lack of support in the comments. In my take, this article was very well written and goes a long way to describe the refreshing and enlivening aftermath of a peak experience with Psilocybin. It also mirrors the experience of the research subjects at Johns Hopkins.<p>One study, conducted on terminally ill cancer patients, found that most of them rated it as one of the most important experiences of their lives [1], rating it alongside the birth of their children, their wedding day, etc. Additionally, the depression easing effects were shown to persist up to a year by this study.<p>I wouldn't be surprised if experiencing one of the most important, enliving, and connective experiences of your life wouldn't go on to reduce depression and anxiety for the rest of your life.<p>[1] <a href="https://www.hopkinsmedicine.org/news/media/releases/hallucinogenic_drug_psilocybin_eases_existential_anxiety_in_people_with_life_threatening_cancer" rel="nofollow">https://www.hopkinsmedicine.org/news/media/releases/hallucin...</a></p>
]]></description><pubDate>Wed, 02 Nov 2022 20:26:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=33442482</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=33442482</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33442482</guid></item><item><title><![CDATA[New comment by joegaebel in "Ask HN: Working in tech for climate?"]]></title><description><![CDATA[
<p>If you're in Australia, check out <a href="https://www.climatesalad.com/jobs-in-climate-tech-australia" rel="nofollow">https://www.climatesalad.com/jobs-in-climate-tech-australia</a>
I'm sure something like this exists in the US as well.</p>
]]></description><pubDate>Wed, 03 Aug 2022 06:08:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=32328186</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=32328186</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32328186</guid></item><item><title><![CDATA[Welcome to the Internet]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=k1BneeJTDcU">https://www.youtube.com/watch?v=k1BneeJTDcU</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=27528107">https://news.ycombinator.com/item?id=27528107</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 16 Jun 2021 13:09:56 +0000</pubDate><link>https://www.youtube.com/watch?v=k1BneeJTDcU</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=27528107</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27528107</guid></item><item><title><![CDATA[Show HN: Find the best rental out of thousands with Web Scraping and Google APIs]]></title><description><![CDATA[
<p>Article URL: <a href="https://joegaebel.medium.com/find-the-perfect-apartment-out-of-thousands-using-web-scraping-google-apis-and-sheets-860ef462de41">https://joegaebel.medium.com/find-the-perfect-apartment-out-of-thousands-using-web-scraping-google-apis-and-sheets-860ef462de41</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=24857806">https://news.ycombinator.com/item?id=24857806</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 22 Oct 2020 13:35:38 +0000</pubDate><link>https://joegaebel.medium.com/find-the-perfect-apartment-out-of-thousands-using-web-scraping-google-apis-and-sheets-860ef462de41</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=24857806</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24857806</guid></item><item><title><![CDATA[New comment by joegaebel in "Crypto scammers piggybacking Trump’s Twitter, cloning Medium, stealing crypto"]]></title><description><![CDATA[
<p>Wow, amazing. I had no idea it was so prevalent. Thanks for writing this up!</p>
]]></description><pubDate>Wed, 14 Oct 2020 23:00:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=24782713</link><dc:creator>joegaebel</dc:creator><comments>https://news.ycombinator.com/item?id=24782713</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24782713</guid></item></channel></rss>