- Quality Tools: humble servants or tyrants?
-
A quite old post, which still makes sense today.
I’ve always been an ardent proponent of internal quality in software, because in my various experiences, I’ve had more than my share of crappy codebases to maintain. I believe that quality tools can increase the internal quality of the code, thus decreasing maintenance costs in the long run. However, I don’t think that such tools are the only way to achieve that - I’m also a firm believer in code reviews.
- Why Senior Engineers Let Bad Projects Fail
-
When you’re earlier in your career, you want to believe that good ideas win on merit, that if you just explain clearly enough, people will see reason. It took me quite some time to accept that big companies don’t work that way.
I love how the author compares influencing people in your organization with a limited credit, which accrues slowly.
- AGENTS.md
-
A simple, open format for guiding coding agents, used by over 60k open-source projects.
Claude Code uses
CLAUDE.md, and I’m not sure it usesAGENTS.md. But you can easily create a symbolic link. - I Cut My Docker Image by 99.7% (846MB to 2.5MB). Here Is the Full Breakdown
-
Nothing new, but worth repeating.
- Step 1: Switching to Alpine (846MB to 312MB)
- Step 2: Multi-Stage Builds (312MB to 15MB)
- Step 3: Stripping the Go Binary (15MB to 8MB)
- Step 4: Cleaning the Build Context (8MB to 7.5MB)
- Step 5: Scratch and Distroless (7.5MB to 2.5MB)
- How to get the right CoroutineScope
-
runBlocking {}: Fine choice in themainfunctioncoroutineScope {}: Create a scope in a suspending functionCoroutineScope(): Create a long-live scope- Check your framework
- 6-day and IP Address Certificates are Generally Available
-
When you have automated the whole certification chain, a shorter lifecycle means increased security. I’ll still need time to get used to this short a range.
- Why We’ve Tried to Replace Developers Every Decade Since 1969
-
This fifty-year pattern teaches us something fundamental about software development itself. If the problem were primarily mechanical—too much typing, too complex syntax, too many steps—we would have solved it by now. COBOL made syntax readable. CASE tools eliminated typing. Visual tools eliminated syntax. AI can now generate entire functions from descriptions.
Each advancement addressed a real friction point. Yet the fundamental challenge persists because it’s not mechanical. It’s intellectual. Software development is thinking made tangible. The artifacts we create—whether COBOL programs, Delphi forms, or Python scripts—are the visible outcome of invisible reasoning about complexity.
- The True Magic of Refactoring Club
-
The topic of refactoring is probably as old as programming in an enterprise. Should refactoring be a dedicated task, part of a ticket, with stakeholders buy-in, or should it part of the regular work. The author advocates for the latter with arguments.
- Introducing CSS Grid Lanes
-
One more CSS layout to confuse you. I’m not following up anymore.
- How I Used AI to Audit 3 Years of SmartHome TechDebt (And Built a System to Prevent It From Happening Again)
-
If you are serious about Home Assistant, this post is a trove of ideas. I definitely need to implement them, at least the auditing part, even though my configuration is younger and much less long.
- Shutting Out the Noise
-
Nothing to add.
- The AI Revolution in Coding: Why I’m Ignoring the Prophets of Doom
-
Many know how the Luddite revolution ended. Spoiler for those who don’t: not well. Pushing back against inevitable change is a waste of energy. However, developers need to learn new tools all the time, just like when when we switched from Cobol to C, then from C to Java. AI is quietly replacing programming languages as the source language. You won’t be replaced if you adapt to the new reality.