Dear L,

Lately, I have been in a mild perpetual wonder. How do human minds, not very different from yours or mine collectively build systems as complicated as self-driving cars, or rockets? The amount of information contained in the designs of such systems is too big to be comprehended by a single mind, or multiple minds for that matter, unless someone considers a crucial aspect of human comprehension; Evolving abstractions.

We generally don’t come up with very complex systems overnight, mostly because we can’t. We build it up, from little seeds that make up some sort of abstract entity until the whole thing clicks together. Much like a jigsaw puzzle. In a jigsaw puzzle, most of us, don’t go from top to bottom, left to right. The very nature of the puzzle forces us to create random seeds that make sense, and as we progress we expand those seeds. Those patches grow organically and click together until we get the whole picture. The engineering process is quite a lot like that. A lot of disparate abstract entities which make sense in their respective area creating abstractions of abstractions until the whole system clicks into place or becomes part of another bigger abstractions. It’s like going in time backwards, from higher local entropy to lower, while keeping a tangible sense of control over the process as much as humanly possible.

One interesting aspect of abstractions, especially engineering abstractions is that they need context. Hamburg, being a port city, has a lot of ships coming in and out regularly. One of my favourite pastimes is to go near the port and look at the ships and tug-boats working away. Almost inevitably, being the proverbial nerd that I am, my mind gets bogged down with the design complexity of a ship. Firstly, there is the hull. Then the propulsion system, the engine, the propeller, steering, navigation, guidance, crew support, the whole shebang. If one just looks at a list of things that a ship contains or, needs to perform it wouldn’t be humanly possible to comprehend all of it, and that’s why we do what I just did. I have squeezed a lot of complexity down to a few chunks of reason. Sections, each representing some function. The hull supports the structure of the ship. The propulsion makes the ship go places. The steering, steers. I sliced the ship down its constituent components by its general function. But say, for a cook on the ship during most days, the useful sections of the ship are probably officers quarters, crew canteen, kitchen and storage. When she needs to cook and serve food, she must have zero barriers between the kitchen and the canteen or, the kitchen and the storage. And a ship designer probably should take that into consideration. But the idea that kitchen, storage and the canteen should be close but separate — even as obvious as it sounds — is a unit of abstraction that probably can be threaded back to the dawn of inn-keeping. In a way, a lot of such ideas that go into modern shipbuilding can be traced back to their most independent origins, from material fabrication to furniture building to restaurant management, until it all snapped into place, manifesting in a ship; Funny enough, depending on who you ask, you'll get a different puzzle.

The same goes for pretty much all of engineering; Solving an engineering problem is quite like solving a jigsaw puzzle, except its many puzzles disguised as one. Depending on the way one wants to slice the problem, it'll give rise to smaller problems, until it's manageable for an individual to reason with. And the one has to keep glueing these slices together until the problem is solved. I remember a quote from Andy Weir, in his novel "The Martian" where protagonist Mark Watney says,

That’s all it is. You just begin. You do the math. You solve one problem… and you solve the next one… and then the next. And if you solve enough problems, you get to come home.

Being a practising engineer, ignoring the can-of-worms that comes with calling myself an engineer, I profusely struggle to internalise the idea that most real-world problems are inherently divisible. And in turn, I underestimate my abilities to solve problems that are too big to hold in my tiny brain at any given time. Unfortunately, in that sense, I'm constantly fighting against one of the most fundamental cognitive superpowers that we have as humans. All of us can solve problems bigger than ourselves, together, or solo; The trick is to accept that chipping away at the problem is key, however small those chips may be.

The Insane Engineering of the X-15

The Healing Power of JavaScript

Why Computers Won't Make Themselves Smarter

The Yoda of Silicon Valley