Knowledge and specialization

Now that Thanksgiving is over, I’m trying to get back in the swing of things and stick to my habits. I’ve been terribly bad lately, staying up too late, not getting enough exercise, and spending too much money on beer. I’m sure a lot of it was exuberance with the bitcoin price action; I was way too excited about my prospects. This Thanksgiving pullback seems to have deflated my mania. I also deleted TradingView and my cointracking apps off of my phone.

I spent a lot of time playing Elite: Dangerous the past week after it was offered for free on Epic Games. It’s a massive timesuck. I played six hours after dinner on Thursday, trying to complete a mission that may have been bugged. It’s a great game, but I feel like I need to delete it from my PC. Otherwise I may wind up pulling out the Saitek flightstick and Oculus out of the closet. May as well buy some adult diapers while I’m at it.

Last night I spent the evening working on a bug fix pull request for a Hardhat issue that no one’s been working on. I ran into it while working on my Ether Auction unit tests, two other people seem to have discovered it as well, so I decided to take a look at it. It was actually pretty easy to fix. The Hardhat library explicitly imports many of the matchers in the Waffle library, these balance change functions were just left out. I tested one of them within my actual repo and it worked fine, but I’m not sure the most efficient way to design a unit test around every one of these functions. I may take another crack at it later.

I still get a kick contributing to projects, knowing that my contributions are forever going to be associated with the project history. Even if I’m just doing minor stuff like fixing a typo or adding a couple of imports to a file. It’s like every commit or PR gives me dev points, and each one still gives me a little dopamine hit.

There was a quote that’s had my attention recently: “the more knowledgeable you become, the more you tend to specialize.” I can’t recall the exact wording, but the gist is that as one gains knowledge in a field, the more one tends toward specialization in a particular niche. One the one hand, my professional knowledge has tended to spike toward a topic for a period of time before moving on in a different direction, Jack of all trades, Master of none, if you will. I might be overly harsh on myself. On the other hand there is a bit of immense freedom in this, that I’m not trapped into a particular niche. Still, it may be too much freedom, and has prevented me from truly mastering particular domains. I usually focus on what I need to get things done, then it’s on to the next thing.

When I was younger, I used to ready entire documentation manuals from front to back. I remember the large Windows 2000 Server Administrator guides, large 1700 page monstrosities that I would flip through with great curiosity. It got me pretty far in my career, and still serves me well as far as Windows server administration goes. I’m just trying hard to get away from that career.

Now that I’m in my forties, there’s a part of me that wonders whether I still have the capability to absorb information or pick up new skills like I used to. My brain is a sponge, but is it’s absorption rate still what it used to be? I don’t know whether it’s just doubt, impostor syndrome, or just too much time to think, but part of me is wondering whether I have what it takes to succeed in these endeavors that I’m undertaking.

As far as my day job goes, it seems that I’ve already made a semi-conscious effort to stop keeping up with the changes. There’s so much consolidation in the managed services space, with remote management and process service vendors merging left and right. New offerings are popping up all the time. Every few days Bossmang will send me an email about some online conference for this or that, Sonicwall’s new OS offering, say, and ask me if I’ve registered for it.

“Nope”. Aint gonna.

I’m simply focused on maintaining our existing customer networks. We haven’t had a new client in eighteen months. Right now I’m just focused on completing the Ether Auction, then I’ll have my first Ethereum project under my belt, and then I’ll feel comfortable calling myself an Ethereum developer, which will open a lot of doors. I know I can get the version done before a COVID vaccine is widely available, and then I should be able to go anywhere.

I’ve always loved casting a wide net, and going wherever my fancy took me. Unfortunately, this results in a bit of decision paralysis. I must get this from my mom. My dad called it “flightiness”, as she always had a new hobby, whether it be woodcrafts, painting, stained glass, or hiking. I tend to take after her in that respect, in what Missus calls my six-month projects.

I’m more focused on seeing things through to the end these days, but I’ve always lived by the maxim that works of art are never completed, merely abandoned. Maybe it’s a matter of specification, the difference between building to requirements versus a creative project based more on exploration.

Focusing on the process, rather than the outcome seem to help. Sit down, code, make progress toward the next thing. Resist the urge to start something new. Say “no”. Have constraints. Reduce the possible futures to the set of those where success (or at least completion) is inevitable. Collapse the superposition to a finite state, hit that commit button, deploy that contract, so you can say it.

“I’m done.”