Subscribe to Soul of an Engineer

Soul of an Engineer is a publication focused on the essence of Software Engineering.

We are in the Age of Software. Software provides infinite leverage. It is no coincidence that 7 out of 10 largest companies in the world are software companies1.

Said simply, we have never been more capable of expressing world’s problems in software. But at the same time, we have had no advances that have made it any easier to build good software systems.

The accidental complexity of building software is out of control. There is a dizzying variety of programming frameworks to choose from. The obsession with methods and tools, and associated certifications theater, is distracting to say the least. And while cloud platforms have democratized software development, they have added enormous complexity to the software development process. All these developments have diverted our focus away from essential complexity of creating software2.

What is the real world problem we are solving? How do we conform software designs to the fluidity of the real world? How do we minimize system complexity such that it is focused on real user constraints? How do we build something which is hard to visualize beforehand?

All these questions point at an “irreducible” essential complexity of creating software. In Soul of an Engineer, I am documenting whatever I find meaningful to mitigate that complexity.

These topics don’t have easy answers. Everything in this publication is intended to engage in a dialogue, not drive hasty conclusions. To learn myself, first and foremost, and to be a part of a community of people who share the interest.