Justin Searls Profile picture
Almost as good at writing code as talking about writing code. Total 🐞 magnet. Co-founded @testdouble. @beckyjoy's lesser ½. 日本語 🆗. A Song of 🧂& 🔥.
Feb 23, 2022 10 tweets 4 min read
As a person with a VP/C-level title, I get a LOT of junk email. I almost always trash and ignore them.

But today, for the very first time, I actually took a meeting with one of these people, and you'll NEVER GUESS (actually, you might guess) what happened next.

cw: scammers! 🧵 It all started when I got a message from someone named Richard C. Willison. I responded because their profile said they'd previously worked at @thoughtbot (they're great!), claiming he had joined a new services company with unbelievably low rates and suggesting they were US-based
Feb 9, 2022 9 tweets 2 min read
New talk! Debuts at 1pm eastern.

The title is too audacious, as usual: "How to Trust Again".

You might ask, "How can a ~30 minute video accomplish that?"

Answer: by centering trust on what YOU control about how you work, collaborate with your team, and relate to your company. I wrote this talk because I spent most of my life playing the role of "irrationally distrustful bastard".

But 2020 turned us inside out. High-trust people in my life were broken by society's failures. I didn't realize how much I had relied on them for my own safety & stability.
Jan 21, 2022 15 tweets 4 min read
Last year at RubyConf I did a talk about making Ruby gems (blog.testdouble.com/talks/2021-11-…) and yesterday I published a new gem called maybe_later (github.com/testdouble/may…).

Here's a thread pondering "why do a handful of people make a bunch of libraries when people never publish any?" I think about this a lot, because my skills don't fit the mold of the Good Programmer archetype. When people express they're "not smart enough" to create new projects themselves, if anything it triggers imposter syndrome *in me*, because I'm genuinely very bad at a lot of this.
May 30, 2021 10 tweets 6 min read
This morning's project: figure out how to get highlighted Japanese words out of my Kindle and into plain text, so I could import unknown words into my flashcard app to study them. Here's how I did it, in case you're interested

As usual, everything about this was too hard. 🧵 First off, I've been using a Kindle Oasis logged into my Japanese Amazon account to read novels. They're formatted like Japanese print books, with pages turning right-to-left and text laid out in vertical lines (top-to-bottom, right-to-left) A picture of a Japanese boo...
May 15, 2021 16 tweets 4 min read
I'm realizing I've never shared this publicly before, but I probably should: almost all the advice you hear about software testing is bad. It's either bad on its face or it leads to bad outcomes or it distracts by focusing on the wrong thing (usually tools). A brief thread on why Programming is hard. Writing a program that works reliably and doesn't fall over within a few weeks or months maintenance is very difficult and—frustratingly and absurdly—getting harder all the time.

Testing, security, accessibility, internationalization—all secondary concerns.
Mar 12, 2021 21 tweets 4 min read
I think it's time to discuss the efficacy of Pull Request Reviews as a way to ensure code quality and shared understanding on software teams. Here's a little thread on some of the experiences I've had in my career, why I think this matters, and what we can do about it. First though, a bit on my background.

In the early days of my career, most teams used cvs or svn. A "code review" was literally a scheduled meeting in a physical room with a 1024x768 projector. Everyone nitpicked your code, it was terrifying, and it took at most two hours.
Nov 12, 2020 14 tweets 6 min read
Hard seltzers & canned cocktails are having a moment in America. But we've got *nothing* on Japan when it comes to canning seltzer with clear alcohol & low-carb sweeteners.

So here's another thread on my year in Japan: this time on Chūhai.

Up frist: a Blueberry & Prune aperitif Backing up, if you haven't heard of Chuhai (酎ハイ / チューハイ), it's an abbreviation of "Sho[chu High]ball" and a major beverage category in Japan—typically reserved as much grocery shelving as beer!

Flavors cycle frequently, and aren't bound by traditional cocktail norms.
Nov 10, 2020 4 tweets 2 min read
Apple just pulled an iPod Mini "this is our most popular product and today we are discontinuing it" with the MacBook Air. The Intel-based MBA is now unavailable for purchase. Only the Apple M1 chip from here on out. Also interesting: you can already see the collapse of non-meaningful choice in the Mac lineup, as predicted. Just to keep symmetry with the Intel MacBook Pro options, these two M1 models are literally identical—if you select the 256GB model it lets you configure it back up to 2TB
Oct 25, 2020 24 tweets 11 min read
One thing I've been meaning to share about our year in Japan and one of the most fascinating aspects of its bureaucracy: garbage collection.

No, really! Garbage sorting is a massive part of daily life in Japan, and for numerous cultural, practical, and political reasons. Thread: [Caveat to anyone interested in living in Japan: don't let this scare you off. We rented a detached single family house in a suburb of Osaka in Nara prefecture. I'm told that our 30k pop. town really punched above its weight in strictness/conservativeness. It was expat hard mode]
Sep 29, 2020 40 tweets 28 min read
Since getting back from Japan last month, I've been wanting to Get Back to Basics with Twitter and just post an endless stream of food pics. So here: have a thread of great and/or weird food highlights from our year in Japan 🍔🍣 First up, Japanese curry. Great with a pork cutlet, with veggies, with udon noodles, with a gigantic block of cheese. Hard to screw up ImageImageImageImage
Aug 31, 2020 23 tweets 8 min read
Japanese pop artists continue to pump out music videos with the same degree of earnestness that the US did in the late 80s.

So here we go: a thread highlighting some of my favorite modern Japanese music videos over the last year spent trawling dive bars and karaoke joints. Speaking of earnestness and 80s nostalgia, first up is 忘れられないの (wasurerarenai no / "I can't forget") by サカナクション (sakanaction)
Aug 20, 2020 10 tweets 4 min read
Back in April, @testdouble went from two owners to a 100% employee-owned ESOP. As time goes on, I am more and more certain this was the right thing to do. Here's @toddkaufman's announcement: blog.testdouble.com/posts/2020-05-…

And here's a thread on why more tech companies should be ESOPs Since our founding in 2011, @toddkaufman and I have been laser-focused on building a (1) sustainably profitable business that (2) gave people the stability and security to do their best work and (3) treated everyone fairly by sharing in its success.

Our ESOP supports all 3 goals
Aug 13, 2020 19 tweets 5 min read
I've been thinking about this post from @jessitron for the past week and am still trying to understand why it doesn't resonate with my experience of being an application developer over the last decade or so (a thread) jessitron.com/2020/08/04/bac… The technical shift is literally true:

Are there a 1000x more dev tools now than then? Yes.

Is it nice that more devs use UNIX than Win32? Yes.

Are there 50,000 npm CLIs for building React apps? I'd believe it

But has this gotten us closer to being a knowledge-based industry?
Aug 6, 2020 7 tweets 2 min read
A brief thread about life in Japan is about how people seem to be reacting to COVID. #searlsjp

From Japan, I consumed a lot of US based news about COVID. I knew case counts were 100x worse here. I expected to return to a dystopian lockdown.

Instead, I'm shocked. America gave up In July, when our prefecture (Nara, pop. 1.3M) had *literally zero* est. active COVID cases, I would go days without seeing an unmasked face. Drivers of empty cars wore masks. Restaurants were open but virtually empty. People shopped in stores, but batched trips. Roads were empty
Mar 27, 2020 6 tweets 2 min read
Just wiped macOS and started fresh (not from backup). I do this at least twice a year. Every time, performance goes way up and I encounter far fewer bugs.

My best advice to anyone using a Mac is to automate as much as you need to do this too. I've memorized every Settings pane. It's curious how Apple has made it harder to really wipe a Mac over time.

iOS: Erase All Contents and Settings -> Password -> Done

Mac: Recovery -> Disk Utility -> Unlock -> View disks -> Erase -> Install macOS

And your keyboard will still be paired to the next macOS install.
Mar 8, 2020 4 tweets 1 min read
There's no such thing as giving away software for free.

Once you have users, time-consuming requests are inevitable. I've spent about 6 hours per week for the last 9 years just responding to requests about software I shared for free. When I complain about this to others, their advice is usually "just ignore users", but I am way too worried about everyone liking me to ever ignore people. Separately, I never know how real or severe a problem is until I investigate it, so ignoring an issue will just eat at me.
Sep 26, 2019 4 tweets 3 min read
Somehow managed to upgrade a 6 year old Rails app from 5.2 to 6.0 successfully in under two hours, AMA.

Seriously, I just did a `bundle update` to latest for every gem in the Gemfile and things pretty much just worked. Ruby is officially a mature ecosystem. Yay! If you don't understand why saying "my app still works" after running `bundle update` is newsworthy, here is me on a stage in 2014 giving a keynote at @rubyconf presenting (in violent agreement!) a @garybernhardt tweet that such a notion was literally preposterous: Image
Sep 20, 2019 4 tweets 1 min read
Time to break out the ice packs Image First impression holding the iPhone X: this is too thick and heavy

First impression holding the iPhone XS: this is thicker and heavier

First impression holding the iPhone 11 Pro: this is thicker and heavier
Jun 7, 2019 9 tweets 2 min read
Sign reading, 1. Tests with multiple assertions describe code that does multiple things
2. Assertions that cannot be expressed as `assert_equal` (usually) describe side effects of impure functions
3. Assertions that read like English come at a high cost of indirection
Jun 4, 2019 14 tweets 4 min read
Buckle up:

"Why people who are really good at test-driven development (TDD)—even people who write about it, speak on it, and maintain tools to support it—don't always practice it," an exclusive twitter dot com thread in reply to this toot by @RobOldCodes: I was introduced to XP & TDD in 2004, fumbled around with them on-and-off for a while, then in 2009 joined a series of teams that practiced TDD consistently, thoughtfully, and rigorously. No joke, we shipped production apps with 100% code coverage in Java & JavaScript(!) in 2010.