View on GitHub

lambda.mg

puchka's blog

Engineering Should Be About Building Cool Shits

One of my favorite quotes from SICP is the one from Alan J. Perlis in the Preface: “I think that it’s extraordinarily important that we in computer science keep fun in computing. When it started out it was an awful lot of fun.”

I would also add that Engineering should be about problem-solving and building cool shits instead of fake working at a desk for 8 hours. If I just described how you are currently making a living, I have nothing against that if someone is willing to pay for you to sit and give them some perception of productivity. But what I want to highlight is that real Engineering work shouldn’t be constrained to that.

I was always being attracted by assignments that were about implementing cool stuffs even if it seems hard. This could be perceived as a foolish attitude for a fake worker professional, but it’s what led me to Computer Science at the first place.

Some of the cool things that I built while working were things that were not specifically assigned to me directly, but I took on the task and I had fun doing it. I also suggested to do stuff or actually did it things that sounded cool but leads me into troubles because the others didn’t see it that way.

I recall for example a time I suggested to unit test a system system against a legacy system while we were porting it into another technology. Or automate some task that seems repetitive. These were challenging problems that were not specifically requested but it was challenging and it would have been fun to address them.

One of the best workd I did were also addressing these problems that were not specifically requested. For example, I implemented a Hierarchical Deterministic Wallet in Clojure for Bitcoin and Monero after having troubles making a Rust implementation work on some colleagues computer architecture.

I know that real work will not be fun all the time, but I find it’s equally important as getting stuff done to keep the fun in the house. Like in civil engineering, it shouldn’t be always fun to lay bricks and compacting concrete but it’s part of the process of building things. Same is applicable for Software Engineering, sometimes, we will have to put the work in and implement necessary things to build things that the customer want or the product needs. But I think that Engineers should be allowed to do Engineering.