Working on Buttondown — or any mature, complex codebase — effectively and quickly requires a lot of tacit knowledge that I've done a hitherto-poor job of documenting, a fact I am learning more and more quickly as I start to scale up the number of folks working on the codebase.

Documentation in the literal sense is a good first step and final step, of course, but when a codebase is in the "process" of being documented writing down "this is how you do X" does often not actually solve the problem of making sure everyone can do X safely and quickly.

One thing that I've found useful, in the spirit of shifting process to the left, is capturing steps in tests. Here's a simple (but real!) example: adding new Django modules to the codebase. Whenever you run python manage.py startapp, you also need to add the new app to a bunch of different places:

  • pytest.ini, so tests are run;
  • pyproject.toml, so files are linted;
  • modules.txt, so metrics are exported.

The perfect solution to this problem is creating a script that automatically adds a new app to all the relevant places and stuffing it into a Justfile, but that's a pretty big piece of work that requires thought and error handling and a whole slew of other stuff. Instead, it's comparatively easy to just capture these constraints in a test:

# This test suite ensures that, when we create or rename a module,
# we update all the relevant configurations so that we lint/test/etc. that module.
from django.conf import settings

RELEVANT_FILES = ["./pyproject.toml", "./pytest.ini", "./modules.txt"]


def pytest_generate_tests(metafunc):
    parameters = []
    for filename in RELEVANT_FILES:
        for module in settings.BUTTONDOWN_APPS:
            parameters.append((module, filename))
    metafunc.parametrize("module,filename", parameters)


def test_module_is_present_in_pytest(module: str, filename: str) -> None:
    assert module in open(filename).read()

This approach also works well when you're trying to enforce a norm or invariant for all new code. (At Stripe, we called this approach "ratchet testing", though initial Googling seems to indicate that this metaphor has not exactly spread like wildfire.)

Another example: Buttondown uses Django-Ninja to generate an OpenAPI spec from the live API. OpenAPI is great, but it sadly lacks an ergonomic ability to document each value of an enum, so we maintain a separate enums.json file that needs to be updated whenever a relevant enum has a new addition — even though some enum values are undocumented!

A similar approach works well here:

import json

ENUMS_FILENAME = "../shared/enums.json"
OPENAPI_SPEC_FILENAME = "assets/autogen/openapi.json"

RAW_ENUMS = json.load(open(ENUMS_FILENAME))
RAW_OPENAPI_SPEC = json.load(open(OPENAPI_SPEC_FILENAME))


def pytest_generate_tests(metafunc):
    parameters = []
    enums = RAW_ENUMS.keys()
    for enum_name in enums:
        extant_enum_values = RAW_OPENAPI_SPEC["components"]["schemas"][enum_name][
            "enum"
        ]
        for enum_value in extant_enum_values:
            parameters.append((enum_name, enum_value))
    metafunc.parametrize("enum_name,enum_value", parameters)


# Do not add more items to this ratchet unless you need to!
KNOWN_MISSING_PAIRS = [
    ("CreateSubscriberErrorCode", "metadata_invalid"),
    ("ExternalFeedAutomationCadence", "daily"),
    ("UpdateSubscriberErrorCode", "email_already_exists"),
    # ... and so on.
]


# This technically does not exercise Python code; it's testing that `shared/enums.json` is up to date.
def test_enum_is_exhaustively_documented(enum_name: str, enum_value: str) -> None:
    assert (
        enum_name in RAW_ENUMS
    ), f"Enum {enum_name} is not documented in {ENUMS_FILENAME}"
    if (enum_name, enum_value) in KNOWN_MISSING_PAIRS:
        return
    assert (
        enum_value in RAW_ENUMS[enum_name]
    ), f"Potential value {enum_value} of enum {enum_name} is not documented in {ENUMS_FILENAME}"

What I find most lovely about this approach is that test-driven invariants are self-documenting. A task like "adding a new value to an existing enum" is not obviously a thing that should require searching an internal knowledge base, but a test that captures information about it can contain code pointers, technical explanation, and a way to fix it.

In general, a good mental exercise whenever you're reviewing a PR is "could a test have caught this?", and then reminding yourself that a test should be defined less as "a thing that exercises business logic" and more as a "script that exercises your codebase".


political culture encourages us to think that generalized anxiety is equivalent to civic duty

via

I described this book's predecessor, Berlin Game as "deeply, thorough competent" and I meant it in the highest possible terms (in the same way our protagonist might deploy 'competence', as a compliment of utmost order.) I finished that book a mere week ago, and now I've finished it's sequel, which tells you perhaps more than any prose about how similarly impressed I was.

It does a number of rare things for a sequel, chief among them elevate the base material rather than rehash it. The plot and mechanics of Mexico Set could not exist without what we know about its characters and world from Berlin Game; it trades the dreary, rain-soaked climes of Berlin for the hot, red, and dusty ones of Mexico (for the most part). It felt fresh and more propulsive; in a way, I was more entranced by not knowing where this plot was going than by the original's thorough pacing and plotting.

I cannot emphasize enough: as someone who hates sequels, who couldn't imagine the merit in this kind of book's existence, I was delighted. (And now, it's onto the third of the trilogy.)

A tiny postscript: one of the things I only realized a little bit after the fact was how much reading one of Deighton's novels is pleasurable in the same way as reading a Christie novel — both this book and its predecessor (and London Match, which of course I have already started) revolve around one big secret being uncovered in much the same way Poirot is trying to uncover the true culprit, and you get to hold onto disparate threads and see which ones are revealing and which ones are red herrings. But, like Christie, part of Deighton's mastery is that while there are characters you're not going to like, there are no out-and-out villains: everyone feels human, and no shifts in plot feel contrived or forced.

Highlights

'He was a real Berliner,' I said. 'He ran the transport business like a despot. He knew the names of all his workers. He swore at them when he was angry and got drunk with them when there was something to celebrate. They invited him to their marriages and their christenings and he never missed a funeral. When the union organized a weekend outing each year they always invited him along.


I had bookmarked Kolo many months ago to try out and finally got a chance to integrate it with Buttondown — a process that I expected to take a couple hours on a lazy Sunday and in fact took ten minutes and three lines of code.

If you have a Django app, I think you should drop everything you're doing and install it right now. It is tremendously, immediately, terrific in a way that I haven't felt about a dev tool in quite some time: modern, ergonomic, immediately valuable, trivial to set up.

So much of my feeling on Django and the Python ecosystem writ large has felt Squidward-esque — feeling comfortable with my architectural decisions and comfort with the language while watching Rails, Typescript, and even the PHP ecosystem advance their respective tech trees much more rapidly. This is a rare case where I am delighted to have chosen Python, though I suspect it is only a matter of time until this tool (or at least this genre of tool) is language-agnostic.


Stop whatever you're doing for a moment and ask yourself: Am I afraid of death because I won't be able to do this anymore?

via

'He was a real Berliner,' I said. 'He ran the transport business like a despot. He knew the names of all his workers. He swore at them when he was angry and got drunk with them when there was something to celebrate. They invited him to their marriages and their christenings and he never missed a funeral. When the union organized a weekend outing each year they always invited him along.

via Mexico Set

This book, more than others in the "how to do business" genre, is both:

  1. legitimately valuable, and probably scores the highest of any such book in terms of "opened my mind and convinced me to change the way I do business"
  2. very neatly divisible into "parts that are very good and parts that are bad."

The parts that are bad:

  1. Much like with The Phoenix Project and The Goal, the backing narrative and prose is stilted to say the least.
  2. A lot of the specific tactical advice (care about how you dress! focus on your store's color coordination!) is very nineties-based in a way that does not perfectly translate to SaaS.
  3. There's a lot of lead-funneling you into the E-Myth consulting services landscape.

These things are minor compared to the three main takeaways I got from the book, which were delivered at exactly the right time for where I am as a founder:

  1. Almost all ICs-turned-founders overweight their role as a "technician" and underweight their role as an "entrepreneur" and "manager", and it's important to explicitly assign yourself those two roles (and many others) in order to give them weight and significance.
  2. A very common failure case for adolescent companies is "management by abdication", where the founder tries to scale out by hiring generalists which works as a short-term band-aid but not a long-term cure.
  3. A very useful mental exercise for reifying tactic knowledge is to adopt the hypothetical of "what if I was franchising this business?", so as to document everything required to scale and run the business. This process will make it easier to source and train new employees, identify chokepoints in your business, and achieve balance.

All of which is to say: if you were scared off by the hackneyed phrasing of "E-Myth", plunge in. You'll find things worth reading.

Highlights

Baking pies is not about being done, her grandmother taught her; it's about baking pies.


A couple folks wrote in responding to Vibes and years asking how I did annual planning.

I start with a question: "if I had a magic wand, what things would I want to change about the business?" My answers can be concrete or abstract; they can be lofty or object-level. They just have to be the right answers, and they have to be honest.

For instance, when I went through this exercise in December the first few answers that came to mind were:

  • I'd make it so that there's an actual top-of-funnel system to drive user acquisition, instead of the "write a bunch of content and hope that it works" system that's been the watchword thus far.
  • I'd get rid of the janky editor and replace it with something better.
  • I'd have a magically evergreen series of walkthrough videos.

And so on.

Once I have a list of answers that feel correct, I shape them into concrete deliverable projects:

  • Build a top-end marketing engine that is self-documented and legible enough to hand off to a talented writer, with clear analytics and lifecycle emails.
  • Rewrite the core editor abstraction.
  • Plan out a list of sixty walkthrough videos and find a freelancer who can execute on them.

You get the idea.

There's no real shaping or scoping or sizing or any of that — the exercise is to get the project into a single sentence that is clear and falsifiable. Then it becomes a project for the year.

That's it!

I think it's easy to underestimate how long a year is, and how much good work — when it's focused wisely and tactically — can be done. Even now, a "bad" week in terms of technical productivity means only fifteen or so hours of flow; extrapolate that out to a year, and that's 750 hours. Buttondown is not large; there are very few projects that could not be accomplished within 750 hours.

Giving yourself permission to devote yourself to a task is a superpower.


"Taigen's won 24 duels! How many have you won?"

"Should I have been counting?"

via Blue Eye Samurai

Bucket list item accomplished: I got to nerd out about my setup for a Uses This interview!

Read the full interview

Baking pies is not about being done, her grandmother taught her; it's about baking pies.

via The E-Myth Revisited

A really fun game and truly impressive indie effort that suffers from many of the same flaws (albeit less so) as Dicey Dungeons — a slow early-game, a sense of disempowering non-determinism, a lack of depth. I bet I play this a dozen (or a dozen dozen!) more times, because there's still so much going for it — runs tend to be quick, there's a lot of fun combinatorics at play, and it feels very easy to pick up. (And the aesthetics + presentation are terrific.) I'm just being a harsh judge because Slay the Spire set the bar so very, very high.


XH asks:

How do indie developers/small teams keep track of and prioritize long-term roadmaps?

I've been basically work off my gut + Feeling of the Day for the past few years, and that's getting a bit unsustainable

Buttondown's roadmapping has existed for the past three years in a bimodal fashion:

  1. In November—December, I spend a lot of active and passive time thinking about what the most important big investments I need to make are. By design, these tend to be infrastructural, ambitious, and nebulous — "introduce localization", "rebuild analytics pipeline", "re-design email editor." These are never quantitative/measurable; I've never found metrics-based business goals useful in the context of Buttondown. [1]
  2. I keep a big, gnarly, public roadmap and pop things off the roadmap as I deem fit, in response to various exogenous factors (what I find interesting to work on in a given day; what customers have flagged recently; what strikes me as particularly time-sensitive.)

Of the time I spend working as an engineer, probably 40% of my time is spent on the big ambitious stuff and 60% of my time is spent on the reactive/vibes-based stuff. This distribution should probably be closer to 50-50, if I'm being honest, but it works well for my goals.

IMHO: roadmaps with horizons greater than a year are only useful in large organizations where you need long-term resource planning and financial allocation. (Even then, they're mostly onanistic: every single 3—5 year plan that I've worked on has become consigned to history by Year 2.)

Conversely, roadmaps with horizons less than a year incur a productivity tax in exchange for legibility. Sometimes that tax is worth paying (coordinating comms with writers; working on multiple large projects in parallel with other engineers); right now, it's not worth paying for Buttondown.

Metrics, roadmaps — all of these things are tools, and often they can point you in a given direction in exchange for a cost in time and/or money. Vibes cost nothing; they might not be perfectly accurate, but I think your most important job as an early founder is to have a preternaturally strong sense of what direction to go in absent external stimuli.

("Why have an annual plan at all, if vibes are so useful?", you might ask. Because I was never a two-marshmellow child, and I am personally quite bad at keeping important-but-not-urgent work top-of-mind. It's hard for me to wake up and suddenly think "hm, maybe this is the day to start rebuilding the editor", and the ritual of committing to that kind of project for a year keeps me from spending all my time snacking on lower-ROI but more easily-actionable work.)


  1. I find metrics-based goals very useful for operational or performance-related tasks (drive p90 response time for /v1/subscribers down to one second), though. ↩︎


A deeply, thoroughly competent MI6 novel. The last spy novel I read was Red Notice, a truly poor piece of fiction: one which had me concerned that perhaps I was left with Le Carré and that was it.

Thankfully, that is not the case: Berlin Game does not speak to truths about the world nor does it surpass its genre form, but it's a very good book: surprising (albeit not too surprising), engrossing, worth its weight. Deighton's protagonist is rich in way few of Le Carré's (outside of Smiley) is; I'm excited to read more in the series.


Blew my expectations away. Borderline-pornographic direction and aesthetics courtesy of Hiro Murai, and a surrealism reminiscient of Atlanta in many ways — these stories, these things happening, they are not real but they're still useful vehicles — and in other ways more reminiscient of Bojack Horseman, a show that would also treat you to bouts of tonal whiplash. (This series owes a lot to animation in general, and I think the suspension of disbelief that episodes like 6 require are easier to stomach when you're already looking at cels.)

The chemistry between Erskine and Glover is perfect, both in terms of the highs and the lows; the show nails both the arc and the landing. [1] Glover's wardrobe is insanely good. Not a life-changing show, but perfectly executed and if they manage to backdoor themselves into a second season I'll be excited to watch.


  1. Selfishly, I respect the show for not spending any time on the machinations or meta-plot of "what/how is Hihi?" That's not what the show is interested at all. ↩︎


2024-02-21

2024-02-22

2024-02-23

2024-02-24

2024-02-25 - The E-Myth Revisited - Crystal Project - Taskmaster - Attack on Titan (Season 4)

2024-02-26 - The E-Myth Revisited - Blue Eye Samurai - Crystal Project

2024-02-27 - The E-Myth Revisited - Blue Eye Samurai - Crystal Project - Monster

2024-02-28 - The E-Myth Revisited - Mexico Set - Legend of the Galactic Heroes - Crystal Project - Taskmaster

2024-02-29 - Crystal Project - Mexico Set - Frieren

2024-03-01 - Blue Eye Samurai - Mexico Set - The Club Dumas

2024-03-02 - Mexico Set - Taskmaster - Crystal Project - Delicious in Dungeon

2024-03-03 - Mexico Set - London Match - Attack on Titan (Season 4)

2024-03-04 - Taskmaster - Monster - Crystal Project - Blue Eye Samurai - London Match

2024-03-05 - London Match - Crystal Project - Legend of the Galactic Heroes

2024-03-06 - London Match - Blue Eye Samurai - Taskmaster - Freiren

2024-03-07 - London Match

2024-03-08 - London Match

2024-03-09 - Delicious in Dungeon - Taskmaster - London Match - Secrets of Grindea - The Club Dumas

2024-03-10 - London Match - Austerlitz - Secrets of Grindea - Crystal Project - Taskmaster - Attack on Titan (Season 4)

2024-03-11 - Austerlitz - Taskmaster - Monster

2024-03-12 - Austerlitz

2024-03-13 - Austerlitz - Scott Pilgrim Takes Off - Legend of the Galactic Heroes

2024-03-14 - Crystal Project - Scott Pilgrim Takes Off - Frieren - Taskmaster

2024-03-15 - Crystal Project - Unicorn Overlord - Austerlitz - Delicious in Dungeon

2024-03-16 - Austerlitz - Unicorn Overlord - Dune - Frieren

2024-03-17 - Austerlitz - Unicorn Overlord - Monster

2024-03-18 - Attack on Titan (Season 4) - Unicorn Overlord - Taskmaster - Devs

2024-03-19 - Devs - Unicorn Overlord

2024-03-20 - Devs - Unicorn Overlord - Taskmaster

2024-03-21 - Devs

2024-03-22 - Dune 2

2024-03-23

2024-03-24 - Austerlitz - Frieren

2024-03-25 - Unicorn Overlord

2024-03-26 - Delicious in Dungeon

2024-03-27 - Monster - Taskmaster

2024-03-28 - The Late Show - Austerlitz

2024-03-29 - Attack on Titan (Season 4) - Superforecasting - Cribsheet

2024-03-30 - Cribsheet - Taskmaster - Unicorn Overlord - Legends of the Galactic Heroes

2024-03-31 - Cribsheet - Unicorn Overlord

2024-04-01 - Frieren - Cribsheet - Unicorn Overlord

2024-04-02 - Cromartie High School - Cribsheet

2024-04-03 - Cribsheet

2024-04-04 - Cribsheet

2024-04-05 - Unicorn Overlord

2024-04-06 - This is Personal - The Club Dumas

2024-04-07 - Unicorn Overlord - Only God Was Above Us - The Club Dumas

2024-04-08

2024-04-09

2024-04-10 - Unicorn Overlord - Cribsheet

2024-04-11 - Sugar - Cribsheet - Dungeon in Dishi

2024-04-12 - Sugar - Taskmaster - Monster

2024-04-13 - Taskmaster - Legends of the Galactic Heroes - Cribsheet

2024-04-14 - Cribsheet - Unicorn Overlord - Frieren

2024-04-15 - Cribsheet - Trust - Cromartie High School

2024-04-16 - Trust

2024-04-17 - Trust - Murderville

2024-04-18 - Trust - Ripley - Taskmaster - Delicious in Dungeon

2024-04-19 - Trust - Ripley

2024-04-20 - Work Clean - Taskmaster

2024-04-21 - Work Clean - Unicorn Overlord - Monster

2024-04-22

2024-04-23

2024-04-24 - Work Clean - Taskmaster - Legend of the Galactic Heroes

2024-04-25 - Work Clean - Sugar

2024-04-26

2024-04-27

2024-04-28

2024-04-29 - Work Clean - Frieren

2024-04-30 - Work Clean - Cromartie High School

2024-05-01 - Work Clean - Taskmaster - Dungeon Dishi

2024-05-02 - Work Clean - Taskmaster

2024-05-03 - Work Clean - Unreasonable Hospitality

2024-05-04 - Unreasonable Hospitality - Taskmaster

2024-05-05 - Unreasonable Hospitality - Taskmaster - Monster

2024-05-06 - Taskmaster

2024-05-07

2024-05-08 - Taskmaster - Frieren - Unreasonable Hospitality

2024-05-09

2024-05-10 - Unreasonable Hospitality - Cromartie High School

2024-05-11 - Unreasonable Hospitality - Taskmaster

2024-05-12 - Unreasonable Hospitality - Super Turtle Idle - Animal Well

2024-05-13 - Monster

2024-05-14 - Animal Well - Everybody's in LA - Unreasonable Hospitality - Legend of the Galactic Heroes - Taskmaster

2024-05-15 - Animal Well - Unreasonable Hospitality

2024-05-16 - The Diamond Age - Taskmaster - Everybody's in LA

2024-05-17 - The Diamond Age - Everybody's in LA - Cromartie High School

2024-05-18 - The Diamond Age - Taskmaster - Dungeon Dishi

2024-05-19 - The Diamond Age - Pokerogue

2024-05-20 - The Diamond Age - Pokerogue - Taskmaster - Monster

2024-05-21 - The Diamond Age - Pokerogue - Legend of the Galactic Heroes - HIT ME HARD AND SOFT

2024-05-22 - The Diamond Age - Pokerogue - Sugar

2024-05-23 - The Diamond Age

2024-05-24 - The Diamond Age - The Club Dumas - Pokerogue

2024-05-25 - Pokerogue - Taskmaster

2024-05-26 - Pokerogue - Vampire Survivors - The Club Dumas

2024-05-27 - Pokerogue - Vampire Survivors - Profiles of the Future

2024-05-28 - The Diamond Age - Oh Wonder

2024-05-29 - Pokerogue - The Diamond Age - Everybody's in L.A.

2024-05-30 - Pokerogue - Monster

2024-05-31 - Pokerogue

2024-06-01 - Pokerogue

2024-06-02 - Team - Taskmaster

2024-06-03 - Team - Frieren

2024-06-04 - Cromartie High School

2024-06-05 - Dungeon Meshi

2024-06-06

2024-06-07 - The Diamond Age - Godzilla Minus One

2024-06-08

2024-06-09 - The Diamond Age - Monster

2024-06-10 - The Diamond Age - Taskmaster - Legend of the Galactic Heroes

2024-06-11 - The Diamond Age - Taskmaster - Pokerogue

2024-06-12 - The Diamond Age - Pokerogue - Mushishi (Season 2)

2024-06-13 - Freedom's Forge - Hit Man - Pokerogue

2024-06-14 - Freedom's Forge - The Fall Guy - Pokerogue

2024-06-15 - Freedom's Forge - Pluto - Pokerogue

2024-06-16 - Freedom's Forge - Pokerogue - Taskmaster - Cromartie High School

2024-06-17 - Freedom's Forge - Pokerogue

2024-06-18 - Freedom's Forge - Pokerogue - Dungeon Mishi

2024-06-19 - Pokerogue - Presumed Innocent

2024-06-20 - Pokerogue - Freedom's Forge

2024-06-21

2024-06-22 - Pokerogue - Taskmaster

2024-06-23 - Pokerogue - Mushishi (Season 2)

2024-06-24 - Pokerogue - Kaiji - Freedom's Forge - Team - Presumed Innocent

2024-06-25 - Pokerogue - Freedom's Forge

2024-06-26 - Pokerogue - Freedom's Forge

2024-06-27 - Pokerogue - Freedom's Forge - Profit First - The American Friend

2024-06-28 - Delicious in Dungeon - Pokerogue - Profit First

2024-06-29 - Taskmaster - Monster - Pokerogue - Profit First

2024-06-30 - Taskmaster - Pokerogue - Profit First

2024-07-01 - Profit First - Pokerogue - Team - The Three Musketeers - Kaiji

2024-07-02 - Taskmaster - Pokerogue

2024-07-03 - Cromartie High School - Pokerogue

2024-07-04 - Spy Hook - Pokerogue

2024-07-05 - Spy Hook - Pokerogue

2024-07-06 - Spy Hook - Pokerogue - Delicious in Dungeon

2024-07-07 - Spy Hook - Pokerogue

2024-07-08 - Spy Hook - Pokerogue

2024-07-09 - Kaiji - Taskmaster - Pokerogue

2024-07-10 - Spy Hook - Snack Shack - Pokerogue

2024-07-11 - Spy Hook - Mushishi (Season 2) - Pokerogue

2024-07-12 - Spy Line - Cromartie High School - Pokerogue

2024-07-13 - Spy Line - Pokerogue

2024-07-14 - Spy Line - Pokerogue - Delicious in Dungeon

2024-07-15 - Spy Line - Pokerogue - Taskmaster - Kaiji

2024-07-16 - Spy Line

2024-07-17 - Spy Sinker - Pokerogue - Taskmaster - Mushishi (Season 2)

2024-07-18 - Spy Sinker - Pokerogue - Team

2024-07-19 - The Hunting Gun - Pokerogue

2024-07-20 - Pokerogue - The Correctionsx - The Good Soldier Svejk - Taskmaster

2024-07-21 - Taskmaster - The Corrections - Pokerogue - The Good Soldier Svejk

2024-07-22 - Cloud Atlas - Pokerogue - Taskmaster

2024-07-23 - Cloud Atlas - Pokerogue - Taskmaster

2024-07-24 - Cloud Atlas - Pokerogue

2024-07-25 - Cloud Atlas - Cromartie High School

2024-07-26 - Team - Taskmaster - Pokerogue

2024-07-27 - Team - Delicious in Dungeon - Pokerogue

2024-07-28 - Team - "Fire Emblem Engage" - Pokerogue

2024-07-29

2024-07-30 - Team - Kaiji - 'Fire Emblem Engage"

2024-07-31

2024-08-01 - Cromartie High School - Taskmaster

2024-08-02 - Team - Train Dreams

2024-08-03 - Pokerogue - Delicious in Dungeon

2024-08-04 - "Fire Emblem Engage" - Train Dreams

2024-08-05 - Train Dreams - Taskmaster

2024-08-06 - Ted Lasso

2024-08-07 - Ted Lasso - Taskmaster - Mushishi - Pokerogue

2024-08-08 - Ted Lasso - Taskmaster - Pokerogue

2024-08-09 - Ted Lasso - High Output Management

2024-08-10 - Pokerogue - Fire Emblem Engage - Taskmaster - High Output Management

2024-08-11 - High Output Management - Cromartie - Great Pretender - Fire Emblem Engage

2024-08-12 - Taskmaster - High Output Management - Ted Lasso

2024-08-13 - Taskmaster - High Output Management - Monster

2024-08-14 - The Unicorn Project - Ted Lasso - Fire Emblem Engage

2024-08-14 - The Unicorn Project - Ted Lasso - Taskmaster

2024-08-15 - Fire Emblem Engage - Ted Lasso - Taskmaster

2024-08-16 - The Unicorn Project

2024-08-17 - The Unicorn Project - Fire Emblem Engage

2024-08-17 - Fire Emblem - Taskmaster - Unicorn Project - Kaiji

2024-08-19 - High Output Management - Kaiji - Great Pretender

2024-08-20 - High Output Management - Dungeon Meshi

2024-08-21 - Monster - Taskmaster

2024-08-22 - Melvor Idle

2024-08-24 - Melvor Idle - Cable Cowboy

2024-08-25 - Taskmaster

2024-08-26 - Wizrobe - Cable Cowboy

2024-08-27 - Wizrobe - Cable Cowboy - Taskmaster

2024-08-28 - The Great Pretender - Forever - Cable Cowboy

2024-08-29 - Melvor Isle - Taskmaster

2024-08-30 - Le Samourai - Taskmaster

2024-08-31 - Cable Cowboy - Melvor Isle - Kaiji

2024-09-01 - Cable Cowboy - Melvor Isle

2024-09-02 - Cable Cowboy - Melvor Isle

2024-09-03 - Cable Cowboy - Melvor Isle

2024-09-04 - Cable Cowboy - Taskmaster - Monster - Melvor Isle

2024-09-05

2024-09-06 - Melvor Isle

2024-09-07 - Melvor Isle - Cable Cowboy - High Output Management

2024-09-08 - Melvor Isle - Idle Itkah

2024-09-09 - Taskmaster - Kaiji - High Output Management - Melvor

2024-09-10

2024-09-11 - Melvor Isle - High Output Management - Taskmaster - Mushishi

2024-09-12 - Creation Lake - Taskmaster - Melvor Isle

2024-09-13 - Great Pretender - Picayune Dreams - Creation Lake - Taskmaster - Melvor Isle

2024-09-14 - Creation Lake - Melvor Isle

2024-09-15 - Creation Lake - Melvor Isle - Taskmaster

2024-09-16 - Creation Lake - Melvor Isle

2024-09-17 - Taskmaster - Kaiji - Melvor Idle

2024-09-18 - Melvor Idle - Slow Horses (Season 4)

2024-09-19 - Melvor Idle - Taskmaster

2024-09-20 - Melvor Idle - Slow Horses (Season 4)

2024-09-21 - Melvor Idle - Taskmaster - Diablo IV - Creation Lake

2024-09-22 - Diablo IV - Melvor Idle

2024-09-23 - Diablo IV - Melvor Idle

2024-09-24 - Taskmaster - Melvor Idle

2024-09-25 - Picayune Dreams - Melvor Idle

2024-09-26 - Melvor Idle

2024-09-27 - Melvor Idle - Taskmaster

2024-09-28 - Melvor Idle - Taskmaster

2024-09-29 - Melvor Idle - Trust - Diablo IV

2024-09-30 - Melvor Idle - Trust - Diablo IV

2024-10-01 - Melvor Idle - Taskmaster - Diablo IV - Trust

2024-10-02 - Melvor Idle - Taskmaster - Diablo IV

2024-10-03 - Melvor Idle - Taskmaster - Balatro - Trust - Diablo IV

2024-10-04 - Slow Horses (Season 4) - Melvor - Diablo IV - Taskmaster

2024-10-05 - Melvor - Diablo IV - Taskmaster

2024-10-06 - Slow Horses (Season 4) - Melvor - Monster Sanctuary - Bad Monkey

2024-10-07 - Melvor - Monster Sanctuary - Trust

2024-10-08 - Melvor - Monster Sanctuary - Taskmaster

2024-10-09 - Melvor - Monster Sanctuary - Taskmaster - Dandadan - Slow Horses (Season 4)

2024-10-10 - Melvor - Monster Sanctuary - Trust - Taskmaster

2024-10-11 - Melvor - Trust - Taskmaster

2024-10-12 - Melvor - Trust - Monster Sanctuary - The Yiddish Policemen's Union

2024-10-13 - Melvor

2024-10-14 - Melvor - Monster Sanctuary

2024-10-15 - Melvor - Monster Sanctuary - Taskmaster - The Anderson Tapes

2024-10-16 - Melvor - Monster Sanctuary

2024-10-17 - Melvor - Monster Sanctuary


We have developed speed, but we have shut ourselves in. Machinery that gives abundance has left us in want. Our knowledge has made us cynical. Our cleverness, hard and unkind. We think too much and feel too little. More than machinery we need humanity. More than cleverness we need kindness and gentleness. Without these qualities, life will be violent and all will be lost.

The aeroplane and the radio have brought us closer together. The very nature of these inventions cries out for the goodness in men - cries out for universal brotherhood - for the unity of us all. Even now my voice is reaching millions throughout the world - millions of despairing men, women, and little children - victims of a system that makes men torture and imprison innocent people.

via The Great Dictator

I just thought: "The more places I put pineapple, the more places he'll think I put pineapple."

via Taskmaster

He was announcing the truth to you and telling you that the truth has the taste of death, and you believed, not in his words, but in his grimness. And now I say to you that, in the infinite whirl of possible things, God allows you also to imagine a world where the presumed interpreter of the truth is nothing but a clumsy raven, who repeats words learned long ago.

via The Name of the Rose

_A bartender at one of the management retreats made a handsome return by buying Capital Cities stock in the 1970s. _When an executive later asked why he had made the investment, the bartender replied, “I’ve worked at a lot of corporate events over the years, but Capital Cities was the only company where you couldn’t tell who the bosses were.”

via The Outsiders

Previous page · Next page

Lightning bolt
About the author

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.

Lightning bolt
Greatest hits

Lightning bolt
Elsewhere

Lightning bolt
Don't miss the next essay

Get a monthly roundup of everything I've written: no ads, no nonsense.