I have much to write; the backlog is longer than ever before, both literally and figuratively. Our water is out; our daughter is happy; we are keeping sane, and warm, and busy, and we are sleeping lightly but well.
It might be premature to write this review: I'm sure I'll play this game for another ten hours over the next month, and maybe by then (as is often the case with ascension-based roguelites) my understanding of the core game and mechanics will transform, and all of my forthcoming thoughts will be revealed as the meanderings of a novice.
This is a thing that I worry about more with negative reviews than positive ones, though: and I really liked Luck Be a Landlord, even if I found — find! — it a tiny bit wanting. It is in many ways a deckbuilder stripped down to the essence — build a deck, draw 25 cards in order — and your sole act of agency is to choose (or not choose) what cards/items to add to your deck.
Please do not mistake my elision here for disparagement: LbaL crushes this core gameplay loop. The combination of dopamine and analysis is second to none; it absolutely devoured me, even through the runs where I felt like I didn't lose so much as I didn't get great options in the first six hands. [1]
Where I find it lacking is depth once you understand the mechanics and synergies at play: the ascensions (at least the first ten, which took me around twenty runs to climb) are less about transforming the gameplay and more just increasing the incline; the universe of cards is pretty sharply divided into realms of Obviously Good and Obviously Bad, and the anti-capitalist intrigue is fun but doesn't actually contribute much to the gestalt of the game.
Seriously, though: if you like Slay the Spire, download and play this immediately. It won't be your favorite game, but you will have a great time with it, and there are many games that fail to hit that mark.
Again, this might be a thing that I look back on with shame rather than consternation! ↩︎
(You may be interested in 2023 as well, which was last year's annual review.)
Family
Haley and I welcomed our first child, a daughter named Lucy, on September 24th. She is perfect in ways both obvious and mystical. Our whole life is hers, now: this is even true of Telemachus, who proudly and rapidly assumed the title of big brother with characteristic gusto. [1]
I have more writing — which is to say more thinking, which is to say more doing — about what it means to be a parent, and how to be a good parent. We read the Oster books, we road-tested strollers; we were lucky enough to have a safe and relatively uncomplicated time at the hospital [2]; we slept for sixty minutes at a time, then two hours, then four, and now six. Everything is a lovely maelstrom; we have never been so lucky, to have found each other and to have the sibling and parents and extended family of friends and neighbors that we do.
Health
Ha-ha. I mean. I am going to grade myself both harshly and kindly here, which is to say that I'm in my worst shape since... 2018, maybe? I do not feel bad about this; I still try to eat fairly healthy and walk four miles a day [3] but there is not much else to counterbalance the "terrible sleep, much more delivery/takeaway, tremendous amounts of caffeine, no dedicated exercise time" melange in which I (just like every new parent) am adrift.
In the start of the new year, I'll be picking back up nSuns (which is quite literally exactly what I said last year before pivoting to a 5/3/1 program because nSuns was too taxing) and starting to do some jogging with hopes of improving my 5K time. We'll see! No plans (or hopes) to get into some hitherto-unseen level of fitness, just to shift back into a default state of discipline and posture now that the first wave of chaos has mostly passed and we have a bit more time and space to breathe.
Buttondown
Ending last year, I wrote:
The question that the industry trains us to ask is: what's next? I think that's obvious from a product perspective but a little less so from an organizational or business one: but my high-level goal for next year is to make a full-time hire, and all of the financial/existential commitments entailed therein.
It took me some time, but I'm ending 2024 with an answer to that question (see Why should a company?) and a full-time hire to boot.
Most of this year was spent in operations and development: I was a practitioner more than a manager, largely because I was interested in pushing Buttondown forward as much as I could before Lucy came. That was successful! Successful here meaning: Buttondown once again basically doubled in all of the metrics that matter, and it did so in a way that I felt honored my own ideals as an engineer, writer, and human.
Third South
Our goal with the first full year of Third South Capital was a diptych of existential questions:
Do we enjoy spending time and energy on this thesis, relative to other options?
Is this a financially viable thesis, relative to other options?
(And, yes, in that order.)
The answer to both questions proved to be a smashing yes, and in the waning weeks of this year we started to once again fire up our acquisitive flywheel. (Please reach out if you're ever interested in chatting about your company!)
This was, legitimately, the first "real" year of writing in a long time for me. I think it was largely prompted by the increasing fracture of social networks and continued collapse of Twitter as a respectable, hospitable platform; I wanted to broadcast and no other better option remained than my own blog.
For the first time in a long time, I've had people talk to me about my blog. The two most common remarks I receive are:
I love your blog specifically because it is so weird and idiosyncratic.
Why and how do you write so much? What are your goals?
I can say with some degree of smugness and honesty that the answer to the latter is the former.
Media
I don't exactly have a rich corpus of art to review from this year: the first nine months were spent being as heads-down as possible, and the last three were spent in a mode, as aforementioned, that offered little opportunity for consumption that wasn't audiobook-based.
That being said, the best things I experienced this year, in no order, were:
In retrospect, every cliche about parenthood is true; the one I found myself most surprised by was just how quickly and thoroughly a child seeps her way into every pore of your life, suffusing it with renewed texture and meaning and urgency. There is nothing I do now without Lucy by my side, either literally or figuratively.
In last year's coda, I wrote:
The median day of 2023 looked something like this: eight hours of sleep, a good workout, ten hours of exhausting intellectual work growing a business, some puttering around the house and tending the garden, two dog walks, an evening spent unwinding with my wife, an episode of anime with my brother. There are a lot of things I wish I could fit into that day: more time writing, more time exploring new technologies, more time playing video games, more time exploring Richmond. At the same time: I think I chose wisely.
And now, of course, I look back on that time of my life with not just a sense of detachment — again, to risk cliche every memory before your child is so aggressively The Before Times — but also a sense of irony that I could have ever felt like I didn't have enough time then. All I had was time!
And now, instead of time, I have a daughter for whom I would do anything. It is hard to fret about the things that fall away on the margins — a sourcing call that could have been interesting but certainly couldn't have been vital, a partnership talk that wouldn't work out anyway if the relevant details couldn't be hashed out over email, a great new restaurant with a wait measured in hours, a great new RPG that really hits its stride once you get past the first ten hours or so — when the alternative is this tiny little scientist of yours, bright and beckoning, whose every breath and burp and coo and cough is your charge and triumph.
What I am saying is this: it is hard to care quite as much about craft when fidelity has your eyebrows and your wife's nose — it is hard to care about scale when you have divinity asleep in your arms, sighing softly after three and a half ounces of milk.
(And I do care — and I do fret — and whenever I do too much of either, I peer into Lucy's bassinet and remember just how good we have it.)
Thank you
To my wife Haley, light of my life; to Lucy and Telly, precious and perfect; to everyone who sent us a note or meal or gift or hug for the first few weeks coming back from the hospital; to my grandparents, who I think about every time I see Lucy smile; to everyone who's patiently waiting on a response from me in Q4; to every customer who made it possible for me to step away from my job for two months and still afford Pampers; to you, dear reader, for getting this far.
We were, if we're being honest, a little bit worried about this dynamic. In reality, what has happened is that any time Lucy cries Telly softly pads over and licks her face and if she keeps crying (rare) he patiently sits down next to her and waits. ↩︎
Haley had minor pre-eclampsia and was induced two weeks early; she's been great ever since, and bounced back (again, with characteristic gusto) much more quickly than even she had hoped. ↩︎
Which is to say nothing of all the stair work that I do now. Being a parent is about many things, but mostly it is about bringing things up and down stairs. ↩︎
(Order in the CSS rule sense, not the metaphysical sense.)
The time has come to begin exfiltrating some higher-traffic, higher-leverage parts of Buttondown's admin UI away from the autogenerated Django admin and into some more bespoke components.
Take, for instance, this rather grisly (but useful) inline admin table:
This contains useful information but is annoying to parse. It gets replaced with the following HTML, all still governed by Django and a wallop of Tailwind [1]:
draft
about_to_send
in_flight
sent
It's a trivial thing, but lets me pull out a new toy that I learned from Mary a few weeks back: order, which lets you re-arrange the rendering order of elements in a flex container irrespective of their original order.
Obviously, that is a lot of HTML to write for a very simple outcome. There are a bunch of ways you could reduce this. Why so much repetition? Why specify group-last for every node when you know it's going to be the last one?
Because in reality, the above HTML is actually, in Django, a pure and concise for loop:
Not mobile friendly, I'm afraid! Not exactly a pressing concern for the admin site at the moment. ↩︎
I invited nickd to join our Linear instance yesterday, which reminded me that I had a slew of notes I wanted to publish on our own experience of migrating from GitHub Issues to Linear, and some reflections on it as a product now that we've been using it for a few months.
One useful lens for understanding a product's positioning and strategy is to look at what its primitives are — the experiences and states that stand alone (and hopefully offer value) without any exogenous or endogenous connections. [1] For Linear, the core primitives are issue and projects; you cannot, for instance, tie issues to initiatives, nor can you create a document that doesn't tie back to a project or issue. It does not exactly take oracular powers to assume that this is not going to be the case for much longer; it is easy and seductive to imagine a world where documents and writing of a more artificial, less project-based nature live in Linear, simply because that's the most pleasant place to write, read, and collate them.
Regardless of Linear's success as a brand, it's very very clear that Linear's success as a product is simple: it is really, really good, in a way that is almost uninteresting. Linear offers very few novel features [2] and instead invested a lot of time, energy, and polish in... just getting everything correct, and making it work extremely extremely fast. (This is, to be clear, whatever the opposite of a backhanded compliment is.)
[REDACTED BUTTONDOWN ENGINEER] commented that using Linear "felt so much better than using GitHub Issues that it made [them] want to actually spend time making sure their issues were up to date", and I echo that sentiment tenfold. There aren't a lot of bold new workflows or insights that using Linear has unlocked, but it has changed "backlog management" from one of my least favorite chores due to the lag of GitHub Issues into something that I genuinely look forward to doing because it feels suddenly tactile and cybernetic.
Relatedly, what all of these nascent "Linear for X" tools seem to get wrong is that the specific design language and branding is downstream (or even orthogonal) to what makes Linear feel so good, which is its obsession with ergonomics. The hyper-designed table views and Things-style progress-indicator chart icons are nice, but they belie the obsession with performance. [3]
In case anyone's reading from the Linear team, my (meager!) wishlist is as follows:
Let me assign individual issues to initiatives
Docs as a first-party primitive
Let me mark certain views/issues as publicly visible (I know this one's niche!)
And, similarly, much of the nuance in "land-and-expand"-style product development, where you wriggle your way into a company with a single wedge and then hope that the company jams more of its state and headcount and process into your product, is offer facility and stair-step value in doing so. ↩︎
The label taxonomy thing, maybe? And "pivot tables in a sidebar"? ↩︎
This is how I want all my tools to be. There is a ton of room in these markets for healthy and friendly competition — and no need at all for winner-take-all or monopolist attitudes.
First off — credit where it's due, I originally came across this genre of page on Memberful's site, and my reaction was pretty much the exact same as Chris's.
Two other points I'd make in favor of this page, or at least something spiritually akin to it:
All of Buttondown's product missteps [1] come from feedback from well-meaning, pleasant customers who deep-down are interested in a different product entirely. Being quite vocal about knowing who we're building for is a good reinforcement mechanism to make sure the customer feedback we get (both implicit and explicit) is coming from the right people, and not someone really enthusiastic about our brand + ethos but is really just looking for a CMS.
People have loud mouths and long memories, especially in long-term, infrastructural spaces like e-mail. My second-largest-customer by LTV was referred by someone who trialed and liked Buttondown and ended up going with a different product because we didn't have omni-channel; we have many customers who don't use us for their first company and then switch to us for their second company; my personal favorite anecdote is screenshotted below, where a customer who tried Buttondown shortly after launch (who I then referred to a different product that had better pricing at the time) came back six years later.
This applies more to companies as described in Befriending the Goon Squad, where your main goal is continued survival rather than winning a time-sensitive land-grab (or, if you're really early on in your product's life, it can be useful to yes-and every single customer request to random-walk your way to PMF — but neither of these options are things that I would personally do myself nor recommend to others.)
of which there are thankfully fairly few, but that's a separate essay for a different day. ↩︎
I've been on the hunt for a new way to dogfood Buttondown for the past month or so, and I've finally found it: Hypermodern Django.
At this point, all of my/our usages of Buttondown for Buttondown don't involve archives: we're using it headlessly, with RSS-to-email and APIs powering both this site's newsletter and the 'official' one. This is great, and I'm proud of the fact that we can even do that, but it means:
archives are turned off
the "general" analytics flow of everything archive-related is turned off
And this is a shame! I learn best about where the product needs evolution from usage; we've known abstractly that the archives are good-but-not-great for a while, and I suspect a huge part of that is because we're not using them.
So, the search (idle, errant) for a good newsletter concept began. I had the following criteria:
Something that didn't make more sense to be on the actual buttondown.com domain;
Something that wasn't expressly Buttondown-specific;
Something whose average reader might be a Buttondown user;
Something that wouldn't be expressly tiresome to maintain, either by me or by the Buttondown team.
Something that would be a legitimately good newsletter in its own right, not just a way to dogfood Buttondown.
The best way to get rich is to keep $10 million in your checking account in case a good deal comes along.
via Charlie Munger
Three months ago, I wrote Bluesky et al, in which I walked through the various platforms vying for the dubious title of "Twitter's successor" and landed on Bluesky as being my favorite, perhaps less out of its ostensible inherent virtues and more out of the size of its alternatives' flaws.
Flash forward ninety days, and I feel as though I am a veritable Nostradamus [1] — Bluesky has exploded in growth, and much of its theoretical promise has been converted into reality. I struggle to point out a way in which it worse for my use cases than Twitter:
Thanks to what is, in retrospect, a genius UX innovation in "Starter Packs", the social graph that Twitter took a decade to meticulously build is now more or less extant in Bluesky. (There are folks missing — there's a lot of growth left to happen — but it's exited the awkward "first three people in a conference hall" phase.)
The app experience is performant, stable (relative to Twitter's), and rock-solid.
Engagement is higher than Twitter's (both for my personal account and for Buttondown's), and I am not subjected to the maelstrom of awful algorithmically-boosted chum.
More than anything, using Bluesky feels like playing WoW Classic or OSRS — it's in many ways consciously retrograde, and in much the same way that both of the "classic" editions of MMOs have since dwarfed their originators in popularity I would not be surprised if a similar dynamic plays out here: if the concept of a deterministic social graph has any enduring merit now that its sun has set, an app that doggedly clings to its users' nostalgia may end up more successful than one wishing to straddle both the past and the future.
Or perhaps Bluesky's business model — which to my knowledge is still somewhere between nascency and absence — won't work out, and it turns out the only enduring moats for this kind of business are either Panopticon or loss leader. I am not smart enough to guess, but I am grateful to have a social network I actually enjoy using, for as long as I'm lucky enough to have it.
As I write this, I truly don't know if this is an ironic reference or not. Was Nostradamus actually correct about anything? ↩︎
Not a lot to share this month; it was a particularly busy time, between a mystery (and now solved, without fanfare or closure) cough and a dearth of time to write as I started to explore easing back into full-time work.
Still, some writing (and selfishly, I'm excited to end the year such that five essays is considered a "low" number for a month):
Every straight white male is forced, character-creation-screen-style, to choose one overtly consumptive hobby that in some small part defines their twenties and – God willing — their enduring adulthood. Some choose sourdough; many choose barbecue; I chose mixology.
(A psychologist might suspect that this was in no small part due to being legally underage during my undergraduate years, and having a choice in extracurricular activity that precluded me from carrying a fake ID; a hagiographer might pinpoint the first cocktail I ever had (a Manhattan, mixed by the parents of my best friend in a hotel room during Parents' Weekend).)
Whatever the reason, I owe a not-insignificant amount of my blessed life to cocktails. The first-ever thing I sold on the internet was a cocktail app for iOS, planting the seed for later, more foolish attempts to sell things on the internet; I wowed and wooed my now-wife with a butterfly pea blossom-infused martini [1] which impressed her enough to go out with me again.
Maybe it's hindsight, but most cocktail writing on the internet is not particularly helpful. It's either Dave Arnold-style postmodernism [2], recipe analysis with little foundational insight that one would get from a couple years as a barback, or (particularly recently) recipe/bottle porn. What I wish I had was a list of now-obvious tips for keeping and running a home bar, and here is where I will keep them:
When mixing a conventional cocktail, start by pouring the most viscous ingredients first (syrups, liqueuers, etc.). Subsequent ingredients will help wash out the viscous ones from the jigger.
Two drops of saline in anything with citrus. (Four in an espresso martini.)
Freezer martinis (or other such drinks) are terrific. Be sure to put in around 1/8oz of water for each serving to dilute the drink in the same way that ice would.
Tovolo for ice cubes, unless you have the freezer space to justify making clear ice.
Always try a "perfect" version of something with more vermouth than you expect to be palatable.
Freezing citrus works really well — as does super juicing — but sometimes the point of the tea ceremony is the ceremony and not the tea itself.
It's absolutely fine to build old-fashioneds (and riffs thereof) in the glass.
Dry shake anything with protein.
Scaffas can be tricky to balance, and you often want to err on the sweeter, heavier side. (Bitters are particularly important.)
The point of a hobby is to be a dork.
Before the now-cliche advent of Empress 1908, but I will go on the record as saying is a perfectly fine gin and receives an undue amount of hate. The point of making drinks is to create spectacle! ↩︎
Fun and good, but not particularly actionable to the genre of person who is like "I made this drink and it's tasty! How do I get better at this?" ↩︎
At Stripe, we had two abstractions for branching logic in production: flags, which were meant to be explicitly temporal (temporarily split-testing traffic; rolling out a new feature or code path; exposing a specific path for a cohort of users during a closed beta) and gates, which were meant to be explicitly permanent (overriding a statement descriptor for a Thingish merchant; preserving historical functionality in a neglected API endpoint).
Gates were — are — considered a bit of a last resort, and pushing a new gate to production required a not-trivial amount of sign-off and acceptance from a number of teams, not just for the performance and maintainability burdens they created but for the sheer sign of defeat that they symbolized.
I say this as means of introduction to the anodyne concept of "hidden settings". Buttondown has hidden settings — who doesn't!: eighteen at the time of writing, down from twenty-two an hour prior. Every quarter I'll double-check the list and check if:
Anything can be 'mainlined' into a core setting available to everyone;
Anything can be 'unshipped' because nobody's actually using it.
Q4 2024's reaping: four completely unused settings, summarily deleted. None of these four settings felt, even at the time, like they were "worth it", and the anecdata bears that out:
The user who requested Setting A churned after one month (having never upgraded to a paid plan);
The user who requested Setting B churned after two months (having never upgraded to a paid plan);
The user who requested Setting C never finished onboarding;
The user who requested Setting D is an active and loyal user who never even used the hidden feature.
I am, on average, two years smarter and less foolish than I was when I introduced those four hidden settings, and most of the hidden settings look more like flags than gates at this point. [1] If it's a good idea to build, we build it properly (and triage it alongside the other forty-seven things we need to do properly); if it's not a good idea to build, it doesn't magically become more palatable by virtue of its obscurity.
We've introduced three hidden settings in the past twelve months; one of them was an edge-case performance thing, and the other two are features that are planned to be mainlined in Q1. ↩︎
I think Fathom is a picture-perfect example of how to succeed in a niche that would otherwise be considered a fool's errand. Their biggest competitor is Google who is considered to own the industry and gives away the product for free, and almost entirely through counterpositioning and branding they are/were able to carve out a significant amount of revenue.
Paul is, to my knowledge, the only person who achieved significant success from branding and marketing themselves as a thought leader and then, rather than double down on the onanistic meta-spiral of "here's how you become an author/creator", completely pivoted to SaaS and left the zeitgeist behind. Incredible!
The market for Google Analytics alternatives is crowded in 2024 compared to 2020; I'm still very happy that Buttondown's using Fathom. (Though, Jack and Paul, please — funnel support would be really nice.)
The blog post itself is a great example of Fathom's deftness at threading the needle between being annoyingly clickbaity and being effective. See also the cake. ↩︎
And she was crying because she didn't believe in Jesus or dog heaven and no one was ever going to lie in bed with her on a Sunday morning and read the papers or rub her back and say, "Is there anything I can do for you?" And because there was no happiness, only emptiness. And because she wanted to be sixteen years old with long shiny hair (which she'd never had), and she wanted to be looking anxiously out of an upstairs window and hear her mother downstairs shouting, "He's here," and then she would run lightly down the stairs and climb into the car where at the wheel would be her good-looking boyfriend and they would drive away and have warm, blurry sex somewhere and then he would bring her back home and her family would be waiting. Victor would acknowledge her with a gruff paternal nod as she came in the door, contrary teenage Julia would ignore her while willowy first-year student Sylvia would smile in a superior manner. Somewhere, in the guest bedroom perhaps, the vague unformed shape of a five-year old Annabelle could be found sleeping. And Rosemary, her mother, would ask her, in a womanly, conspiratorial way, if she'd had a nice time and then would offer her hot milk and honey (which she was sure she had never done in real life) and perhaps before she dropped into the sweet untroubled sleep of a pretty sixteen-year-old, Amelia would look in on Olivia, eight years old and safely asleep in her own bed.
Kate Atkinson is so truly world-class at writing sweet, flawed people who want and deserve and do not get happy endings — Life after Life was one of my favorite books of 2021, and Transcription (having chosen to read it purely out of Atkinson Mania) was, despite some plotting missteps, equally fun and rich. And much of that same brilliance is on display here: her ability to move through dark humor, sweet innocence, and cutting wit often in the same paragraph is channeled through a host of thorough and well-crafted characters who often are not afforded agency or interiority but lesser authors of the genre.
Where I think she stumbles a bit here is in marrying that terrific joie de vivre and personality work to a plot that demands a certain level of convention and satisfaction. Crime fiction (fair play or no) is a bit of a contract with the reader: if a book opens with three disparate murders, you are meant to believe that the book will end with the resolution of those three murders, and also a satisfactory intertwining of the three — and indeed the pleasure of the genre is you weighing every single new scrap of information, every tell and tossed-off detail, and seeing if it fits into the whole or sways your analysis. Atkinson knows this — she ends the book (no spoilers, at least in any meaningful sense!) with resolutions to all three murders and, if you squint, a rough lattice that conjoins the triptych.
But I am a snob with these things, having been spoiled by Christie and her uncanny mastery of puzzle-box craftsmanship; and perhaps it is an unfair standard to judge any work that attempts to elevate the murder mystery into the realms of literary fiction by the standards of Christie, but nonetheless that is the standard, and Atkinson finds wanting. Jackson Brodie is no Hercule Poirot (perhaps this is one of those situations where the cliche was less obvious in 2004, but "British cop with a gruff exterior but sweet heart and a sad past" does not exactly Do It For Me), and the revelations in the third act meant to be shocking were easily sniffed out in the first act, and I was left with a sense of — not the satisfaction that great mystery novels can provide, nor the metatextual refutation of such satisfaction offered by works like The Name of the Rose — fondness, for the people whom I got to spend some time with, though not exactly an aching to spend any more with them.
(Also, as mentioned in The Diamond Age: it is poor analysis, but nonetheless relevant to say that books about dead daughters now take on a deep and newly-textured pallor in a way that I could have not imagined a year ago.)
I tend to ignore the entire genre of what we now refer to as BNPL businesses — Affirm, Afterpay (RIP), Klarna, et al — not for any particular sin I feel that they are committing, but because they in my mind are much less interesting companies with less volatile upside than the Stripes and Squares and Adyens of the world.
It's tempting to think of these companies as a successor cohort to Wachovia and other since-departed financial firms — organizations that survive and persist in a commodity landscape due to operational rigor and process power and existing momentum more than for any other ineffable asset, a sort of fintech Yes, Dear. [1]
It is in that deeply cynical light that I listened to a pretty delightful interview with Klarna's CEO, Sebastian Siemiatkowski. Most CEO interviews are in one of two buckets: "this person is abusing stimulants and has a lot of points to convey" or "this person's PR team has coached them into complete banality". Conversely, Sebastian here has a lot to share: I thought this was an uncommonly honest and insightful interview, and I'm not sure I'm used to a CEO of an active company admitting so many mistakes in such little time. Some notes:
Klarna, like many technology firms that quietly grew in Europe before exploding onto the US scene due to one particularly wide-eyed VC firm, has been around for a long time, and history has its own innate advantages.
Obviously the full story is in the process of being told (as I write this, Klarna is still not particularly close to profitability) but Sebastian delivers the story of Klarna's pivot from largely back-office infrastructure to trying to compete in full-stack payments to pivoting to fighting the BNPL wars to doubling down on consumer-facing surfaces in a way that is much more useful than other corporate bildungsromans. Nineteen years is a long time for a software company in a blood-soaked industry to stick around.
The insight that Klarna can outcompete legacy providers because of their ability to ingest and surface SKU-level information is a great one, and an example I think I will return to often. Even if it's a little post-hoc, I think taking a look at the downsides of deeply-integrated systems and understanding how you can exploit their coordination problems is... interesting.
I get klarna.com (and that entire genre of wrapper-browser) now! Insanely clever. [2]
Life is long, and relationships change, and organizations you consider rivals may be your trusted integration partner in three years time. (And five years after that, they might be trying to put you out of business.)
Which is to say: Yes, Dear is nobody's favorite show and won no awards and there are still a lot of actors and actresses who would give a right arm to have lasted six seasons on CBS. ↩︎
What does a klarna.com for newsletters look like? ↩︎
Historically, we've called Buttondown a 'newsletter tool' — the h1 before this was 'The best way to start and grow your newsletter.' This was really nice and effective, but I talked with a number of folks who felt a little turned off by that word "newsletter", as if it felt amateurish or insufficiently "haha business" (for lack of a better term) for their use case.
So I started toying around with replacing "newsletter" with "email" as the proper noun that we'd rally around (and email has its own baggage, to be clear — there's a handful of people who sign up thinking that we're, like, a Proton Mail alternative.) And the more I liked "email", the more I hated "email " — email automation, email marketing, email campaigns all felt very corporate and stodgy in a way that betrayed the unique voice I think most of our marketing copy has. Eventually I landed on "email for people like you", which I liked but lacked... a certain punch, if you know what I mean.
Finally, I was batting around ideas and landed on the current two-sentence structure, which I think accomplishes a handful of things:
Tells the user, frankly, nothing about our product or positioning besides "email" (and therefore invites them to learn more)
Immediately gives us a certain voice and friendliness that is, uh, missing from the Constant Contacts of the world.
Two other notes:
This current iteration — much like the current iteration of the site, brand, and vibe of Buttondown, comes just as much from the inimitable nickd as it does from me. [1] One of the virtues of Buttondown being around this long and having the user base that it does is that when I work with people, they already get what we're going for.
I've said this a couple times already, but — the best part about running a software business is the freedom to have fun with things, and part of that freedom is recklessly changing your H1 as often as you like. We do seasonal H1s ("Email software that's all trick, no treat"; "New year; new you; newsletter.") — even if they tank conversion for a few days, it's fun.
Nick, if you're reading this, I promise I'll respond to that Loom soon. ↩︎
This great essay from Sean Goedecke went viral two weeks ago, drawing fury and fervor alike for a Moral Mazes-esque analysis of how engineers at large companies should think about shipping:
Shipping is a social construct within a company. Concretely, that means that a project is shipped when the important people at your company believe it is shipped.
This essay reminded me of Zach Holman's on 'Double Shipping' from 2018, in which he argues the same point — shipping is not an actual concrete event so much as a social construct by which we proselytize:
One of the things we did all the time at early GitHub was a two-step ship: basically, ship a big launch, but days or weeks afterwards, ship a smaller, add-on feature. In the second launch post, you can refer back to the initial bigger post and you get twice the bang for the buck.
Three useful things to internalize as early as possible in your career:
The act of writing and deploying code is more akin to potential energy than kinetic energy.
The platonic ideal of software development is a world in which changes and improvements are instantly and comprehensively understood by all stakeholders; the delta between this ideal and reality is much larger and more pernicious and more valuable than software itself.
Nobody has even a fraction as much knowledge or context or even baseline awareness of what you're doing as you do.
It's very easy — and comfortable! — to be cynical about this kind of stuff. Certainly there are organizations notorious for prioritizing shipping in a pluperfect sense — Google, for instance, and their promo-doc-driven culture. Certainly there are organizations that wither and die because their engineering culture is insular and insufficiently collaborative. Certainly there are great engineers who build great things and are washed out of the company because they "didn't politic enough". Running big technical organizations is an unsolved problem; there are few strictly correct answers.
Here is a slightly different and more useful framing: when you are writing code, start from the why — who cares about this thing, why do they care, and what is their success criteria? That person might be you (or future engineers on your team); it might be a customer (or one who is secretly planning on churning next month anyway); it might be a VP (who green-lit the project largely as a reason to get a couple extra heads). Willful ignorance of the answer "what happens, what really happens if this thing never hits production?" (or, conversely, "what happens if this thing hits production and is never used?") is the path to being a capable "programmer" with no leverage or cultural capital.
It never takes longer than a few minutes, when they get together, for everyone to revert to the state of nature, like a party marooned by a shipwreck. That's what a family is. Also the storm at sea, the ship, and the unknown shore. And the hats and the whiskey stills that you make out of bamboo and coconuts. And the fire that you light to keep away the beasts.
via The Yiddish Policemen's Union
Shipping is a social construct within a company. Concretely, that means that a project is shipped when the important people at your company believe it is shipped.
via sean goedecke
Mountains should be climbed with as little effort as possible and without desire. The reality of your own nature should determine the speed. If you become restless, speed up. If you become winded, slow down. You climb the mountain in an equilibrium between restlessness and exhaustion. Then, when you're no longer thinking ahead, each footstep isn't just a means to an end but a unique event in itself....To live only for some future goal is shallow. It's the sides of the mountains which sustain life, not the top.
I'm Justin Duke — a software engineer, writer, and founder. I currently work as the CEO of Buttondown, the best way to start and grow your newsletter, and as a partner at Third South Capital.