Software Identity

These days I find my hands on a keyboard more than anything else, my eyes riveted to a twilight screen, and my skin untouched from the sun. The following is a reflection from the past to the present, starting when my software journey had just begun.

I entered software when I left behind manufacturing automation, and envisioned myself as a hacker. Code pieced together quickly, and I loved connecting dots. Parachuting into challenges, and armed with Stack Overflow, I charged the green field. I didn’t know what a unit test was, but with enough iteration and grit, the code would always run.

One and a half years later, the depth and breadth of my thought had expanded. I’ve heard chess grandmasters ponder over twenty moves ahead; I too started thinking deeper. The more code I read, the faster my comprehension. Project after project, I witnessed the impact of my decisions. I came to have confidence when informing my peers “I am a software engineer.” Fascinated by design patterns, I tweaked my approach with every implementation. I took pride in this compliment: the software works because it must work.

With the passing of another two years, I entered a new era, one of minimalism. The docstrings I once cared for began to seem ugly, the classes felt cumbersome. I ran into too many typing limitations, and finally admired duck typing. If the code didn’t feel lightweight, I would restlessly envision solutions at night. I would not say I was implementing faster, but I definitely felt I was implementing better. Attending PyCon for the first time, I realized how far I had come, and glimpsed the road ahead. I now considered myself a senior software engineer, though in actuality the corresponding promotion was premature.

Over four years into work as a software professional, my beliefs became fuzzy, more philosophical. The meditative article The story of Mel was impactful to me. Taking place around me was a decline in the global economy, and the sun set on my program of the last three years. The code I’d spent thousands of hours forming went unrealized. After much reflection, I can state our misgivings were mostly beyond the technology under development; building well is only part the battle.

Ascending the Dunning-Kruger effect’s slope of enlightenment, a fourth shift in identity took place: I was a programmer. I appreciated a saying reminiscent of the Zen of Python: “done is better than perfect.” The tech stack didn’t matter so much any more, developed instincts guided me. I finally embraced vim, revisiting my fundamentals. I knew the way things could be, though I’d still get hung up on how they should be. Ironically, this mindset was not far from my starting headspace years ago.

I am reminded of a Dr. Seuss title “Oh, the Places You’ll Go!” To think software is just one of many subsets of computer science, I’m so glad I got out of mechanical engineering.