2024
May 15, 2024
It's better to have two functions that do one thing than one function that does two things.
May 8, 2024
Even the most common applications have non-obvious pitfalls.
May 1, 2024
Many underestimate the importance of the maintenance phase in a software project.
April 24, 2024
A simple way to estimate your system’s requirements.
April 17, 2024
It can take days to find the cause of the stupidest bug in the world.
April 10, 2024
Writing good documentation is easier than you think.
February 4, 2024
How to perform a successful migration.
January 4, 2024
How can I make my teammates obey my orders?
January 3, 2024
Not everything is the same; choose the most suitable platform and design specifically for it
2023
August 16, 2023
If you add pressure on one side, you must release it on another.
August 9, 2023
Code written because “I’m going to use it later” is almost always useless.
August 2, 2023
Instead of always trying to prevent your users from doing forbidden things, sometimes allow them but leave evidence.
July 19, 2023
When you think you are nearly done, you find out there's just as much left to do.
July 12, 2023
Disasters are not caused by people, but by the system who put them in that situation.
June 28, 2023
A way to design good APIs for those of us with little experience designing APIs.
June 21, 2023
Programs exist so people can use them; don’t hoard yours.
June 14, 2023
Don’t always rush from project to project; leave time for other things.
June 7, 2023
“Don’t Repeat Yourself” isn’t such great advice.
May 31, 2023
The story of a bug that caused more latency the more servers we added.
May 24, 2023
Not everything is a string.
May 17, 2023
The drawbacks of being indispensable.
May 10, 2023
A parable about code quality.
May 3, 2023
Do you know who wrote the software you use?
April 26, 2023
Programs should work acceptably well without requiring extensive configuration.
April 19, 2023
Don’t go poking around your program in search of bugs; use the scientific method.