justin․searls․co

You're looking at my e-mail newsletter, Searls of Wisdom, recreated for you here in website form. For the full experience, subscribe and get it delivered to your inbox each month!


Searls of Wisdom for October 2025

Hello! We're all busy, so I'm going to try my hand at writing less this time. Glance over at your scrollbar now to see how I did. Since we last corresponded:

My good friend Ken took me to the Magic game last night some number of nights ago. It was a great game because we were losing very badly, and then it became very close, and then, right at the end—we won! The classic comeback narrative arc was fulfilled. Sports!

Ken and I at the Magic game

I was reflecting on life the other day, which is a thing I do more often now that I'm firmly in Phase 3 of my evil plan to ride off into the sunset and gradually be forgotten by all of you.

My original plan for this essay would have pulled at the common thread that ties things like game design, derivatives trading, reality shows, and sports betting together. Unfortunately and unsurprisingly, it was taking me too long, and I'm now running out of time in November to give you a recap on what happened in October.

(By the way, don't be surprised if I just send you all a postcard for the December issue. I'm still new at running a monthly newsletter, and I'd prefer not to find out what happens when I fall more than a month behind. Feel free to demand a refund by replying to this message.)

So, anyway, like I said, my actual essay fell apart. Instead, I'm going to share a personal example of how a series of consequential decisions can paradoxically be both productive & rational, while simultaneously being costly & misguided.

I'd do it all again

It all started with one stray piece of unsolicited feedback.

In 2016, I was privileged to give a keynote address at Ruby Kaigi, which was held in the beautiful and intimidating Kyoto Convention Center. It was a big deal for me professionally. I worked hard to create the best speech I could. I also used the occasion to riff a little bit in Japanese while on stage.

After the talk, I was riding high. Hundreds of new followers, summary blog posts from Japanese developers, and even some Japanese-language tech news coverage. My head was spinning. I'll never forget the overwhelm of trying to keep up with my mentions after getting off stage. Beyond a certain point, there were too many replies to individually translate each one—I ultimately gave up and just bulk-faved them all. In that moment, I felt as though I'd finally received all the validation I had been craving from the Ruby community for over ten years.

About an hour later, a Japanese friend approached me while I was still riding high. But instead of praising me or my achievement, he bluntly told me my Japanese wasn't good enough and that I should take my studies more seriously.

Oof.

Decision 1

I started as someone who traveled to Japan. I was focused on nurturing friendships and engaging with the culture.

Being told my Japanese wasn't good enough—moments after having shown it off in front of a massive auditorium of people I respected—really, really stung. It stuck with me long after the ecstasy of having reached such a career milestone subsided. It was all I could think about for the rest of the trip. Even when I got back to the States, I couldn't shake it.

I came home determined to get that monkey off my back. I signed up for WaniKani, a SaaS app by the fine folks at Tofugu that uses mnemonic lessons and a spaced repetition flashcard game to teach Japanese kanji and vocabulary. I studied diligently for 30-60 minutes every day. It worked! In a bit over a year, I'd memorized over 2000 kanji and thousands more vocabulary words and phrases.

Like most modern educational software, WaniKani's design is oriented around a habit-forming game loop. It's fun to log in every day, level up by correctly answering flashcards, and (outside the app) discover that you're suddenly able to read things that were previously inscrutable.

Decision 2

I was now someone who studied Japanese. I was focused on clearing my reviews every day and reaching level 60 on a web site.

As I approached the end of WaniKani's curriculum, I'm ashamed to say I was more interested in tightening its game loop than deploying my newfound skills to actually communicate with humans. To that end, I had been building a to-do list—a year's worth of shower ideas detailing how I'd improve the tool if I had the chance.

A few of the bigger items on that list:

  • Connect a larger dictionary, so I could start studying any arbitrary word I encountered outside the app
  • Provide a better mobile experience, so I could study on the go without fear of losing my progress when the connection dropped
  • Facilitate memorization of production of English terms into Japanese—as opposed to the translation of Japanese terms into English—so I could better think of whatever Japanese word I needed in conversation

As is my wont, the instant I imagined a better software tool, I dropped everything to build it myself. So, from the tail end of 2017 and through most of 2018, I dedicated my free time to building an app called KameSame. It synced users' WaniKani progress, allowed studying of both production and recognition skills, introduced its own XP-based leveling system, incorporated the ability to search and add items from other dictionaries. It also included a boatload of other nice-to-haves like synonym detection, verb and adjective conjugation support, and AI-generated pronunciation recordings.

I released the app for free and shared it on a few forums. It quickly picked up an arena's worth of extremely active users. By last count, KameSame had over 20,000 users studying over 5 million flashcards. Keeping up with support requests and maintenance was time-consuming, but it was no match for my own voracious appetite to keep bolting on additional features. When I find imperfections in other people's software, there's little I can do but accept them (beyond contacting support or posting a salty take). But, because I had created KameSame for no one's satisfaction but my own, whenever I detected so much as a scintilla of UX friction, Justin-as-developer would take over for Justin-as-student and immediately stop studying to go fix it. Instead—ostensibly for the sake of my own learning—I would interrupt my reviews for hours or days to go work on the tool.

As KameSame began to look less like a hobby project and more like a real product, I started treating it that way. My own learning? That fell off a cliff.

But what was I supposed to do when I found a bug? Just let it be? Because that's how you get ants.

Decision 3

I was now someone who maintained an app for studying Japanese. I was focused on adding features, fixing bugs, and growing its user base.

In a strange way, my hobby project wound up becoming integral to my real job, as well.

Around the time I gave that keynote in Kyoto, I was humbled to be receiving invitations to speak at conferences all around the world. Being on stage in front of thousands of people was a great way to build awareness for Test Double and our services, so I defaulted to saying yes to every opportunity. I never particularly enjoyed the stress of preparing talks. I truly dreaded the grind of every business trip. And it had begun to feel soul-sucking that my primary work product had shifted from building stuff to competing for the attention of others.

But as I reached the peak of my speaking career, there was just one problem: I was running out of things to say.

See, I had been fortunate to meet many of my heroes—people in the industry I had looked up to—as they entered the later stages of their careers. They still showed up to conferences. They still gave talks. They typically repeated the same presentation everywhere they went. They often ad-libbed at great length, with little respect for conference schedules or attendees' bladders. I found all that pretty off-putting, but nobody else seemed to be complaining.

The root cause of this behavior gradually became clear to me. These men had transitioned from practitioners to personalities, and they'd become woefully detached from reality as a result. They were clearly drawing from firsthand experiences that were 5, 10, or 20 years out of date. I don't know if anyone else noticed, but I sure did. By wasting people's time and hogging a speaking slot that could have gone to someone hungrier and more relevant, I ended up losing respect for many of them.

Still, those heroes taught me one final lesson: when I didn't have anything novel or compelling to say, I should pass on the opportunity. Better to leave room for somebody else. When organizers asked me to play the hits, I'd reply with little more than a link to our YouTube channel.

This may have been the right decision, but it proved absurd as a marketing strategy. When I wasn't meeting new people or nurturing existing relationships, our consulting sales suffered. (I wasn't kidding when I said that running out of things to say was a problem!) I didn't love that dozens of people's livelihoods depended on my continued ability to fire hot takes and drop truth bombs, but that was indeed the bed I had made for myself.

To make matters worse, by 2017 it had been at least four years since a client had paid me to write real code for a real system. I simply didn't have enough time to add client work to the sales, marketing, recruiting, and operational demands of a rapidly growing business. Good problem to have, but I could also feel myself losing touch. At some point, I realized KameSame could serve as a solution by providing me a way to stay closer to the ground.

My passion projects had always inspired the things I shared in public, but this was the first time I found myself combing through my personal box labeled "fun" with the express intention of strip-mining it for marketing content at work.

By building a helpful tool used by lots of people, I had gained relevant experience with the trending tools and techniques of the day after all. By continuing to invest in the app over a long time horizon, it had naturally grown more complex and mature, better resembling our clients' real-world code—and forcing me to live with the technical debt I'd gradually accrued. I went to work translating the nights and weekends I'd spent building KameSame into fresh marketing messages for Test Double.

Over a period of several years, I was able to harvest plenty of fruit from the KameSame tree: open source libraries (like Standard Ruby!), blog posts, and hot takes spanning topics like whether React was bad (it was) or Webpack was bad (it was) or snapshot testing was bad (it was, too).

But in my mind, all of this content was laddering up to a capstone presentation that I wanted to give about the hidden virtues of building a whole-assed software product as a one-person team. I was soon blessed with the curse of my submission being accepted for both RubyKaigi and RailsConf in Spring 2019.

From there, I did what I always did in the run-up to giving a conference talk: obsessively prepare a meticulously crafted deck of hundreds of slides, replete with custom artwork and hand-tweened animations.

Decision 4

I was now someone who created marketing content inspired by an app I maintained. I was focused on promoting a vision for how software should be written in the interest of remaining top-of-mind in a crowded market.

When companies are small, founders are forced to be generalists, as there's nobody else to do the shit work. As companies grow, founders necessarily specialize. By the late 2010s, my role had narrowed to sales & marketing. My notoriety had been enough to keep 50 consultants busy, but as we inched towards our 100th hire, our growth had begun to outstrip my individual reach. Keeping the business fed with new opportunities had become my full-time focus, and 40 hours a week was no longer cutting it.

The pressure I felt from those stakes was, at times, overwhelming. I poured all of it into creative projects like this talk. The rest, I poured into cocktail glasses.

By the time I was rehearsing the talk that had become The Selfish Programmer, do you think I was still studying Japanese? Get the fuck out of here. I didn't even have time to keep up with my app's support requests—I was too busy building a slide deck about how great it was!

And then, finally, I gave the talk. It might be my all-time favorite. It was definitely my most ambitious.

Maybe all that work ultimately led to a sale. I don't know, it doesn't work like that. Someone told me once that "the thing about marketing is that only half of it works, and you don't get to know which half."

At that point, I felt empty. I was deeply exhausted and unsatisfied with the life I was living. My side projects and creative endeavors, which had always been a private respite from the drudgery of existence, had themselves become tangled up in the drudgery.

I admit to not knowing exactly what "burned out" means, but that's probably what many of you are imagining right now. That isn't really it, though.

It was more like the recognition that you've reached the natural end of a relationship. Not with a person, but rather with the only business I'd ever had a hand in founding.

The company itself had never been my passion. The company had instead been a vehicle whose design supported the pursuit of my passions. And it was around this time, following the positive-but-insufficient reception to my creative work, that I realized the business had grown beyond that design. Letting the things I loved doing be merely things I loved doing was no longer a viable path to our continued success. For the first time since we started, the business didn't just demand more from me, it demanded something substantially different. And I wasn't prepared to become the person who could give Test Double what it needed.

It was then that I started imagining what would need to change for the company to succeed after I was gone.

Popping the stack

At every step, I knowingly and willfully did all this to myself:

  1. I perverted my creative passion to satisfy a sales imperative, because…
  2. …I'd allowed a personal project to become my last source of relevancy, because…
  3. …I'd become obsessed with finding a better way to memorize Japanese, because…
  4. …some language-learning software had addicted me to its game loop, because…
  5. …my feelings were hurt when I was told my Japanese wasn't good enough, because…
  6. …I'd co-founded a business whose success depended on what other people thought of me.

It's been over five years since the end of this story, and I'm still actively working to reclaim pieces of myself. Found one this morning.

And yet, as the tired movie cliché goes: I'd do it all again. I truly don't regret a thing.

In fact, because I didn't set out to share this story with you today, it's also my first time hearing it. The above represents a novel weaving together of a collection of facts and memories that have been swimming around my head for years.

Is what I just wrote true? No more or less than any of the other stories I've told to make sense of the decisions that brought me to this point. In tracing every step of the path that got me here, my dominant emotional response has been one of gratitude. I'm grateful for all these experiences, and I'm grateful for the opportunity to be able to take the time to write about stuff like this. And I'm grateful that you read it and might find in it something to apply in your own life.

(Sorry for being 25 days late in sending this, though. No excuses. I do feel badly about that. Won't happen again. Unless it does.)