Today
- There’s an idea going around right now about “writing for AIs”: writing as if your primary audience is not human readers, but the language models that will be…
Yesterday
- Above the clouds in the Peruvian Andes there is a town named La Rinconada. It holds the title of being the highest year-round settlement in the world. At one point swelling to 30,000 people, the population has dwindled some now near 12,000. The weather is cold and the oxygen is...
- Almost every time I share a new example of an SVG of a pelican riding a bicycle a variant of this question pops up: how do you know the labs …
- In high school I had the weird, cyclical circumstance of reading Arthur Miller’s The Crucible at least once a year at every grade level. Like Groundhog’s day but set in fictionalized 17th century Salem. While I appreciated the easy grade at the time due to uncoordinated...
- Part of the Accepted! series, explaining the upcoming Go changes in simple terms.Add context-aware, network-specific methods to the net.Dialer type.Ver. 1.26 • Stdlib • Low impactSummaryThe net.Dialer type connects to the address using a given network (protocol) — TCP, UDP, IP,...
- PDF/A is a specific version of PDF designed for long term archival of electronic data. The idea being that PDF/A files are both self contained and fully specified, so they can be opened in the future without any loss of fidelity. Implementing PDF/A export is complicated by the...
- 13 Nov, 2025 As outlined in my previous two posts: scrapers are, inadvertently, DDoSing public websites. I've received a number of emails from people running small web services and blogs seeking advice on how to protect themselves. This post isn't about that. This post is about...
- The same people behind Project Kamp also run a project called Precious Plastic which is an open source plastic recycling platform. As most are well aware, plastic is a major problem polluting our land, our beaches, our rivers, our oceans, and our balls. While Ocean Cleanup is...
- I’m a sucker for off-grid DIY content. And a double-sucker for commune documentaries. And this post is about a project that scratches both those itches. Project Kamp is a sustainable living community in the hills of central Portugal. The unique thing about this cooperative...
- I had a quick pair programming session with one of my colleagues. Can you imagine that Claude Code doesn’t need to be your only coding buddy? The validation rules needed a little tweak, so here is the piece of code I typed, and below is the version suggested by my friend....
- If you’ve been around, you might’ve noticed that our relationships with programs have changed. Older programs were all about what you need: you can do this, that, whatever you want, just let me know. You were in control, you were giving orders, and programs obeyed. But recently...
This week
- This post is a continuation of Paul Kafasis’ post “Tahoe’s Terrible Icons” where he contrasts the visual differences across a number of Apple’s updated icons in macOS Tahoe (a.k.a. the Liquid Glass update). While Paul’s post mostly covers icons for the apps you’ll find in the...
- Although I technically own the game and played it once a decade ago; I had a horrible time playing Rust. Other players called me the N-word several times, I died almost instantly, my frame rates were trash, and after three hours I put it down and never played it again. Despite...
- Ari Miller is a New York based beat maker who started streaming from his bedroom in 2020. He grew his following by engaging with other popular streamers but where I learned about him was his from viral street performances where he dawns a 55-lbs mobile production studio. He puts...
- One of the hardest things I’ve found about being a Head of Product / Chief Product Officer is that you really have two jobs: The first is setting up a strong product culture, establishing strong design/roadmapping practices, mapping out product processes, managing...
- I redesigned maxleiter.com this week. I've wanted to make it more personal and opionated for a long time, but felt I lacked the expertise to do it justice. With v0 and Claude Code (and some manual cleanup) it only took a few hours. If you haven't played with the homepage yet,...
- For the first year or so, one of the most annoying problems faced by building with AI was getting them to generate output with consistent formatting. Go find someone who was working with AI in 2023 and ask them what they did to try to get LLMs to consistently output JSON. You’ll...
- I stumbled onto Odd Artworks’ Random Mini Dungeon video series via the algorithm. He rolls against a dice table to generate a theme and requirements and starts drawing an isomorphic dungeon on a single sheet of paper. It’s almost like a Solo-RPG meets Inktober mashup activity....
- In 2019, I decided to write a book about software engineering. As an experienced software engineer and manager, I had the topic clear in my head, and assumed the whole project would take between six and 12 months in writing and publishing it. The first proof copy of The...
- My sabbatical is soon coming to an end, and I am looking for a new job. In particular, I am looking for a job at a company that would like to sponsor a working visa for me in Japan, where I’d like to relocate within the next year. If you can sponsor a software engineering visa...
- People tend to all pursue the same opportunity but the greater impact is often had by pursuing the opportunity nobody else sees...
- Having access to multiple parallel CPU cores isn't a new thing by any means, people have been programming in parallel for half a century now, but recent years we've found ourselves at an inflection point. Moore's law is dying, beefy single cores are no longer keeping up. Modern...
- I’ve been curious about how far you can push object storage as a foundation for database-like systems. In previous posts, I explored moving JSON data from PostgreSQL to Parquet on S3 and building MVCC-style tables with constant-time deletes using S3’s conditional writes. These...
- I got tired of writing if-else statements to validate the HTTP request like this: ```tsx:route.ts showLineNumbers export const GET = async (request: Request) => { const { searchParams } = new URL(request.url) const name = searchParams.get('name') if (!name) { return...
Rows per page