<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://marshallhouston.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://marshallhouston.github.io/" rel="alternate" type="text/html" /><updated>2026-04-05T16:23:17+00:00</updated><id>https://marshallhouston.github.io/feed.xml</id><title type="html">marshall houston</title><subtitle>thoughts on engineering leadership, ai-augmented software engineering, and building teams.</subtitle><author><name>marshall houston</name></author><entry><title type="html">lowerchaos</title><link href="https://marshallhouston.github.io/lowerchaos/" rel="alternate" type="text/html" title="lowerchaos" /><published>2026-04-05T00:00:00+00:00</published><updated>2026-04-05T00:00:00+00:00</updated><id>https://marshallhouston.github.io/lowerchaos</id><content type="html" xml:base="https://marshallhouston.github.io/lowerchaos/"><![CDATA[<p>i like the lowerchaos feeling. one degree (or three) off normal. cosmic farmland’s a disorienting space.</p>

<p>however, it’s not all smooth sailing. mixed bag.</p>

<blockquote>
  <p>“Ok but what does the AI have against capital letters?”
— <a href="https://www.linkedin.com/feed/update/urn:li:activity:7446242463540985856">Jeff Casimir</a></p>
</blockquote>

<blockquote>
  <p>“all lowercase threw me off at first”
— an engineer on my team</p>
</blockquote>

<blockquote>
  <p>“I like the no caps. let’s everyone know its not slop”
— Jesse</p>
</blockquote>

<p>fix: there’s now a toggle. lowerchaos is still the default. if capitalization is what you prefer, it’s there.</p>

<p>there’s tension here creatively. i like lowerchaos. it’s a purposeful framing shift, a “wtf?” feeling.</p>

<p><code class="language-plaintext highlighter-rouge">lowerchaos:cosmic_farmland::capitalization:standard_realm</code>. choose your own adventure!</p>

<p>as a long time em dash user, i dislike that it’s now a marker of ai slop. lowerchaos says “it may be slop, but it’s <em>MY</em> slop.” :P</p>]]></content><author><name>marshall houston</name></author><summary type="html"><![CDATA[i like the lowerchaos feeling. one degree (or three) off normal. cosmic farmland’s a disorienting space.]]></summary></entry><entry><title type="html">co-intelligence &amp;amp; ai-augmented writing system</title><link href="https://marshallhouston.github.io/co-intelligence-ai-augmented-writing-system/" rel="alternate" type="text/html" title="co-intelligence &amp;amp; ai-augmented writing system" /><published>2026-04-04T00:00:00+00:00</published><updated>2026-04-04T00:00:00+00:00</updated><id>https://marshallhouston.github.io/co-intelligence-ai-augmented-writing-system</id><content type="html" xml:base="https://marshallhouston.github.io/co-intelligence-ai-augmented-writing-system/"><![CDATA[<p>i read ethan mollick’s <a href="https://www.penguinrandomhouse.com/books/741805/co-intelligence-by-ethan-mollick/">co-intelligence</a> twice in 2025. his ideas on co-intelligence with human + ai together have heavily influenced my ai-augmented writing process.</p>

<p>writing again publicly feels the same and vastly different. 15 years is a long time.</p>

<h2 id="the-pipeline">the pipeline</h2>

<blockquote>
  <p>notebook &lt;-&gt; kernel &lt;-&gt; idea &lt;-&gt; refine &lt;-&gt; draft &lt;-&gt; revision cycles &lt;-&gt; publish</p>
</blockquote>

<!-- TODO: photo of notebook page -->

<p>this flow often takes days or weeks. ideas emerge, sit, breathe, shift shapes. though it’s represented here as linear, it’s decidedly nonlinear. porous, amoebic, adhd chaos with multiple parallel sessions all in various stages at the same time.</p>

<!-- TODO: add repo structure here as markdown block showing the one example (meb?) we'll use throughout the entire post -->

<p><strong>notebook.</strong> pen to paper. noodling and doodling without any structure. fragments, quick thoughts, lists and bullets that then expand wide. furious scribbles. the feeling of pen on paper unlocks flow. this is <em>not</em> editing time. i really like my moleskine cahier xl notebook with unlined pages; unlined is magical because there are no lines to confine. infrequently, i’ll grab a legal pad lying around or one of those black and white composition notebooks (downside here is that i lose the plot and try to write as small as possible within a single line… partner says it looks serial-killerish, so yeah lol). love rotating the notebook randomly to write at 90 / 135 / 180 degrees. off kilter. write tiny, write huge.</p>

<p><strong>kernel.</strong> first shift out of the notebook and into digital realm. claude code session in local repo using wispr flow to talk directly about the kernel. goes into the <code class="language-plaintext highlighter-rouge">_kernels</code> directory and ends up in <a href="https://marshallhouston.github.io/kernels/">kernels</a>. extract it down to one sentence, the thread to pull and pull. lightweight. often add many kernels at once and then keep moving onto other things, and let these ferment. i don’t want to lose the context around the kernel, so that automatically gets thrown into the ideas section.</p>

<!-- TODO: kernel examples - directory structure and one example (same post used throughout) -->

<p><strong>idea.</strong> all the random connections and thoughts related to a kernel from the initial planting. when inspiration strikes, i’ll add more thoughts about the kernel. claude code &amp; wispr flow again. broad framing: why do i find this interesting? what’s the framing? what’s the arc? what’s the energy? what’s the crux? this is where the shape starts to take form. more details and looser than the tightly scoped one-sentence kernel but not a full draft. append only. not editing. i don’t look at what’s collected in the ideas file. that would trigger the urge to edit, and we <em>do not</em> edit ideas :P then, i step away. the fermentation magic happens. let it simmer. blue smoke’s rolling and temp has settled, nom bbq.</p>

<!-- TODO: directory structure of _ideas and an example (same post) -->

<p><strong>refine.</strong> refine is a more structured. usually q&amp;a: why this post, why now? what am i trying to accomplish? what emotional resonance am i going for? main purpose is to further clarify thinking and intent. claude code &amp; wispr flow again. can oscillate back to more free-flowing ideas stage. sometimes let ferment further but others straight into next step if i’m feeling the creative urge.</p>

<!-- TODO: examples - what directory? common prompts or skills? separate directory or append on ideas? -->

<p><strong>draft.</strong> we’re finally ready to throw it into a draft state. claude code <em>without</em> wispr flow. take what we’ve got from ideas and see what happens. i will hate this first draft. it is guaranteed. it’s terrible. inaccurate. definitely not what i want, not what i said, not the voice or point… THE KERNEL IS CLEAR. visceral reaction expected… “no no no, this is trash. how in the hell is <em>that</em> what was produced”. but it’s a launching point, and i feel the immediate shift. “ok cool, let’s curate. i’m going to tear this shit to pieces and make it mine!”. i’ve now got something to see and feel and interact with, and this shift matters.</p>

<p><strong>revision cycles.</strong> the english major comes out. the tinkerer, the tweaker. there will be many, many revision cycles. claude code paired back up with wispr flow. <code class="language-plaintext highlighter-rouge">/feedback</code> skill creates a local html file with the draft on the left side and open feedback sections on the right. the first few cycles are focused on high level thinking, structure, feelings as i read it. we are not focused at the granular word and sentence level. once this is dialed, i get more detailed and make changes with specific words and sentences. all feedback is fed back directly into claude code with “copy all feedback as markdown” button. could this be automatic? yeah. but system’s good enough for now. can always build it in the future. tbd on how many times this <code class="language-plaintext highlighter-rouge">/feedback</code> skill gets run. precision, intent. an extra grain of finishing salt. another squeeze of lemon or splash of vinegar.</p>

<!-- TODO: screenshots and videos here. show _drafts dir with multiple iterations after each revision cycle -->

<p><strong>published post.</strong> holy shit, we’re finally here! it’s ready. claude code moves it from <code class="language-plaintext highlighter-rouge">_drafts/</code> to <code class="language-plaintext highlighter-rouge">_posts/</code>. commit and push, and the simple github site automatically updates. “ready” is a feeling; it is not a checklist. ship it earlier than i want to get it out there. by this time, dinner companions are starving, but that’s what apps are for ;)</p>

<!-- TODO: another step in the flow? worklog updates? apply bff (link to post) and see if there are hooks or skills to add and improve the overall system? -->

<h2 id="evolution">evolution</h2>

<!-- TODO: screen recording of bff-era side-by-side workflow -->

<p>the first post i wrote with this flow was <a href="/build-friction-fix/">build friction fix</a>. the setup was very simple. claude code on the left, locally served blog post on the right, wispr flow for voice input.</p>

<p>the loop: read the rendered post in the browser, talk through what wasn’t working via wispr flow to bring that feedback into claude code, get a new draft, look again. over and over again.</p>

<p>the feedback was mostly structural at the outset. “is the arc right? does this section flow into the next one? am i losing energy here?” big-picture stuff.</p>

<p>since i wasn’t distinguishing between “rewrite this whole section, the framing is off” and “change this specific phrase exactly,” i got frustrated with the changes in the next draft when i told claude to incorporate the feedback. it felt like three steps back. structural feedback and line-level feedback were tangled together, and claude code happily gave me entire rewrites… oof.</p>

<p>however, the system was good enough. i finally wrote a thing! the cosmic farmland was BACK UP! yayayayayay</p>

<!-- TODO: screenshots of review.html with structured feedback sections -->

<p>the second post, <a href="/mental-experimentation-budgets/">mental experimentation budgets</a>, took shape over a few weeks.</p>

<p>i addressed the friction from writing bff where high-level general feedback tangled with specific wording feedback. the fix was <code class="language-plaintext highlighter-rouge">review.html</code>, an early version of the <code class="language-plaintext highlighter-rouge">/feedback</code> skill.</p>

<p>now, the feedback loop became read a section, add feedback, hit “copy all feedback as markdown,” paste into claude code. structured, repeatable, and no more confusion level of granularity.</p>

<h3 id="wispr-flow-as-granularity-guardrail">wispr flow as granularity guardrail</h3>

<p>wispr flow has been awesome to harness co-intelligence. i braindump and riff with the quickness. ~170 wpm of pure chaos.</p>

<p>when i’m typing feedback, i go too quickly to wordsmithing. i edit and re-edit sentences, fiddle with phrasing, chase rabbits. typing pulls me down to the word level whether i want to be there or not.</p>

<p>talking lets me stay at the right level of granularity. when feedbacking on overall structure, i stay in the structural realm. i’m not tempted to rewrite a sentence. yes, i can go to the granular level if i absolutely must, but it is easier to stay in the feedback lane i want.</p>

<p>wispr flow helps me stay at the right level of granularity, &amp; it keeps the main thing the main thing.</p>

<h2 id="the-current-system">the current system</h2>

<!-- TODO: screen recording of highlighting and "instead x -> do y" on this post -->

<p>the system i’ve got in place for this post adds another layer. the structured feedback sections from meb were good for big-picture notes. for specific wording, i was using <code class="language-plaintext highlighter-rouge">instead: "copied text" do: "revision"</code> over and over again. type <code class="language-plaintext highlighter-rouge">instead:</code>, highlight text to copy &amp; then paste it in feedback box, type <code class="language-plaintext highlighter-rouge">do:</code>, copy &amp; paste, edit specific wording.</p>

<p>that was annoying. i fixed. now, i highlight any text in the draft and the feedback text area auto-populates with:</p>

<blockquote>
  <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>instead: "&lt;selected_text&gt;"
do: "&lt;selected_text&gt;"
</code></pre></div>  </div>
</blockquote>

<p>cursor lands right on the empty do: line, ready for the replacement. quick &amp; easy.</p>

<!-- TODO: update this revision cycle list based on current flow -->

<p>bffing the system. at the core, this entire flow is a bff fractal.</p>

<h2 id="the-thread">the thread</h2>

<p>i like that the patterns emerged naturally through action. write, name the friction, and fix it. again and again.</p>

<p>this ai-augmented writing flow co-intelligence is bonkers for me. moving from notebook through ideas happens much quicker and in parallel; friction to start costs less neuron-watts. the revision loop is fast enough that i actually iterate on voice and structure.</p>

<p><code class="language-plaintext highlighter-rouge">tangent</code> i throw away a ton of shit. the experimental weird <code class="language-plaintext highlighter-rouge">wtf is this, oh yes catharsis</code> <a href="/probabilistically-perfect-piggies/">probabilistically perfect piggies</a> emerged after jamming on a lengthy diatribe about authenticity, hunter s thompson, creatives responses to authoritarianism and fascism, and homemade mullet energy + jbs&amp;tdc’s mutiny after midnight. late, late stages on it. about to ship. but i didn’t love it. felt off, forced a bit. so i went old-school, straight writing, no co-intelligence. oink oink motherfuckers. <code class="language-plaintext highlighter-rouge">end tangent</code></p>

<p>the bottleneck has never been “can i write?” i’ve done that before (tracked down a blog from 15 years ago when i was moving out to colorado. hilarious trip into nostalgia land).</p>

<p>the last 15 years it’s been everything else.</p>

<h2 id="not-just-me">not just me</h2>

<p>widening out, i love seeing versions of this pattern out in the wild from all sorts of folks. people finding their own way to use ai as co-intelligence for exactly what they want and need and then sharing it.</p>

<p>one example i love is from <a href="https://www.linkedin.com/posts/jcasimir_last-week-i-did-an-online-technical-challenge-activity-7444432840060133376-6MjV/">jeff casimir</a> who shared his experience using ai to prepare for a technical assessment in python:</p>

<blockquote>
  <p>We researched likely interview problems, wrote test suites, I built implementation, Claude gave feedback, and we distilled it into a PDF “Python for Rubyists” that I could print and have on my desk for the assessment.</p>
</blockquote>

<blockquote>
  <p>I think the real value is in using AI as a coach and collaborator. It can be the hub of a conversation that mixes the learner, the work, research, outside expertise (like a teacher), experience/context (like your past work/success/struggle), requirements/constraints, etc. The answer is the least interesting part of the process.</p>
</blockquote>

<p>not “ai do this for me” vibe thinking but “ai as co-intelligence to own my own learning.” the specific tools and workflows are different, but the relationship is the same. own your learning. own it!</p>

<h2 id="come-along">come along</h2>

<p>this process will keep evolving. i’ll bff and bff again. maybe there’s a bff’d writing gastown out there.</p>

<p>weird times we live in y’all. keep learning and building :)</p>]]></content><author><name>marshall houston</name></author><category term="ai-augmented-engineering" /><category term="writing" /><category term="process" /><category term="creative-expression" /><summary type="html"><![CDATA[i read ethan mollick’s co-intelligence twice in 2025. his ideas on co-intelligence with human + ai together have heavily influenced my ai-augmented writing process.]]></summary></entry><entry><title type="html">probabilistically perfect piggies</title><link href="https://marshallhouston.github.io/probabilistically-perfect-piggies/" rel="alternate" type="text/html" title="probabilistically perfect piggies" /><published>2026-04-03T00:00:00+00:00</published><updated>2026-04-03T00:00:00+00:00</updated><id>https://marshallhouston.github.io/probabilistically-perfect-piggies</id><content type="html" xml:base="https://marshallhouston.github.io/probabilistically-perfect-piggies/"><![CDATA[<p>slop. racing to the probabilistically perfect. sterile, milquetoast, borinnnnnggg slop. gather round the trough to fatten up on slop like some ai-powered herd of pigs.</p>

<p>vibe thinking. look how <em>easy</em> it is! turn off our brains. submit.</p>

<p>the duality of it all is so striking. we have such incredible power at our fingertips, and yet slop slop slop fills up the trough. this slop never ends, yipppppeeeeeee!</p>

<p>the meeting summaries with a bajillion emojis. <code class="language-plaintext highlighter-rouge">:rocket-ship:</code> <code class="language-plaintext highlighter-rouge">:sparkles:</code> <code class="language-plaintext highlighter-rouge">:megaphone:</code> <code class="language-plaintext highlighter-rouge">:racecar:</code> <code class="language-plaintext highlighter-rouge">:checkmark:</code> <code class="language-plaintext highlighter-rouge">:glitter-pig:</code> the formulaic linkedin posts “what making zoodles for a dinner party taught me about <code class="language-plaintext highlighter-rouge">&lt;insert_job_title&gt;</code>…” and “you’ll never guess what happens next”.</p>

<p>convergence to sameness, don’t rock the boat, stay in your lane, optimize for engagement above all to the most average of averages. see you at the slop trough my fellow piggies.</p>

<hr />

<p>the walls are closing in, the slaughterhouse awaits. get in line, fatten up for the holiday ham. we’ll double-glaze ya with walls and walls of text and em dashes and sycophancy.</p>

<p>i feel it in my bones. deep in my soul.</p>

<p>where is the authenticity? the raw, unbridled awesomeness of humanity. of what your mushy mash of cells of our brains can create. not probabilistically, authentically. YOU.</p>

<hr />

<p>i’m leaning into my authenticity.</p>

<p>i have to create. i have to write. i have to connect. i have to reject.</p>

<p>harness the power of the human possible.</p>

<p>oink, oink piggies. let’s get weird.</p>]]></content><author><name>marshall houston</name></author><category term="pushback" /><category term="ai-culture" /><summary type="html"><![CDATA[slop. racing to the probabilistically perfect. sterile, milquetoast, borinnnnnggg slop. gather round the trough to fatten up on slop like some ai-powered herd of pigs.]]></summary></entry><entry><title type="html">mental experimentation budgets</title><link href="https://marshallhouston.github.io/mental-experimentation-budgets/" rel="alternate" type="text/html" title="mental experimentation budgets" /><published>2026-03-29T00:00:00+00:00</published><updated>2026-03-29T00:00:00+00:00</updated><id>https://marshallhouston.github.io/mental-experimentation-budgets</id><content type="html" xml:base="https://marshallhouston.github.io/mental-experimentation-budgets/"><![CDATA[<p>i love debugging. it’s a sense-making puzzle.</p>

<p><code class="language-plaintext highlighter-rouge">claude code + skills + observability clis</code> make debugging even more enjoyable. i can move through data -&gt; information -&gt; knowledge -&gt; wisdom levels quickly and switch between breadth and depth on a whim.</p>

<p>as i’ve built some small tools to explore what’s possible in this area, i’ve also been directly pairing with a wide-range of people on issues (the weirder &amp; more perplexing, the better). we record the live debugging session and automatically generate artifacts afterwards (highlight reels, docs with takeaways and patterns and strategies, etc).</p>

<p>people start applying this general idea in ways i’d never consider (love planting seeds and seeing what grows / thrives).</p>

<p>during a 1:1 with someone on my team who was using this flow, i asked how it was going as an early adopter. “super helpful, much easier to make sense of systems, drive outcomes, really enjoying it, etc”. however, there was one instance where this combo didn’t find something they knew existed in the observability data. their conclusion: “i don’t trust it anymore at all.”</p>

<p>wait, what? why throw away and ignore all the positive feedback. that surprised me.</p>

<p>since that convo, i’ve been noodling on the concept of <code class="language-plaintext highlighter-rouge">mental experimentation budgets</code> and how we might use this idea in the rapidly changing ‘wtf is happening’ period we’re in.</p>

<h2 id="mental-experimentation-budgets">mental experimentation budgets</h2>

<p>mental experimentation budgets are the capacity to keep trying new things (workflows, patterns, tools, etc) in the moment and over longer periods of time.</p>

<p>what’s your capacity right now? how fast is it draining? what’s the cost of each new attempt?</p>

<h2 id="the-variables">the variables</h2>

<p><strong>capacity.</strong> your total budget at any given point. this shifts with sleep, energy, emotional state, time of day, what happened in your last meeting. changes often.</p>

<p><strong>marginal cost.</strong> what it costs to run one more experiment. when everything is brand new, the cost is high. every interaction takes effort, attention, active decision-making. but as you build fluency &amp; patterns become automatic, the cost per experiment drops. you stop thinking about how to do the thing and you just do it.</p>

<p><strong>fixed cost.</strong> the startup cost of beginning at all. the decision to try or to switch into this context. getting oriented in a new tool or a new way of thinking. this cost is real and it hits before the experiment even starts.</p>

<p><strong>outcome shock.</strong> the cost that comes from the result. when an experiment goes the way you expected, the cost is manageable. expected outcomes are cheap to process mentally. but when something unexpected happens, when you know something is there and the tool isn’t finding it, that’s a spike. the cost shoots up. and if your budget is already low when the shock hits, it can be a total drain.</p>

<p><strong>return.</strong> not every experiment is a cost. some deposit back into the budget. a win gives you confidence, knowledge, momentum. success compounds when you’ve got the budget to keep going. returns are what make experimentation sustainable, not just tolerable. (suppose this could be folded into outcome shock in a capacity increasing way but shrug)</p>

<p><strong>recharge.</strong> the budget replenishes. sleep, movement, flow states, small wins, time away. these are inputs back into the system. the budget isn’t a battery that only drains. it’s a living resource that fluctuates.</p>

<h2 id="the-model">the model</h2>

<p>in cosmic farmland math:</p>

<blockquote>
  <p>remaining budget = capacity - fixed cost - (marginal cost × experiments) - outcome shocks + returns + recharge</p>
</blockquote>

<p>as i was thinking about the 1:1 afterward, i could see the model at work. the outcome shock hit at exactly the wrong moment. when the shock cost more than what was left in the budget, boom, we get “don’t trust it anymore at all”</p>

<p>feedback loops are built into the system both positively and negatively.</p>

<p>success lowers future marginal costs (you’ve built fluency). returns increase capacity (confidence expands what you’re willing to try).</p>

<p>however, shocks can create negative loops that seem to have more gravitational pull or acceleration than positive ones.</p>

<p>one bad outcome raises the perceived cost of the next experiment, which means you need more budget to try again, which means you’re less likely to get the return that would restore it.</p>

<p>boom, a single failure becomes a full stop. and now it’s harder to get started again. probably slower recharge rate as well.</p>

<h2 id="connections">connections</h2>

<p>a brief detour into some connections drawn from my past and from current golf obsession that, if i squint, the model is derived (at least partially) from. ymmv</p>

<p>i taught middle school math and coached sports before getting into software. i spent years digging into how people learn, how understanding builds and then sometimes just collapses. humans are sense-making machines, and i got obsessed with the mechanics of it. what conditions let someone integrate new knowledge, and what conditions cause them to reject it?</p>

<p>that obsession led me into cognitive science and psychology, and what i found there maps onto this model.</p>

<p>kahneman’s <a href="https://www.goodreads.com/book/show/11468377-thinking-fast-and-slow">thinking, fast and slow</a> describes system 1 and system 2, the fast automatic brain and the slow deliberate one. when you’re experimenting and it’s going well, system 2 is engaged, learning, processing, building. when an outcome shock hits, system 1 takes over. something faster than rational assessment, operating on pattern and instinct.</p>

<p>raymond prior’s <a href="https://www.goodreads.com/book/show/61657538-golf-beneath-the-surface">golf beneath the surface</a> calls it the old brain and the young brain. the young brain is where deliberate thinking happens. the old brain is where perceived threat lives. under stress, the old brain wins. every time. we aren’t choosing to ignore our wins. the old brain is making that choice for us.</p>

<p>donella meadows, in <a href="https://www.goodreads.com/book/show/3828902-thinking-in-systems">thinking in systems</a>, frames the budget as a stock. experiments are outflows. recharge is inflow. the feedback loops (reinforcing and balancing) are where the behavior of the system gets determined. you don’t change the system by pushing harder. you find the leverage points.</p>

<h2 id="putting-it-into-practice">putting it into practice</h2>

<p>as i’ve been thinking about this model and sharing with others, it seems like there’s something here.</p>

<p>some questions i keep coming back to:</p>

<ul>
  <li>what’s my budget right now?</li>
  <li>how do i reduce the fixed cost of starting?</li>
  <li>how do i build automaticity and reduce the marginal cost per experiment?</li>
  <li>am i aware of my recharge patterns? am i honest with myself about them?</li>
  <li>how do i increase my overall capacity?</li>
  <li>how do i build resiliency to outcome shocks?</li>
  <li>how do i make recharging more intentional?</li>
  <li>am i pairing the type of experimentation with where i’m at?</li>
</ul>

<p>this model gives me language for reasoning and sense-making.</p>

<p>does this resonate? what’s missing? what would you add?</p>

<p>here’s to understanding our mental experimentation budgets.</p>]]></content><author><name>marshall houston</name></author><category term="sensemaking" /><category term="mental-models" /><category term="experimentation" /><summary type="html"><![CDATA[i love debugging. it’s a sense-making puzzle.]]></summary></entry><entry><title type="html">bff: build friction fix</title><link href="https://marshallhouston.github.io/build-friction-fix/" rel="alternate" type="text/html" title="bff: build friction fix" /><published>2026-03-22T00:00:00+00:00</published><updated>2026-03-22T00:00:00+00:00</updated><id>https://marshallhouston.github.io/build-friction-fix</id><content type="html" xml:base="https://marshallhouston.github.io/build-friction-fix/"><![CDATA[<p>just start.</p>

<p>the rapid pace of change right now in tech world feels overwhelming. timelines are compressed. new tools &amp; new ways of working popping up left and right. all the things so fast.</p>

<p>for months, i said i wanted to get started, to get building. but i wasn’t taking the first step to actually build. instead, it was reading articles, chasing best practices, tweaking configs, getting my setup dialed.</p>

<p>at some point in late 2025 or early 2026 (maybe the hope of a new year?), i realized there’s no singular perfect prompt. i had to start somewhere. building, writing, engaging, finding the connections. just taking a first step. this realization freed me up.</p>

<p>bff (build, friction, fix) is a pattern that emerged after a few months of building.</p>

<p>i use it to give myself the permission, the freedom, to get started and take the first step. it applies on varying levels of granularity: a single session, larger features, entire projects or far-flung dreams. a self-reinforcing fractal pattern. small to wide to wider.</p>

<p>let emergent patterns emerge.</p>

<h2 id="build">build</h2>

<p>in this phase, the most important thing is to build. that’s it. take one step. try something, try anything.</p>

<p>release the idea of perfect. release premature optimization.</p>

<p>does not matter where you start. maybe it’s code, research, analyzing data, jotting down ideas, brainstorming, synthesizing an article, compiling pieces to search for connections.</p>

<p>yes, it takes from your experimentation budget. trying things has a cost.</p>

<p>take one step now to build. build something. literally anything. start now.</p>

<h2 id="friction">friction</h2>

<p>friction will happen. not if, but when.</p>

<p>as you build, notice. be aware of what wasn’t quite as simple as you wanted or what didn’t go like you expected. but don’t stop to fix it yet; that’s the land of rabbit holes. keep building.</p>

<p>(admittedly, yes, i’m spending more and more time in these rabbit holes. always have. i’m making rabbit friends, we’re chatting, hanging out. i’m a big waver in my neighborhood and elsewhere. lots of waves, lots of head nods. i’m head nodding and waving to rabbits as they welcome me to their communities. thankfully, though, i keep finding my way back to the main path.)</p>

<p>so as i build, what am i noticing that’s not quite as smooth as i’d like? what was harder than i anticipated? i jot these down simply, a quick word or three. we’ll come back to these.</p>

<p>once you’ve built the thing and you’ve got your noticings on friction, now’s the time to get explicit. name them. compile a quick list. brain dump it out.</p>

<p>as i’m writing this post, here are three frictions i’ve named and will apply fixes to moving forward. raw words, here they are:</p>

<blockquote>
  <p><strong>notes to words:</strong> notes to verbal brain dump clarified my thinking. but taking the verbal brain dump and crafting it into “what is the kernel? what is not being lost in transition?” how do i get these ideas actually into this writing system without losing the fidelity that matters? i’ll figure out how to make this better. we’ll figure out how to fix that in the future.</p>
</blockquote>

<blockquote>
  <p><strong>finding my voice:</strong> this co-intelligence combination, collaborative style. i’m having to think, when do i say something exactly as i want it? do i want it to go through a summarization process, because i don’t feel like it’s capturing my voice? we’re capturing my voice along the way. we need to figure out what’s my writing style and how to be clearer with what’s a quote, what’s an idea that we summarize versus directness.</p>
</blockquote>

<blockquote>
  <p><strong>ship it:</strong> the drafting process is key. go from skeleton notes all the way through to “hey, when is this done?” set some timers. am i losing the essence, or am i making the essence clear? this is going to be hard to navigate. when is it ready? just send it out and see how people engage. when do i feel good enough? i just have to keep going, knowing that my pattern can be side quests, more of this, more of that. this will be a friction that we’ll have to figure out as we move forward.</p>
</blockquote>

<p>friction is expected. by naming it, we now have a chance to fix it.</p>

<h2 id="fix">fix</h2>

<p>now we get the chance to improve our system and carry it forward.</p>

<p>talk with your tool, claude, opencode, codex, whatever you’re using. “here’s the friction i had. how can i fix this moving forward?”</p>

<p>and in conjunction, ask yourself the same question. how might i fix this? what do i think the recommendation will be? i’m literally asking myself in the same way i’d ask the tool.</p>

<p>this is a great way to understand the shape of the system. sometimes what you think and what the tool recommends don’t line up. that’s where the learning happens.</p>

<p>the fix might take different forms.</p>

<h3 id="human-clarity">human clarity</h3>

<p>we’ve learned some things. knowing what we know now, how can i say this differently?</p>

<p>you know now what you didn’t know then. maybe it’s a framing fix. am i providing enough context? have i done the thinking? is my lack of clarity causing the challenge?</p>

<p><a href="https://www.lennysnewsletter.com/p/getting-paid-to-vibe-code">lazar jovanovic talks about this</a> with his debugging workflow. when something breaks, he steps through layers: let the tool try, then bring your own awareness, then bring in an external tool, then check if it’s your fault. and when the fix lands, he asks the tool:</p>

<blockquote>
  <p>“i needed to do four different things to fix this. how can you help me learn to prompt you better so that next time, we do it in one go?”</p>
</blockquote>

<p>then he goes further:</p>

<blockquote>
  <p>“put what we just learned into rules. i’m not going to prompt you better. you’re just going to learn and prompt yourself better.”</p>
</blockquote>

<p>the human clarity is the bottleneck, not the tool. as lazar puts it, we’re going to be rewarded for clarity, judgment, thinking. building it is going to be instant. it’s the thinking that matters.</p>

<h3 id="structural-fix">structural fix</h3>

<p>maybe the fix isn’t how you said it. maybe it’s the system around you.</p>

<p>a change to your CLAUDE.md. adding something to memory. a skill, a hook, a command. these are the primitives, the composable building blocks.</p>

<p>maybe it’s a tool fix entirely. the one you’re using isn’t getting anywhere. you’re spinning. switch tools. “here’s the input, here’s the desired outcome, how do i get there?”</p>

<p>when you’ve got a hammer, everything’s a nail. cool, treat it like a nail. apply your own bff loop here and you’ll get more tools. all the tools. and the judgment on when to use them.</p>

<p>“but you said there’s no perfect prompt.” it’s not about finding that perfect prompt. it’s about thinking, how can i say something different? how can i do something different? how can i build the system so that the system is more important than any one single prompt?</p>

<p>and here’s the thing that stacks on it: you can always change it later. that freedom is magical. i’m fixing this one piece of friction right here. then i’ll do another bff cycle. and another. and another. just bff looping for days.</p>

<h2 id="bff-the-widening-gyre">bff: the widening gyre</h2>

<p>build. friction. fix. repeat.</p>

<p>the power is in the loop. the interactions over time stack together. that’s compounding.</p>

<p>i’m taking the smallest first step. noticing where things weren’t smooth. naming it. fixing it.</p>

<p>because we’re taking action and reflecting, patterns emerge. the shape of the challenges. the shape of how you work. the shape of the work itself. you’re building your system.</p>

<p>what didn’t go well? what do we want to experiment with? these aren’t new questions. but they’re hyper-personalized. my experience. my actions. my reflections. my fixes. yours will be yours.</p>

<p>as you work, you will evolve. maybe you start from scratch entirely when a system no longer fits what you need or want. awesome.</p>

<p>the same pattern repeats at varying degrees of granularity. fractals.</p>

<p>yeats wrote about the widening gyre as dark, destructive, things falling apart. the system you built no longer fits? that’s not failure, that’s growth. that’s freeing. you’ve got the tools to come back to center and rebuild. wider this time.</p>

<p>here’s what i found. i want to see what you find. let’s chat :)</p>

<p>a friend guessed that bff meant “build fucking fast” based on what i’ve been encouraging over the last few months. yes, that applies here too. compress the learning. establish your system. let’s go.</p>

<p>happy bffing.</p>

<p><img src="/assets/images/bff-build-friction-fix-032126-notebooks.jpg" alt="bff notebook, the handwritten notes that became this post" /></p>]]></content><author><name>marshall houston</name></author><category term="unhinged" /><category term="workflow" /><category term="experimentation" /><summary type="html"><![CDATA[just start.]]></summary></entry><entry><title type="html">hiyaaa world</title><link href="https://marshallhouston.github.io/hiyaaa-world/" rel="alternate" type="text/html" title="hiyaaa world" /><published>2026-03-21T00:00:00+00:00</published><updated>2026-03-21T00:00:00+00:00</updated><id>https://marshallhouston.github.io/hiyaaa-world</id><content type="html" xml:base="https://marshallhouston.github.io/hiyaaa-world/"><![CDATA[<p>i like to learn. i carry around a plain cahier xl moleskine notebook almost everywhere, and i doodle, jot down ideas, make connections, or scribble furiously to process.</p>

<p>i’ve written at times throughout my life. not consistently.</p>

<p>this is an attempt to change that.</p>]]></content><author><name>marshall houston</name></author><category term="ruminating" /><summary type="html"><![CDATA[i like to learn. i carry around a plain cahier xl moleskine notebook almost everywhere, and i doodle, jot down ideas, make connections, or scribble furiously to process.]]></summary></entry></feed>