Eight months ago I started dumping everything I read into Apple Notes. Every day. At the end of the month I review it, keep what's worth keeping, merge it into a file, push it to a forge. That's it. I didn't do this to build a "second brain". I wanted to solve a simpler problem: remember what I read. A few months later, something else started happening. I had references. When talking with…
If my development environment needs the internet to work, that's a dependency bug. The network is the least reliable resource I have. Keep it out of the critical path. I test this by turning Wi-Fi off. If the build fails, or the tests stop, or the docs disappear, something still lives outside the machine. That's the thing to fix. A good development loop works offline. cargo build builds. cargo…
Most integration tests can be load tests. I don’t see this done enough. Good testing advice is clear. " Write tests. Not too many. Mostly integration. " I add a layer: most tests can be stress tests. Or load tests, if you prefer. A load test is not defined by tooling, but by intent. It saturates a constrained resource (CPU, memory, disk, network) until limits are reached. Assertions move past…
Early in my career I worked with a Google team on an open-source project. I didn't like it . Strict reviews, rigid style, heavy testing discipline. Everything felt slow and overengineered. A waste of time. I moved on, and everyone said the obvious thing: you’re not Google, you don’t need to do what Google does. That’s true. But it’s incomplete. Teams don’t stay small and stable. People move.…
Tools When I use a tool, I want the tool to care about me. I want it to be good. I want it to explain itself. I don't want to search Google for documentation, skim blog posts, or click through SEO just to remember how something works. I want examples. I want clarity. Everything I need should be part of the tool itself. That's not how most software works anymore. Everything is monetized. Everything…
What I'm aiming for: make test One test harness everywhere . If wiring it to a new environment needs special glue, the issue is almost always in your system boundaries, not the tests. And it doesn't need to be make . It could be cargo , go , bazel . One entry point . Let config handle the differences. Sometimes it's simple: ENV=local make test ENV=ci make test ENV=staging make test ENV=prod make…
I was upgrading a project to Spring Boot 4. Multiple modules and libraries. Java, Gradle, AWS, CI, Docker... The kind of change that usually demands long-lived branches, careful sequencing, and a lot of trial and error. What surprised me wasn't the technical complexity. It was how much the shape of the work changed once the cost of being wrong went to zero. This is what my tree looked like: ➜…
On Simulacra and Simulation we see how easily we mistake motion for meaning. Borges wrote that two mirrors are enough to create a labyrinth. Now, consider sound. We make noise to be noticed. We announce, post, ping, repeat. Sometimes visibility, sometimes ego. Noise tempts us because it feels like progress. It gives shape to uncertainty. It fills gaps that should stay empty for real work to…
I've worked on hard problems: implemented AI papers, optimized backend services, troubleshot networking issues in production, databases. Some for work, some for fun. Building hard things gives you understanding and skills . Everyone talks too much about understanding. Nobody talks enough about skills. If you don't build hard things, you won't know these skills exist. You won't learn them.…
In this post we explore how starting from resources (CPU, RAM, DISK, NETWORK) can drive clearer, simpler and more robust system design — rather than beginning with features, frameworks or fancy architecture. Modern software don’t fail because they lack abstractions. They fail because they ignore hardware. Cultural disconnect Engineering is about solving a problem in a specific context: time, team,…