Circle in a Spiral
What the Technology Industry must learn from the Airline Industry
At the time of writing, I’ve just taken my seat for the 2nd flight of the day. I’m reminded by the airline that “Safety is our number one priority”. When do you think the tech industry will proudly make that announcement?
You may argue that airlines need to be held to a different standard. You may argue that the domain in which you operate, is not necessarily safety critical. That may have been a reasonable argument several years ago but things are different in this hyper-connected digital space we live in now.
read moreCircle in a Spiral
Buffer overflow — what is it and why is it still such a security problem? (part 1)
In 2024, Buffer overflow unfortunately still exists. Why it still exists after all these years is probably another topic for another article. Not to be too depressing, there has been wonderful progress in OS and programming language safety since “Smashing The Stack For Fun And Profit” was published in 1996— but there hasn’t been enough progress to completely eradicate it from existence.
In this article, in much the same spirit as “Smashing The Stack For Fun And Profit”, I will walk through why the problem exists and how it can be exploited for educational purposes only.
read moreCircle in a Spiral
Naked AI
Way back in 1999, a new cooking show in the UK launched called The Naked Chef starring Jamie Oliver. The name comes from the style of cooking where the methods were stripped down to the bare essentials.
I like the approach of getting down to the basics to begin the learning journey for something as complicated and seemingly magical as AI. I have used this approach successfully before to learn networking and the TCP/IP stack.
read moreCircle in a Spiral
One Rule to Rule Them All (Software Engineering)
Dave Thomas suggested One Rule to Rule Them All, during a talk in 2022. Spoiler Alert, the one rule is “Make It Easier to Change”.
Please go watch the video, but in essence, a lot of what we do to craft software is to make it easier to change later.
The word “soft” is something that is easy to mold, fold, cut, compress. In contrast to hardware which, once it is manufactured is not easy to mold, fold, cut, compress.
read moreCircle in a Spiral
Coding Ninja
Code like a Ninja — but how?
Here are some tips I’d like to share from my 4 decades of coding. This list began life in another article I wrote, but I realized it is worthy of being it’s own living thing (expect updates in the future).
Don’t stop learning. There is always something to learn in this field. You may struggle less if you have at least a basic understanding of binary and logic gates.
read moreCircle in a Spiral
Hacking the (NY Times) Spelling Bee
How did I manage to get to Genius level in a matter of seconds?
Firstly, I’m using the term “Hacking” to refer to the act of “fussing with machines” and not the act of “digital trespass”. “Hack” and “Hacking” are ambiguous words with multiple meanings [1].
So, the hack in this case is using machines (software) to enable you to impress your friends and quickly solve or at least get closer to solving the New York Times Spelling Bee.
read moreCircle in a Spiral
Tips For Becoming A Software Engineer - My Journey Shared
My personal journey through the land of programming languages
I started coding when I was 12. The first language I picked up was BASIC. Between now and then, several decades have passed. It’s been a long journey. There is no destination. For some of the stops along the way, I hung out for quite a while. Years in fact. C (6 years), C++ (4 years), Java (12 years). Others, were quick stops.
read moreCircle in a Spiral
Have we gone too far with “Teams”?
In this article, I question corporate culture’s tendency to focus exclusively on the concept of team and collaboration. Firstly, I have to say I am not knocking teams. All I am proposing is that space should be considered to accommodate, nurture and provide support for creativity and individualism.
A team of wolves are able to work together to bring down large prey such as this bison
I could easily have renamed this article “Team vs Individual”.
read moreCircle in a Spiral
Perfectionism: Knowing when to stop
As engineers, we often strive for perfection. Yet, there are instances where perfection is not required. Often referred to as “over-engineering”, sometimes achieving a state of “good enough” suffices. Striving for perfection in one specific realm or undertaking can divert resources from other equally deserving areas. A good example of this is showcased in the “Trash of the Titans” episode of The Simpsons, where Homer Simpson runs for the role of Springfield Sanitation Commissioner by pledging extravagant services, such as round-the-clock garbage collection.
read moreCircle in a Spiral
Static vs Dynamic Typing — which one is the best?
In September 2023, Turbo 8 announced they were dropping TypeScript. This (re-)ignited the age-old debate of static vs dynamic typing and the question of which one is superior. Here’s my perspective on this enduring discussion.
Which one is superior? The answer: both.
Figure 1 — Just some random Python code I wrote in 2023
While this may seem like a non-committal stance, I assure you it’s not. Both approaches have their merits and, like most decisions in engineering, it boils down to making trade-offs.
read more