Some thoughts on LLMs and software development
a short post
The latest blog posts to take off on Hacker News. 14,537 posts.
a short post
How to build a CLI coding agent
Discover the unique design challenges of creating a spherical planet out of Minecraft-like blocks.
GPS coordinates aren’t exact. Sensor readings have noise. User behavior is probabilistic. Yet we write code that pretends uncertainty doesn’t exist, forcing messy real-world data through clean Boolean logic.
One of the first types we learn about is the boolean. It's pretty natural to use, because boolean logic underpins much of modern computing. And yet, it's one of the types we should probably be using a lot less of. In almost every single instance when you use a boolean, it should be something else.
Rust is known for having a steep learning curve, but in this post we will be looking at another curve, the one showing developer productivity in relation to the project size.
I first ran into Forth about 20 years ago when reading a book about designing embedded hardware . The reason I got the book back then was to actually learn more about the HW aspects, so having skimmed the Forth chapter I just registered an "oh, this is neat" mental note and moved on with my life. Over the last two…
Making programs slower can be useful to find...
We’ve had decades of thought leadership around testing, especially coming from holistic development philosophies like Agile, TDD, and BDD. After all that time and several supposedly superseding movements, the developers I talk to seem to have developed a folk wisdom around tests. That consensus seems to boil down to…
In the AI era, the winners won’t be the tools you adapt to — they’ll be the tools that adapt to you.
I’ve invested in a new odometer to help my car go faster. Accountability is important, and as a driver I believe the most important thing I can do is set measurable, achievable and inspiring goals for the people pushing my car down the road.
Sometimes a merge request (MR) doesn't merit a code review (CR) because AI was used in a bad way that harms the team or the project. For example:
Half a century ago, the puzzling phrase "special register groups" started showing up in definitions of "CPU", and it is still there. In this...
For the last ten years or so of working on Bundler, I’ve had a wish rattling around: I want a better dependency manager. It doesn’t just manage your gems, it manages your ruby versions, too. It doesn’t just manage your ruby versions, it installs pre-compiled rubies so you don’t have to wait for ruby to compile from…
I’m a big fan of “sharp tools”. These are tools that are powerful enough to be hugely helpful or harmful, depending on how they’re used. Most forms of direct…
A CLI tool is not an app, and none of you are reading the docs as carefully as you think you are
Most of what modern software engineers do involves APIs: public interfaces for communicating with a program, like this one from Twilio. I’ve spent a lot of time…
After 15 years as a software engineer, I realized I had never actually built and published a game.
written by Eric J. Ma on 2025-08-23 | tags: python runtime llm security namespace compilation execution functions toolbot monkeypatching
When I first started using Claude Code, I had a naive approach to working with it. I would describe the task directly in the prompt, press Enter, and cross my fingers. If the agent made mistakes, I would tell it how to fix them. For small tasks, this can be good enough, but as the task grows in complexity, this…
A visual introduction to big O notation.
How I use DeepWiki to speed up real coding work
I’ve been working on a CLI tool recently, and one of the things it does is manage files on disk. I have written a lot of file management tests for Bundler, and the two biggest reasons that the Bundler test suite is slow are exec and fstat. Knowing that, I thought I would try to get out ahead of the slow file stat…
In a service with capacity $\mu$ requests per second and background load $\lambda_0$, the usable headroom is $H = \mu - \lambda_0 > 0$. When $M$ clients align, e.g., after a cache expiry, at a cron boundary, or as a service returns from an outage, the bucketed arrival rate can
It's not that hard to build a coding agent. 300 lines of code running in a loop with LLM tokens. You just keep throwing tokens at the loop, and then you've got yourself an agent.
LLM models are plateauing, but true AGI isn't about scaling the next breakthrough model—it's about engineering the right context, memory, and workflow systems. AGI is fundamentally a systems engineering problem, not a model training problem.
As programmers we spend a lot of time shuttling data back and forth between different systems and transforming it from one format to another. Sometimes it gets pretty miserable!
Unicode is good. If you’re designing a data structure or protocol that has text fields, they should contain Unicode characters encoded in UTF-8. There’s another question, though: “ Which Unicode characters?” The answer is “Not all of them, please exclude some.”
In this post, I will walk through how I learned to implement Flash Attention for 5090 in CUDA C++. The main objective is to learn writing attention in CUDA C++, since many features are not available in Triton, such as MXFP8 / NVFP4 MMA for sm120. I also feel this is a natural next step after learning about matmul…