Software design patterns
2026-08-02 04:25 by Ian
Coding is one thing... Engineering is another.
Programming as magecraft
2026-05-01 23:44 by Ian
"Magic is a curious fire. It pollutes the minds of those who would shape it. One magician may sense the mind of another magician, blazing like a beacon in an otherwise dark landscape." ---Alastair Reynolds (House of Suns)
Vibe-coder rant
2026-04-29 11:54 by Ian
The robots will not pinch-hit for your own responsibility to impose values on the code you are no longer writing.
C++ architectural preferences
2026-03-02 09:30 by Ian
I've done firmware architecture for at least four companies (depending on how you count it). This is a running log of my observations and experiences building embedded code bases to solve common business problems in an engineering org.
Today, I rip on everyone's language
2025-10-15 02:08 by Ian
Disclaimer: I've used all of these languages professionally, and if you are not the sort of person that can enjoy a roast, you should stop reading. Don't take anything personally. Least of all this.
Besides, you can't help that your language sucks.
2024.08.03: My thoughts on testing and doc
2024-08-02 23:25 by Ian
Here are some of my favorite pieces of software doc that I've done to support my creations.
2024.05.31: Faster is not always better
2024-08-02 03:48 by Ian
I've spent more than 75% of my life writing computer programs. In my considered opinion, the most difficult thing about my craft is Time and timing.
It's not easy to make it simple
2022-11-20 02:48 by Ian
Complexity is not something to be avoided, but a resource to be spent in service of solving a given problem.
How to write Java code that doesn't suck
2017-09-04 02:42 by Ian
It only takes one simple piece of knowledge to write Java code that has a runtime heap usage more inline with that of a comparable C program. I am writing this post as a public service to teach your engineers how to remove Java from their Java code.
The state of my exposure to cryptographic libraries
2016-09-30 14:56 by Ian
This is a quick overview of the cryptographic libraries I have deep experience with.