RSSAmplifier

Blog

Ceejbot's notes

This internet thing seems to have taken off.

blog.ceejbot.comRSS feed ↗19 posts

Latest posts

Writing design docs

A couple of years ago I wrote a blog post on how to write a design document. This is a high-octane version of that blog post, refined for the era of short attention spans like the one I have now. In this post, I tell you what a design document is and what it isn’t , and give you a way that works for me to write one, only with fewer words. I’m doing this because I have a hard time getting anybody…

Future shock

I wrote this talk for my employer, to follow a talk given the previous week by the product organization about how they intended to change their work to use the new generation of LLMs. Nobody asked me to. I requested the slot myself – the entire hour, speaking to the entire engineering organization of a bit over 300 people – and I was grateful they had enough trust in me to say yes and let me say…

x Why was this fun (while work was not)?

Let’s start by clarifying what I mean by the question. I’m resurrecting a years-old nearly-finished blog post draft here. What’s funny to me is the time period when I wrote it. I was working for an utter car-crash of a company, one that I am absolutely certain in retrospect existed only to raise money serially and keep its founder’s friends employed. Any time the product looked like it might ship,…

Private homebrew taps

I recently built a few things to make it easier for my team to distribute the tools they’ve been building to the entire engineering organization. I had the advantage of knowing that everybody was on Mac laptops running very close to the latest release. I had some idea of their general habits and blind spots after 18 months of observation. There were a handful of problems I needed to solve here,…

Modern terminal environment

I read Julia Evans’s blog post on “What’s involved in getting a modern terminal environment” and got very excited because there are lots of great comments in that blog post, and I have a few more of my own, and a little meta-commentary. The terminal and the shell Are there good modern answers for terminal software? Sort of. There are certainly many options. I still use iTerm2 . I try other fancy…

Understanding Software

Nothing I said in this presentation will be shocking to any readers of this blog, but my audience here was the entire company. I wanted to let a group of non-programmers know what we do and how everybody contributes to the work of making useful software. PDF version of the rendered slides The Markdown version follows! The SN: indicates my speaker notes. Understanding software and how it comes to…

Accepting Work

For “you” in this document, read “you and your team”. I link to some interesting reading on some of these anvils, but mostly I don’t. These are things I generally take as facts about the world, with the usual squishy “it depends sometimes” about some of them. I use agile methodology language, mostly, even though I like to say I really hate agile processes. Do I hate agile? Really? Let the anvils…

A systems analysis rubric

This is a systems analysis document rubric I’ve written several variations on in recent years. I’ve genericized it a bit and updated it with my current thinking. The form of this document is something a team would have in their official processes library somewhere, as a guide to how to do analysis of a fresh problem. I’ve had this blog post sitting 90% finished for a year now, so hey, here it is!…

Multi-factor panacea

Context: @substack 1 deleted his github account, which includes a lot of foundational source code from the early days of node. The speculation (and it is only speculation as far as I know, though with some foundation in his tweets) is that he did so because of the MFA requirements being imposed on some NPM package maintainers. Here’s my take. It’s not very hot and is probably marginally more…

Goodbye Cloudflare; hello Fastly!

KiwiFarms is a harassment website, sort of like a terrorism-only variation on the *chan sites. It specializes in harassing trans people. It doxxes them, SWATs them and their families, and does its best to drive its victims off the internet. It also has a bodycount. They are a troll farm . Kiwifarms gets to do this and stay on the internet because they’re being protected by Cloudflare . Cloudflare…

Reduce Friction

The topic of reducing friction exhausts me: Do people still need to be persuaded to help their developers go faster? Really? In this, the year 2022? But yes, in this, the year 2022, many teams require persuasion on this topic. Or rather, their leaders require persuasion that they have to do more than give lip service to this principle, and that they must invest resources in making it so, and that…

Against dogmatism

Sometimes I think that my next conference talk ought to be nothing more than a live read-through of Tef’s blog post, “Repeat yourself, do more than one thing, and rewrite everything” . This is a bad idea because Tef should do that, in some post-pandemic future when international travel is safe again and I can attend and buy him a drink. So I’m going to let Tef’s blog post push me off into my own…

One year for a one-line fix

This blog post is harder to write than you might think, because it goes right into a number of people problems and the behavioral patterns of toxic organizations. I wish to preface all of this by noting that toxic organizations warp the behavior of everyone in them. People who might behave in healthy ways in healthy orgs find themselves behaving badly inside toxic systems. The only thing to do is…

Legacy you hate

What should you do with a pile of legacy code you hate? This was the central challenge of my last job. I was partially successful at solving it, and unsuccessful in ways that I want to share with you so you can do better than I did. Let’s start by clarifying the problem. “Hate” is a spongy word and we can be more descriptive about why you dislike the code base you’re presented with. Maybe it’s bad…

Why Rust's postfix await syntax is good

The other day on Twitter Kat Marchán said this: my strongest opinion on programming languages is that postfix .await is the single greatest innovation in the past 70+ years of programming language theory and history and you can’t convince me otherwise. — Kat Marchán has permanently left this site (@zkat__) May 12, 2022 And Jan Lehnardt asked: I’ve seen a few folks say this. Do you know of a “here…

Programming as Theory-Building

A couple of years ago now I read Peter Naur’s “Programming as Theory-Building” (alternative PDF link ) and it was a mind-blower. Yes, this Naur is the same Naur you know from Backus-Naur Form aka BNF . Anyway, you should go and read this essay now. It’s not very long. I’ll wait while you read it. Back? Okay! Let’s do a bit of a crawl through some main points. Highlights of the essay Naur opens…

Dysfunction junction

You know Conway’s Law , of course. I’ll recap it here, just in case: Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure. — Melvin E. Conway This law is a deep one, because communication drives everything that humans do. We are deeply social; we cooperate with each other on large projects by…

Problem statement

The first problem with blogging is deciding where and how to do it. I’ve written static site generators myself in python, ruby, and javascript. I considered writing another one in Rust, my current language of choice, but I decided that this would be too much of a distraction. I have a month between jobs at best, so I need to focus. If you’re curious, this one is generated with Hugo , which I chose…

About

I’ve been on the internet since 1987, which places me in the early generation of people being idiots online. Every mistake it’s possible to make, I’ve made. Blogging is one of those mistakes, and it’s one I have repeated since back when they were called “web journals”. I decided to start blogging again during an interlude between jobs. I’d like to write about what I learned through my last…