RSSAmplifier

Blog

Coffee on the Keyboard

James writes stuff about programming, mostly

coffeeonthekeyboard.comRSS feed ↗15 posts

Latest posts

There's no such thing as simultaneous

A thought experiment: Imagine you have two computers sitting next to each other, about one foot apart, each displaying a clock. The clock has nanosecond precision and you, a superhuman watching two supermonitors, are able to see that the nanoseconds are in sync . As you sit there, looking at the

Introducing SPIFFE AuthZ Proxy

I made a tool to learn more about the SPIFFE and Spire libraries and APIs. And to make it faster and easier to adopt SPIFFE-based MTLS Authentication (AuthN) and Authorization (AuthZ) into older HTTP server applications, especially those built in languages or frameworks where handling short-lived certificates could

LLMs are not neutral tools, using them harms people today

I realize by saying this publicly I might be putting my own career and future opportunities at risk. I am saying it, anyway, because it is important to say. I am a vim user. Not even NeoVim, just vim. So I like to think I have a good sense of

Using Risk Taxonomies to Speed Up Development and Avoid Churn

We've all been there: the project is nearly complete, there's a deadline, and someone comes to a status meeting with a problem. A big problem. Something that puts the whole project at risk and means we have to delay, and maybe even rethink our approach. And

Learn to never have a good idea

"Success" here means your bad idea is thrown out and the team comes up with a good idea, together. You will have helped the team arrive at a...

Discomfort Needs Safety

Growth requires discomfort. Whether that's growing pains as a child, or uncomfortable conversations and feedback, we have to confront and address an existing, comfortable reality, and explore something beyond it. By definition, going out of our comfort zone is, well, uncomfortable. So if you want growth, you need

Zero-cost Future Proofing: Meaningful Namespaces

Sandi Metz famously said " duplication is far cheaper than the wrong abstraction ," and my experience has been that following that advice has usually worked out well. You can't future-proof well until you know what you need to future-proof against. A trade-off that makes

Have More Impact by Doing the Right Work

Writing code—no matter how much, how fast, or how challenging—is not the same thing as having impact on a business. As engineers, we're rarely taught how to think about and describe the work we do in terms of its impact or effects. We'

Data Sinks and Logic Floats

In effective layered architectures, data sinks to the bottom, and logic floats to the top. The more narrowly-scoped the logic, the higher it floats. The more permanent the data, the deeper it sinks.

Advanced Blamelessness is Owning Mistakes without Fear

Blame happens when we stop our investigation with operator error. Then James restarted the server, which broke everything. The first step towards a blameless culture is to stop blaming people for things going wrong. (Assuming no malicious actors.) Then I restarted the server, which I should've known was

What do you mean by "bad" software?

(Before I get started, a moment to appreciate this header image and whatever was the genesis of it.) Engineers will often describe software as "bad"—often with words like "terrible" or "shitty." This invective is hurled at languages like PHP and JavaScript, at

Distributed Teams Need Face Time

There's a genre of post I've seen on LinkedIn and the fediverse recently that goes something like "I worked with people in person again and forgot how great it felt!" In the warming discourse about remote work and Return To Office (RTO) policies, I

There's a Difference between "Publicly Available" and "Free as in Speech"

A couple weeks ago, the Wall Street Journal published 10-minute interview with Mira Murati, CTO of OpenAI , in which Murati said that their new "Sora" video generator model was trained on "publicly available or licensed data" (emphasis added by Ed Zitron). Ed wrote a longer

Stuff I've Been Reading - March 1, 2024

This is a collection of some of the articles, blog posts, podcasts, etc, that I've read in the past couple of weeks. I'm hoping to make this more of a weekly post on Fridays. We'll see! I'm immediately going to break the

Debt, Depreciation, and Sustaining Engineering Work

Calling rearchitecture "tech debt" is a dangerous lie: it misrepresents the level of effort and retroactively makes our decisions into mistakes.

Coffee on the Keyboard · RSS Amplifier