Surviving Disillusionment
Much to the chagrin of many of my fellow career programmers, I’ve always tried to operate slightly against the grain to keep things interesting. I do so not gratuitously, but because I know I’m in this profession for the marathon, and so I need to compromise instantaneous velocity to maintain {energy, sanity, motivation, ...}. I get made fun of and occasionally lambasted for it, but I also frequently outpace my organizationally distant colleagues before they say ‘screw it’ and hope their next job will be more fulfilling.<p>I’ve been an adamant user of Common Lisp in the workplace, and I strive to carve out an environment for my fellow peers which allows them to reasonably work toward making creatively simple solutions to complex problems. Despite the continual pressure to (re)write in {C++, C#, Java} and now {Rust, Julia, Python}, my choice continues to pay dividends to myself, my colleagues, and most the organizations I’ve worked for. You can get away with it if you both deliver and manage healthy short-term and long-term expectations.<p>As an engineering manager, I would hold little computer science challenges every Monday morning. 45 mins to think about the problem and code a solution, and 15 minutes of “lecturing” by either myself or somebody who solved the problem. It took a lot of work each Sunday night to concoct a good problem.<p>Engineers invariably fell into two camps. The first were folks who didn’t want to participate because “this isn’t my job nor what I’m paid to do”, and the second were folks who reveled in the challenges, as if they were a paradise-like escape from the more mundane aspects of day-to-day coding. It would stir up conversation for the week and occasionally inspire participants to imbue the skills they learned into day-to-day coding. One of my proudest achievements was a coding challenge on combinators, which opened a big window of fresh air to individuals who didn’t understand closures or high-order functions. Lo and behold, they adopted the practice of using them to simplify some production Python.<p>It wasn’t compulsory so if people wanted to log into JIRA and toil away first thing Monday morning, they could. But if you felt stimulation from learning new things that may or may not actually tangibly help you, the exercises contributed a positive environment, a positive collegial interaction, and a positive following work week.