After 8 years, I've realized that I don't really like jiu jitsu. This may sound strange considering I still train twice a week, every week.Jiu jitsu was, at first, something that helped me remove that chip on my shoulder. It proved my manliness (or so I believed.) Indeed, the irony of getting sma...
In his post Why Software Factories fail the CEO of HumanLayer argues that a combination of reasons (agents, training, harnesses) are the reason that we don't see effective "software factories".But I disagree with the whole premise: that a software factory is possible or desirable.The reason softw...
In business, life, and combat—those who adapt more quickly—win. Adaptation looks a bit like a loop—notice, adjust, measure, repeat.Agile beat Waterfall as the industry standard because taking years to plan and build your software project before finally putting it in front of your customers doesn'...
Deformed from years of video games, my brain thinks growth feels good.As you level-up, the game feels nicer—less grind-y.Unfortunately, it took me 31 years to notice that life doesn't work like that at all. Growth is hard, and most folks (myself included) are wired to avoid it. "The Resistance i...
I wrote this in response to a Hacker News question. Harness For the past year or so I've been a Claude Stan. However, their recent availability issues combined with the Fable clown show, has caused me to consider other providers. My current daily driver is Grok 4.5. It's easily 2x (or more) faste...
Note WARNING Human-crafted em-dashes ahead. For decades, a software developer could earn a decent living by merely writing "good enough" code. The speed of implementing this code was the biggest risk, which meant that delighting the end user was an afterthought (if a thought at all). Good...
The Logitech G604 is my favorite mouse ever, so much so that before they were discontinued (RIP), I purchased two at the same time so I wouldn't have to change mice for years to come. Long story short, my original mouse is still going strong, but I finally opened up the second one to use at my co...
E,You were in my house for 429 days. Looking back now, that time feels like a blur. How can this feel like a single day and a lifetime all at once?I feel the weight of the past and wonder, "Was I a good steward of the time I was given? Did I encourage, teach, support, and love you as well as I co...
Note For the purposes of this blog, "information asymmetry" is when one party can only exist as a business due to predatory practices that are only recorded in lengthy legal documents that, before AI, no one read. Large language models are exposing major flaws in systems that run on inform...
Despite the town criers' warnings, vibe coding is here to stay. Worse yet—it's effective! I have not yet built a ten-billion-dollar ARR SaaS product, nor have I successfully used AI to manage a 10,000 microservice cluster of pure, single-line node functions. However, I have built a profitable sof...
Large language models (LLMs) usually default to lists, obvious observations, hedging, and comprehensiveness. To gain deep insight, design prompts to close off these escape routes rather than adding instructions. This is an example of subtractive solutions.Explicitly constraining the LLM to ONE th...
Whether you are terrified that maybe AI won't get better, or actively glazing OpenClaw for being your new life manager we can all agree—things are accelerating.Whether that's good or bad mostly depends on what color your blinders are.Traveling at mach-Opus, shipping at the speed of thought, has t...
Lack of Clarity ✨ I've found that somewhere around 98% of all my procrastination comes from a lack of clarity about what exactly the end goal is and what the very first step towards that end goal should be.A lack of clarity can be many things: Uncertainty around the expected/ideal outcome Uncert...
Recently, I got an email newsletter from Jonathan Stark titled, "Why Editing = Thinking" which got me thinking about writing, editing, and crystallizing your thoughts.Writing is always unstructured in the beginning: you just plop words onto paper. Yes, there are systems and ways of structuring wo...
Recently, I've been unsatisfied with Reflect notes primarily because the way my brain works doesn't seem to align well with Reflect notes. Systems like Reflect, Roam, Obsidian, etc, all work based on the concept that ideas are scattered and you create links between them.Perhaps for some jobs and/...
A while back, I started using iTerm2's Dynamic Profiles. However, I haven't had to do much modification since a lot of my profile setup was done through the UI before I switched to Dynamic Profiles.If you're not aware, once you switch to Dynamic Profiles, you must use the JSON file to edit them. ...
A project that I'm leading has an existing monolith and a newer API that is partially derived from existing functionality in the monolith. We'd like to offer this API as a product separate from the original monolith, so we need to maintain two separate databases of user records.This means we need...
I was surprised when a Capybara test that's been running fine for weeks, suddenly threw this error:Selenium::WebDriver::Error::SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 131 Current browser version is 133.0.6943.54 I think my local...
Recently I built out a new model which utilizes ActionText and by extension ActiveStorage so that I can embed attachments and images.However, when I tested it locally it didn't work. It left a cryptic failed to upload <image name> error code 0 message.I dug around, and found this post which...
I ran into an issue where I need to build a Rails environment with the :development group, which doesn't happen in the default Rails Dockerfile.To fix this, we can use ARGs in the Dockerfile to enable Docker Compose to pass in variables at build time. However, you CANNOT use them after the FROM d...