<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Raphael Crawford-Marks]]></title><description><![CDATA[Dad / Tech / Run]]></description><link>https://crawfordmarks.com</link><image><url>https://crawfordmarks.com/img/substack.png</url><title>Raphael Crawford-Marks</title><link>https://crawfordmarks.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 12 Aug 2026 03:13:16 GMT</lastBuildDate><atom:link href="https://crawfordmarks.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Raphael Crawford-Marks]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[raphael@crawfordmarks.com]]></webMaster><itunes:owner><itunes:email><![CDATA[raphael@crawfordmarks.com]]></itunes:email><itunes:name><![CDATA[Raphael Crawford-Marks]]></itunes:name></itunes:owner><itunes:author><![CDATA[Raphael Crawford-Marks]]></itunes:author><googleplay:owner><![CDATA[raphael@crawfordmarks.com]]></googleplay:owner><googleplay:email><![CDATA[raphael@crawfordmarks.com]]></googleplay:email><googleplay:author><![CDATA[Raphael Crawford-Marks]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Satis perficere]]></title><description><![CDATA[To finish *is* enough.]]></description><link>https://crawfordmarks.com/p/satis-perficere</link><guid isPermaLink="false">https://crawfordmarks.com/p/satis-perficere</guid><dc:creator><![CDATA[Raphael Crawford-Marks]]></dc:creator><pubDate>Mon, 10 Aug 2026 14:31:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Jib6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have two finishers medallions from the 2024 and 2025 Never Summer 60k. They&#8217;re the only finishers medals I have, despite having run many other races, from casual 5ks to challenging sub-ultra trail races. The finishers medals for those ended up in the trash.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jib6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jib6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic 424w, https://substackcdn.com/image/fetch/$s_!Jib6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic 848w, https://substackcdn.com/image/fetch/$s_!Jib6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic 1272w, https://substackcdn.com/image/fetch/$s_!Jib6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jib6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic" width="1456" height="748" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:748,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1085978,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://crawfordmarks.com/i/210531598?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Jib6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic 424w, https://substackcdn.com/image/fetch/$s_!Jib6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic 848w, https://substackcdn.com/image/fetch/$s_!Jib6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic 1272w, https://substackcdn.com/image/fetch/$s_!Jib6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2320c939-e020-4cb3-8a12-a24ec911492b_3924x2017.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>What does finishing matter?</em> I would think. I&#8217;m an <a href="https://ultrasignup.com/results_participant.aspx?fname=Raphael&amp;lname=Crawford-Marks">unremarkable, middle-aged, middle-of-the-pack runner</a>. Finishing is what I came to do, but is not worthy of praise or commemoration of any kind. These medals are mere participation trophies.</p><p>This was doubly true for races that didn&#8217;t go according to plan. My two main races in 2024, the Quad Rock 25mi and Never Summer 60k, both went badly relative the expectations I&#8217;d built up through my training and pre-race planning. All my 2024 Quad Rock paraphernalia immediately went into the trash. So did everything from 2024 Never Summer, except for the finishers medallion, which was promptly buried under papers and other detritus on my desk. Falling short of my own expectations was failure. Sure, I finished, but <em>finishing wasn&#8217;t enough</em>, I thought.</p><p>Two weeks ago I DNFed at mile 32 of the Never Summer 100k. It&#8217;s a very hard race, with technical trails, lots of vert, and high altitude. The weather on race day was very hot with little to no cloud cover. But while the heat may have been a contributing factor, the reason I DNFed is that I just wasn&#8217;t fit enough. I had a nice <a href="https://runsense.ai/blog/race-plan-and-race-report-templates.html">race plan</a> but hadn&#8217;t put in the hard work necessary for that plan to be feasible. I had a decent (by my standards) finishing time at last years Never Summer 60k &#8212; so I could definitely finish the 100k, right? Wrong. I <a href="https://blondeidiotrunning.wordpress.com/2024/10/06/how-to-run-spartathlon/">disrespected the race</a> by failing to put in the work.</p><p>Over the past two weeks, I&#8217;ve come to see those two NS60k medallions very differently, and to regret not keeping any of my other finishers medals. I trained long and hard for each of those races, which are among the most challenging trail races at that distance. Finishing is not guaranteed, so when you do finish, it is enough.</p>]]></content:encoded></item><item><title><![CDATA[Announcing dep-steward: automate dependabot PR reviews with Claude]]></title><description><![CDATA[It's saved me almost 8 hours (and counting) while keeping Runsense fully up-to-date]]></description><link>https://crawfordmarks.com/p/announcing-dep-steward-automate-dependabot</link><guid isPermaLink="false">https://crawfordmarks.com/p/announcing-dep-steward-automate-dependabot</guid><dc:creator><![CDATA[Raphael Crawford-Marks]]></dc:creator><pubDate>Wed, 22 Jul 2026 16:09:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yezY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yezY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yezY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!yezY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!yezY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!yezY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yezY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:880059,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://crawfordmarks.com/i/208078732?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yezY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!yezY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!yezY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!yezY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f45d61c-df5f-4f2e-8bc5-b18a3b522975_1200x630.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It&#8217;s what you&#8217;re supposed to do: use <a href="https://github.com/dependabot">Dependabot</a>. Keep dependencies current, catch security patches early, standard hygiene. Unfortunately, it also created a stream of PRs for me to review, and as a solopreneur, time is my most limited resource.</p><p>Moreover, I wouldn&#8217;t always know when a new dependabot PR had been posted. Some would sit for days or weeks before I noticed or got around to them. This whole thing, which was supposed to be an easy way to maintain good housekeeping, was turning into an annoying chore. And if there&#8217;s anything I hate, it&#8217;s an annoying chore.</p><p>So I built <a href="https://raphaelcm.github.io/dep-steward/">dep-steward</a>: a Claude agent reviews every Dependabot PR, and a separate, dumb, deterministic script does the actual merging. This separation of concerns is important. The review step reads the diff, pulls the changelog, checks my code for real usage, and can flag a PR for me to look at, but it can never merge anything itself. The merge step doesn&#8217;t take the model&#8217;s word for any of that. It re-checks on its own: is this really from Dependabot, is CI green, does the change only touch a dependency manifest, is the PR still open. Routine patch and minor bumps, grouped into one PR, clear that bar and merge with no model involved at all. A real major-version bump gets an actual review, and only merges if the model affirmatively says it&#8217;s safe and finds nothing in my code that touches the changed surface. Anything uncertain gets escalated to me. It never quietly merges anything risky.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8s-C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2f55d5-2026-4ac1-9d29-9086c4e7422a_787x443.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8s-C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2f55d5-2026-4ac1-9d29-9086c4e7422a_787x443.png 424w, https://substackcdn.com/image/fetch/$s_!8s-C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2f55d5-2026-4ac1-9d29-9086c4e7422a_787x443.png 848w, https://substackcdn.com/image/fetch/$s_!8s-C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2f55d5-2026-4ac1-9d29-9086c4e7422a_787x443.png 1272w, https://substackcdn.com/image/fetch/$s_!8s-C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2f55d5-2026-4ac1-9d29-9086c4e7422a_787x443.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8s-C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2f55d5-2026-4ac1-9d29-9086c4e7422a_787x443.png" width="787" height="443" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab2f55d5-2026-4ac1-9d29-9086c4e7422a_787x443.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:443,&quot;width&quot;:787,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:108857,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://crawfordmarks.com/i/208078732?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2f55d5-2026-4ac1-9d29-9086c4e7422a_787x443.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8s-C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2f55d5-2026-4ac1-9d29-9086c4e7422a_787x443.png 424w, https://substackcdn.com/image/fetch/$s_!8s-C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2f55d5-2026-4ac1-9d29-9086c4e7422a_787x443.png 848w, https://substackcdn.com/image/fetch/$s_!8s-C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2f55d5-2026-4ac1-9d29-9086c4e7422a_787x443.png 1272w, https://substackcdn.com/image/fetch/$s_!8s-C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2f55d5-2026-4ac1-9d29-9086c4e7422a_787x443.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">All this time savings (and the handy <strong><span>/</span></strong><span>dep-steward-summary skill) could be yours!</span></figcaption></figure></div><p>It&#8217;s been running on the <a href="https://runsense.ai">Runsense</a> repo for 71 days. In that time it&#8217;s handled 32 Dependabot PRs on its own, 21 routine group updates and 11 real major or singleton bumps, with zero left sitting in my queue and zero security fixes missed. Using deliberately modest assumptions, about 5 minutes for a routine merge and 30 for a real major-version review, that&#8217;s roughly 7.3 hours saved. Plus, the peace of mind of knowing that Runsense is always up-to-date without my having to give it a second thought.</p><p>If you&#8217;re looking for an easy way to manage, review, and merge Dependabot PRs, give it a try: <a href="https://raphaelcm.github.io/dep-steward/">https://raphaelcm.github.io/dep-steward/</a>. And let me know what you think!</p>]]></content:encoded></item><item><title><![CDATA[How being a founder is like being an ultra runner]]></title><description><![CDATA[Planning, Decision-making, Grit, Reflection]]></description><link>https://crawfordmarks.com/p/how-being-a-founder-is-like-being</link><guid isPermaLink="false">https://crawfordmarks.com/p/how-being-a-founder-is-like-being</guid><dc:creator><![CDATA[Raphael Crawford-Marks]]></dc:creator><pubDate>Mon, 20 Jul 2026 23:46:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nmU8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nmU8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nmU8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png 424w, https://substackcdn.com/image/fetch/$s_!nmU8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png 848w, https://substackcdn.com/image/fetch/$s_!nmU8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png 1272w, https://substackcdn.com/image/fetch/$s_!nmU8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nmU8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png" width="1280" height="854" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:854,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2110304,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://crawfordmarks.com/i/207667810?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nmU8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png 424w, https://substackcdn.com/image/fetch/$s_!nmU8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png 848w, https://substackcdn.com/image/fetch/$s_!nmU8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png 1272w, https://substackcdn.com/image/fetch/$s_!nmU8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf66ea-dad3-4ec9-9a2e-c66a5aa449e7_1280x854.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Running the 2025 Never Summer 60k</figcaption></figure></div><p>In 2024, I ran my first ultramarathon: the <a href="https://gnarrunners.com/never-summer-100k/">Never Summer 60k</a>. Taking place at altitude (between ~8,500 and ~11,900 feet) and with over 8,800 feet of elevation gain/loss, it is a challenging mountain ultramarathon. But I was coming in prepared &#8212; I&#8217;d been training under the direction of a coach for months. I&#8217;d run a challenging 25-mile trail race two months earlier, which admittedly didn&#8217;t go well, but I thought I&#8217;d identified and applied all the learnings from that race. I had a detailed race plan and reasonable A / B / C goals. I was ready.</p><p>Dear reader, I was not ready.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://crawfordmarks.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>When I stumbled across the finish line nearly 12 hours later &#8212; bonked, dehydrated, and with intense pain on the bottom of my feet (!) &#8212; I swore to my friends that I would never do an ultra again. I&#8217;m always up for type 2 fun, but not abject suffering for hours on end. What&#8217;s more, I had trained harder than either of my friends, yet I felt like death as I crossed the finish line over an hour behind them. Why bother?</p><p>My finish-line declarations were short-lived. Within days I was analyzing my race,  hypothesizing the causes of my blow-up, and planning for next year.</p><p>One reason ultra-running appeals to me, I think, is because I&#8217;m also a founder (<a href="https://bonusly.com/">Bonusly</a>, <a href="https://runsense.ai/">Runsense</a>). Starting/running a company is brutally hard: <a href="https://www.youtube.com/watch?v=URgncvVxxFU">full of &#8220;pain and suffering&#8230;embarrassment and shame&#8221;</a>. To keep going as either a founder or an ultra runner, you need a similar set of skills: Planning, Decision-making, Grit, and Reflection.</p><p><strong>Planning</strong></p><p>Whether an ultra or a company, nothing can happen without planning. How will you train? How will you fuel/hydrate? What gear will you bring? Who is your customer? What is their problem? What will solve it? How will you distribute? And on and on.</p><p>This is a special kind of planning: you are doing it in the face of extreme uncertainty. There is so much you don&#8217;t know, yet you must do your best to plan for it anyway. The point of this planning is risk mitigation: identifying the ways things could fail so that you can anticipate and prevent them. These are both external risks (thunderstorm, market crash), and internal ones (starting off to fast, assuming &#8220;if you build it they will come&#8221;).</p><p><strong>Decision-making</strong></p><p>Once you&#8217;ve begun your race, or launched your company, your plan will go out the window. Soon, if not immediately. So you&#8217;re faced with a series of un-planned-for decisions: feeling a bit nauseous, should I skip my next gel? a competitor just raised $50MM while I&#8217;m bootstrapped, how do I compete? The decisions you make are highly consequential. But no matter what, the worst decision is the no-decision, because even a wrong decision provides information and a chance at recovery. Perhaps you decide to skip that gel but then your energy starts to flag: that&#8217;s information that you can use to possibly recover. Perhaps you decide to try to compete with your funded competitor&#8217;s marketing campaign and get no traction: if you decide quickly to cut your losses, maybe you still have the resources to try something else.</p><p><strong>Grit</strong></p><p>&#8220;When you&#8217;re going through hell&#8230;keep going.&#8221; This was my mantra through most of the years that I ran Bonusly. Sometimes there isn&#8217;t a decision to make. Things are just hard and you need to grind through it. Doing sales calls, customer support, product development, and fundraising all at the same time. Struggling up a long steep climb at the hottest time of day. There&#8217;s nothing to do but put one foot in front of the other, despite the fatigue, heat, pain, or whatever else you&#8217;re feeling.</p><p><strong>Reflection</strong></p><p>The hardship, failures, and &#8220;oh shit&#8221; moments are emotionally bruising. But they are also information about reality that you didn&#8217;t have before. The ability to reflect and learn is the superpower of every founder and ultra runner. Why did events deviate so horribly from your plan? What happened when I made decisions A, B, and C, and why? Whether a founder or a runner, grit enables you to endure. Reflection enables you to <em>improve</em>.</p><p>In 2025, I toed the line once again for the Never Summer 60k. My goals were seriously dialed back, and my preparation was significantly dialed up: in addition to another season of training, I was bringing extra fuel &amp; fluids, trekking poles, and an ice bandana. I was also bringing a new mindset: my goals were somewhat scaled back, and I was focused on enjoying the race and finishing with a smile on my face.</p><p>Which I did &#8212; 50 minutes faster than the prior year.</p><p><strong>Postscript</strong></p><p>The story doesn&#8217;t end there, of course. This year - 2026 - I will be lining up to run the Never Summer <em>100k</em>, my longest ultra ever. I have my race plan, and my training is in the books, but regardless of what happens, I know my decision-making and grit will be tested, and I&#8217;ll have plenty to reflect on after I finish.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://crawfordmarks.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>