<?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[Wrong by Design: Lab Notes]]></title><description><![CDATA[Products, workflows, and experiments in progress. Failures included.]]></description><link>https://gcampoamor.substack.com/s/lab-notes</link><image><url>https://substackcdn.com/image/fetch/$s_!fwp3!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3dd7e02-075a-403f-beb2-12185eaf2d5d_1254x1254.png</url><title>Wrong by Design: Lab Notes</title><link>https://gcampoamor.substack.com/s/lab-notes</link></image><generator>Substack</generator><lastBuildDate>Thu, 25 Jun 2026 18:43:01 GMT</lastBuildDate><atom:link href="https://gcampoamor.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Guillermo Campoamor González]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[gcampoamor@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[gcampoamor@substack.com]]></itunes:email><itunes:name><![CDATA[Guillermo Campoamor]]></itunes:name></itunes:owner><itunes:author><![CDATA[Guillermo Campoamor]]></itunes:author><googleplay:owner><![CDATA[gcampoamor@substack.com]]></googleplay:owner><googleplay:email><![CDATA[gcampoamor@substack.com]]></googleplay:email><googleplay:author><![CDATA[Guillermo Campoamor]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[I Built an Amtrak App in an Afternoon. I'm Still Not Sure What to Make of It.]]></title><description><![CDATA[The pace feels different now]]></description><link>https://gcampoamor.substack.com/p/i-built-an-amtrak-app-in-an-afternoon</link><guid isPermaLink="false">https://gcampoamor.substack.com/p/i-built-an-amtrak-app-in-an-afternoon</guid><dc:creator><![CDATA[Guillermo Campoamor]]></dc:creator><pubDate>Tue, 24 Feb 2026 21:41:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!A7Ui!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>The pace feels different now</h2><p>Something shifted recently. Not gradually &#8212; more like a threshold crossed. A new model drops, a capability unlocks, and something that felt out of reach last month becomes something anyone can build on a Tuesday. The people feeling this most aren&#8217;t engineers. They&#8217;re founders, operators, product people who&#8217;ve spent careers describing what they want to someone else who could build it.</p><p>Vibe coding is the shorthand for this: describe what you want in plain language, watch it get built in real time. I&#8217;d been skeptical. Then I had coffee (virtually) with Philip Johnson, a fellow founder, and his energy around Claude Code was the kind you can&#8217;t fake. I decided to stop watching and try it myself.</p><p>I needed a real problem. I didn&#8217;t have to think long.</p><h2>The platform problem</h2><p>I do the Philadelphia to New York run on Amtrak more than I&#8217;d like to admit. Over time I&#8217;ve built up what I can only call a horror reel.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!06KL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc9fc5ee-7051-4a50-9fcc-052e4aef96b7_5712x4284.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!06KL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc9fc5ee-7051-4a50-9fcc-052e4aef96b7_5712x4284.jpeg 424w, https://substackcdn.com/image/fetch/$s_!06KL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc9fc5ee-7051-4a50-9fcc-052e4aef96b7_5712x4284.jpeg 848w, https://substackcdn.com/image/fetch/$s_!06KL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc9fc5ee-7051-4a50-9fcc-052e4aef96b7_5712x4284.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!06KL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc9fc5ee-7051-4a50-9fcc-052e4aef96b7_5712x4284.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!06KL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc9fc5ee-7051-4a50-9fcc-052e4aef96b7_5712x4284.jpeg" width="550" height="733.2074175824176" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc9fc5ee-7051-4a50-9fcc-052e4aef96b7_5712x4284.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:550,&quot;bytes&quot;:6675619,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://gcampoamor.substack.com/i/189040772?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc9fc5ee-7051-4a50-9fcc-052e4aef96b7_5712x4284.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!06KL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc9fc5ee-7051-4a50-9fcc-052e4aef96b7_5712x4284.jpeg 424w, https://substackcdn.com/image/fetch/$s_!06KL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc9fc5ee-7051-4a50-9fcc-052e4aef96b7_5712x4284.jpeg 848w, https://substackcdn.com/image/fetch/$s_!06KL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc9fc5ee-7051-4a50-9fcc-052e4aef96b7_5712x4284.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!06KL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc9fc5ee-7051-4a50-9fcc-052e4aef96b7_5712x4284.jpeg 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 role="img" 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><title></title><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>The worst version: it&#8217;s a Tuesday morning, you&#8217;re at 30th Street Station &#8212; and if you know it, you know it&#8217;s not a place you linger by choice. The waiting area feels designed for throughput, not comfort. You&#8217;re not there to be there, you&#8217;re there to leave.</p><p>And your train is running 40 minutes late. You don&#8217;t know this yet. You find out when you&#8217;re already inside, through an SMS that says something like &#8220;your train has been delayed.&#8221; No context. No updated time. No explanation of whether it&#8217;s weather, a mechanical issue, or something that cascades further down the line.</p><p>The 40 minutes isn&#8217;t the problem. The <em>not knowing</em> is the problem. If I&#8217;d known at home, I would have grabbed a coffee, left later, planned around it. Instead I&#8217;m stuck in a station I didn&#8217;t want to be in any longer than necessary, compulsively refreshing an app that was clearly never designed for a stressed passenger who just wants one clear answer.</p><p>There&#8217;s a site called <a href="http://RailRat.net">RailRat.net</a> that rail nerds use. The data is there. But it&#8217;s not built for the person in that moment. It&#8217;s built for people who enjoy the data itself.</p><p>That gap &#8212; between having the information and actually serving the person who needs it &#8212; is the exact problem I worked on every day at Meep. Mobility data that exists but doesn&#8217;t reach the person making a decision in real time. Seeing it here, I couldn&#8217;t leave it alone.</p><h2>What I built (and how it happened)</h2><p>I started with a PRD. Not a vague prompt &#8212; an actual product requirements document written from the passenger&#8217;s perspective. What does someone need at the moment they&#8217;re stressed and stuck? I had a clear picture in my head and I wrote it down first.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!A7Ui!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A7Ui!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!A7Ui!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!A7Ui!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!A7Ui!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A7Ui!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:244451,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://gcampoamor.substack.com/i/189040772?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.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_!A7Ui!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!A7Ui!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!A7Ui!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!A7Ui!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef0284e-5f50-4890-9ce9-6c87a0f58181_1536x1024.png 1456w" sizes="100vw" loading="lazy"></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 role="img" 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><title></title><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>From there it was back and forth. Claude didn&#8217;t just execute &#8212; it pushed the thinking. We&#8217;d land on something, I&#8217;d react, it would adjust. It felt less like dictating to a tool and more like a fast-moving working session with someone who never gets tired of iterating.</p><p>What came out the other side wasn&#8217;t one clean build &#8212; it was layers.</p><p>It started simple: search a station, get live data. But we kept pulling the thread. Search expanded to handle cities and train numbers, not just station codes. Then the alerts logic, which turned out to be more nuanced than I expected &#8212; not just &#8220;train is late&#8221; but <em>how</em> late, visualized in a way that actually helps you decide what to do next.</p><p>Alongside the core build, I was running a separate UX/UI audit in parallel with other tools, feeding recommendations back into the iteration loop. The interface you see now is a few rounds of that, not the first draft.</p><p>When I thought I was about 90% done, I shared it with my former tech co-founder from Meep. One conversation was enough to realize the alerts system wasn&#8217;t working the way it should. Not broken technically &#8212; wrong conceptually. We scrapped the approach and rebuilt that piece from scratch. That kind of feedback only comes from someone who&#8217;s seen you ship before and isn&#8217;t going to spare your feelings about it.</p><p>The last thing I added was the music and podcast section. Practically it&#8217;s simple &#8212; curated Spotify and Apple Music playlists matched to your journey length. But the reason I kept it is less practical: it&#8217;s a small gesture toward community. A way to make the experience feel like someone thought about you, not just your train.</p><p>The result is <a href="https://railpulse-production-3892.up.railway.app">RailPulse</a> &#8212; React front-end, Node.js back-end, live Amtrak data, completely free, no affiliation with Amtrak.</p><h2>What vibe coding actually felt like</h2><p>Humbling is the honest word.</p><p>The speed was real &#8212; I shipped something usable in an afternoon that would have taken me weeks to coordinate through a traditional process. But the experience wasn&#8217;t frictionless magic. You need a baseline comfort with how things work under the hood &#8212; knowing your way around a terminal, reading an error message without panicking, understanding enough to know when something is structurally wrong versus just misconfigured. It&#8217;s not coding, but it&#8217;s not nothing either.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cpKk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff62eb661-36a9-416d-b2a9-06cc252b0921_1364x1250.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cpKk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff62eb661-36a9-416d-b2a9-06cc252b0921_1364x1250.png 424w, https://substackcdn.com/image/fetch/$s_!cpKk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff62eb661-36a9-416d-b2a9-06cc252b0921_1364x1250.png 848w, https://substackcdn.com/image/fetch/$s_!cpKk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff62eb661-36a9-416d-b2a9-06cc252b0921_1364x1250.png 1272w, https://substackcdn.com/image/fetch/$s_!cpKk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff62eb661-36a9-416d-b2a9-06cc252b0921_1364x1250.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cpKk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff62eb661-36a9-416d-b2a9-06cc252b0921_1364x1250.png" width="554" height="507.69794721407624" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f62eb661-36a9-416d-b2a9-06cc252b0921_1364x1250.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1250,&quot;width&quot;:1364,&quot;resizeWidth&quot;:554,&quot;bytes&quot;:240728,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://gcampoamor.substack.com/i/189040772?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff62eb661-36a9-416d-b2a9-06cc252b0921_1364x1250.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_!cpKk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff62eb661-36a9-416d-b2a9-06cc252b0921_1364x1250.png 424w, https://substackcdn.com/image/fetch/$s_!cpKk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff62eb661-36a9-416d-b2a9-06cc252b0921_1364x1250.png 848w, https://substackcdn.com/image/fetch/$s_!cpKk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff62eb661-36a9-416d-b2a9-06cc252b0921_1364x1250.png 1272w, https://substackcdn.com/image/fetch/$s_!cpKk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff62eb661-36a9-416d-b2a9-06cc252b0921_1364x1250.png 1456w" sizes="100vw" loading="lazy"></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 role="img" 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><title></title><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>Some features didn&#8217;t work the first time. A few required going back to the requirements, rethinking the logic, and re-entering the conversation with more precision. The quality of my next prompt determined everything when something broke. Vague description produced vague output. The more precisely I described the user&#8217;s actual emotional state &#8212; not the feature, the feeling &#8212; the better the result.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QOvu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662cbad7-e48a-47fc-a944-5d3d1f3930b8_2334x1214.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QOvu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662cbad7-e48a-47fc-a944-5d3d1f3930b8_2334x1214.png 424w, https://substackcdn.com/image/fetch/$s_!QOvu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662cbad7-e48a-47fc-a944-5d3d1f3930b8_2334x1214.png 848w, https://substackcdn.com/image/fetch/$s_!QOvu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662cbad7-e48a-47fc-a944-5d3d1f3930b8_2334x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!QOvu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662cbad7-e48a-47fc-a944-5d3d1f3930b8_2334x1214.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QOvu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662cbad7-e48a-47fc-a944-5d3d1f3930b8_2334x1214.png" width="507" height="263.5982142857143" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/662cbad7-e48a-47fc-a944-5d3d1f3930b8_2334x1214.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:757,&quot;width&quot;:1456,&quot;resizeWidth&quot;:507,&quot;bytes&quot;:153766,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://gcampoamor.substack.com/i/189040772?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662cbad7-e48a-47fc-a944-5d3d1f3930b8_2334x1214.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_!QOvu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662cbad7-e48a-47fc-a944-5d3d1f3930b8_2334x1214.png 424w, https://substackcdn.com/image/fetch/$s_!QOvu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662cbad7-e48a-47fc-a944-5d3d1f3930b8_2334x1214.png 848w, https://substackcdn.com/image/fetch/$s_!QOvu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662cbad7-e48a-47fc-a944-5d3d1f3930b8_2334x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!QOvu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662cbad7-e48a-47fc-a944-5d3d1f3930b8_2334x1214.png 1456w" sizes="100vw" loading="lazy"></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 role="img" 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><title></title><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>What surprised me most: I wasn&#8217;t just a passenger in the build. I was making product decisions constantly, just faster than I ever had before. The AI handled the how. The what was still entirely on me.</p><p>But overall? It&#8217;s a genuinely remarkable experience. The gap between having an idea and having a working thing has never been smaller. That&#8217;s a bigger shift than I expected to sit with.</p><h2>What I actually want to know</h2><p>If you&#8217;re a regular Amtrak rider &#8212; Northeast Corridor, or any route &#8212; I have one genuine question for you:</p><blockquote><p><strong>What&#8217;s the one piece of information you always wish you had at the station, and never do?</strong></p></blockquote><p>Here&#8217;s where my head is on what comes next. The goal was never to compete with existing train status tools. Amtrak has one. RailRat exists. The bet with RailPulse is narrower and more specific: is there a moment of friction &#8212; that window between &#8220;should I leave the house yet?&#8221; and &#8220;where is my train right now?&#8221; &#8212; that nobody is solving well enough to change behavior?</p><p>That&#8217;s what I&#8217;m trying to find out. Not through a survey, but through actual signals. Do people activate alerts? Do they come back? If someone sets a 15-minute delay notification and shows up at the right time because of it, that&#8217;s the answer I&#8217;m looking for. That&#8217;s the behavior that tells you whether the problem is real enough to build further on.</p><p>Early GTM here isn&#8217;t about scale. It&#8217;s about clarity &#8212; finding the people who feel this friction most acutely, putting something simple in front of them, and watching what they actually do with it. If the signal is there, the strategy follows. If it isn&#8217;t, I&#8217;ve learned something useful without overbuilding.</p><p>So this is less a launch and more a structured question. I&#8217;m not looking for validation. I&#8217;m looking for the gap I haven&#8217;t seen yet &#8212; and for the riders who feel it every time they&#8217;re standing on that platform, waiting.</p><p></p>]]></content:encoded></item></channel></rss>