- The Impractical Engineer
- Posts
- The Impractical Engineer
The Impractical Engineer
Stumbling Toward Better Software Engineering Since June 2025.
It’s June!
Lovely June! Depending on where you are in the world the days are still getting longer and the sun is shining and life just feels a bit better. Welcome to the second month of the Impractical Engineer! I’m your host and editor, Onorio Catenacci.
This month we’ve got another book review, another puzzle (with the solution to last month’s puzzle) and some other goodies as well. Hope you enjoy and, as always, I consider feedback a gift so if you care to gift me with your feedback I’d greatly appreciate it!
Book Reviews Dept.
A Review Of:
A Philosophy Of Software Design by Dr. John Ousterhout
Before I begin on the review itself it may be appropriate to give a bit of biographical background on Dr. Ousterhout for those who may not be familiar with his name. Ousterhout is one of the creators of the Tcl scripting language along with the Tk graphical toolkit. In the days before the prevalence of other ways (e. g. wxWidgets) to create simple cross-platform GUI’s Tcl/Tk was usually the best option for a small, lightweight GUI. There are still utilities on Linux which use Tcl/Tk as their preferred GUI tooling.
Ousterhout is also one of the co-creators of the Raft algorithm. Raft (along with Paxos) is an algorithm for allowing a group of distributed nodes to reach consensus on some common value. Reaching consensus on values is a surprisingly difficult problem in light of the properties of the CAP theorem and other properties of distributed systems.
This book is a pithy, short examination of important underlying notions of software design. Alongside “Code Complete” and “The Pragmatic Programmer” this is one of my go to books for good advice on how to build high-quality software. The central premise of the book is discussing and illustrating ways of learning to decompose problems. Problem decomposition is one of those skills that developers are supposed to acquire via osmosis by working around other developers. In fact a good handle on problem decomposition is one of those traits that I think distinguishes the seasoned software engineer from the novice.
Decomposing problems into smaller problems and solving those smaller problems is so central to the act of creating good software it’s shocking that so few texts address this particular aspect of the work. Ousterhout begins by defining what’s probably the central problem of all software development i. e. battling a constantly rising tide of complexity. He makes the observation that complexity is the result of lots of small simple decisions compounded over time. To the software developers in the audience I’m sure you’re probably thinking “No kidding genius!”
He then proceeds to lay out some concrete strategies for dealing with the tendency of systems to grow in complexity under maintenance. His writing is practical and well-honed from years of experience in creating software. It’s impressive that he manages to distill the wisdom he’s acquired without sounding preachy.
As I said above this is one of a handful of books that I consider foundational for becoming an exceptional software developer.
4 out of 5 stars.
Puzzles Dept.
Puzzle
May’s Puzzle:
Consider the following sequence of numbers:
1, 1, 4, 9, 7, 25, 10, 49 . . .
What should the next number in the sequence be?
This is the problem with trying to come up with puzzles. I inadvertently made this easier than I intended! My original idea was this: starting at 0, for even numbers add the index of the number to the number. So 0 being the first number in the sequence it becomes 1. 2 being the second number in the sequence it becomes 4. For odd numbers simply square the number. So the next number in the sequence in this case is 13. But I unintentionally reinforced the pattern that each even index was 3 greater than the one before! Ah well.
June’s Puzzle:
You are an adviser to the king; the king has acquired three magical glass flasks and he’s asked you to determine if they are all using the same unit of measure. The enchantment on the flasks is rather unusual; you can pour any liquid into any of the flasks as often as you like. But every time you pour from one flask to another you risk the enchantment being broken so you want to avoid pouring between flasks as much as you can.
If you count pouring liquid from one flask to another as a “pour” and you don’t count filling the flask initially as a pour what’s the fewest number of pours you need to determine if the beakers are commensurate (that is using the same unit of measure)? You can also assume that you can fill each flask to the rim and that no liquid is ever spilled.

Three Glass Flasks (AI Generated Image)
Answer in next month’s newsletter.
What’s Happening Dept
Event Calendar
Date/Time | Event | RSVP/Details |
---|---|---|
5 June 2025 7:00 PM | Hybrid MI Python | |
11 June 2025 6:00 PM | Detroit Tech Watch — Model Context Protocol In Action (Co-hosted With Detroit Google Developers Group) | |
18 June 2025 5:30 PM | MIDOTNET - Randy Pagels - AI-Driven Development with Azure, OpenAI, and GitHub | |
21 June 2025 10:00 AM | tech[inclusive] - Code And Coffee |
And, with many thanks to Mr. Dave Aronson who maintains a list of upcoming conferences and calls for papers (CfP) at Codosaurus here are some CfP’s which are closing in June 2025:
Event Name | Closing of CfP | More Details |
---|---|---|
Nerdear.LA ARGENTINA | June 8, 2025 | |
HalfStack Vienna | June 12, 2025 | |
PyBay | June 14, 2025 | |
Python Developer Day Thailand | June 14, 2025 | |
DDD Perth | June 15, 2025 | |
Lambda World | June 15, 2025 | |
Voxxed Days Thessaloniki | June 20, 2025 | |
PyCon Kenya | June 22, 2025 |
I know there are a lot more interesting events in the world and if you have more events you’d care to add please send them to the editor.
Other Good Stuff Dept.
Other Newsletters To Check Out
Here are a few of the newsletters that I subscribe to. They’re great reading and written by some very smart folks.
Hillel Wayne’s Computer Things Newsletter: https://buttondown.com/hillelwayne/
I always look forward to seeing Hillel’s newsletter because I always learn something fun and worthwhile from his stuff. He’s also written at least three excellent books that I know of! I mean he may have written more than three; I can’t keep up with such energetic people!
Artificial Antics: https://antics.tv
My good friend Mike Onslow got interested in learning more about AI a few years ago and he’s taken that curiosity and interest and turned into not only a newsletter but also a podcast and a YouTube Channel.
|
Humor (We Hope) Dept.
The Answers We Wish We Could Give To Those Open-Ended Interview Questions
All of us have had to deal with the kinds of questions that only come up in an interview situation; those open-ended questions that have no good answers. Well as a public service we here at the Impractical Engineer have some suggestions for potential responses you can use next time you’re interviewing!
Q: Tell me about yourself
A: Well what can I say? Since I was released from the asylum I’ve been doing my best to adjust to society again . . .
A. Why? What have you heard?
A. I’m currently taking anger management classes to learn to control my rage toward people who ask me trite questions. 1. 2. 3. . . .
Q: Why are you interested in working here?
A: Well, my gang has been casing a bank not far from here . . .
A: Why? What have you heard?
A: I really dig your wife and I want to figure out how to get rid of you.
Q: What would you consider your biggest weakness?
A: Off hand my short attention . . . oh is that your family?
A: Why? What have you heard?
A: I have no weaknesses. Bring out a candle and I will demonstrate my tolerance of pain!
Q: You’ve been asked to estimate a job. You’re pretty confident that it will take 2 weeks but you’ve just been told you’ve got a week. What do you do?
A: Weep at the stupidity of middle management
A: Why? What have you heard?
A: Well, first I begin working on a time machine so I can go back to a time before I started this interview and warn myself not to waste my time.
Feedback Dept.
If you’d care to share
feedback
suggestions
events
questions
or anything else, please contact me, Onorio Catenacci, editor of the Impractical Engineer at my email.
If this newsletter has been forwarded to you and you like what you see and you’d like to see more please subscribe at https://impractical-engineer.beehiiv.com/subscribe. It’s free and it’s very simple to unsubscribe should you decide it’s not for you.
And if you’re a subscriber and you’d like to do a small favor for the editor, please share this with your developer friends!