Stack entered

In September 2020 I decided to enter the stack. What follows is a brief recounting of why, a description of how it went, and a preview of what’s coming next.

Achieving Escape Velocity

Summer, 2020. Like many, I was feeling the impact of the pandemic. But it wasn’t until June 2020 that the pandemic resulted in a personally life-changing moment: I was furloughed from my job in a local factory. I had no problem with that, initially.

I began taking our dog on a long, early morning walk every day, and I began training essentially every afternoon in our courtyard using my kettlebell collection. Oh, and I assumed dinner duties to aid my still-working partner. In addition to that:

  • I completed and published Barker
  • I wrote Stateless for Sonya Mann and published a short story collection called Ss

Then I started to worry. There was uncertainty about my return to work, and about the job market in general. I decided to try and land a role in product management. Some things I ended up doing:

I learned a lot, yet after three months none of the above had resulted in a new job. To make up for lack of experience in the field I was trying to enter (tech > product) I’d gone wide. Just look at the “elements” I was trying to systematically survey in the ECPM project:

  • Business analysis
  • UI and UX design
  • Software development/engineering
  • Project management
  • Interfacing and integrating

This mile-wide approach wasn’t working. It had to change. I considered going deep, instead: actually attaining computing expertise seemed like the most sensible option for myself, at that specific time. I read a random Reddit comment about a Coursera specialisation that covered most of a year one computing degree syllabus (apparently). It was called the Fundamentals of Computing. I signed up. A month or two later, I landed a job at a UK-based startup writing about B2B software and doing some product-y things. The rest, as they say, is recent history.

Extremely Compressed

Disclaimer: I haven’t technically finished the FundOfComp specialisation. I’ve completed six of the seven courses. The last is a capstone exam, which is a validation of things learned rather than a further extension to them. However, I can’t access it due to some grading mechanic peculiarities, and I could be waiting a few more days or two months until that changes. So, instead of a full review of the specialisation I thought I’d present a few (extremely compressed) ideas that have stuck with me.

  • Computing is a combination of programming, mathematics and meta-rationality.
  • I’m attracted to computing for the same reason I’m attracted to writing: the inherent agency.
  • The abstract processes of debugging and algorithmic thinking are useful in many domains.
  • Algorithmic thinking: understand a problem, formulate it mathematically, design an algorithm, implement the algorithm, analyse the result.
  • Debugging: acknowledge a bug, isolate it, identify it, fix it.
  • The knowledge required to solve a problem is a tiny subset of all that can be known about a problem.
  • The accumulation and continual exercise of this arbitrary knowledge results in deep expertise.

The above may seem a little hand-wavy but they are abstractions of the more fundamental changes that have occurred in the activity patterns of my grey matter. The above also doesn’t do justice to the things learned via the specialisation. The near year-long, sincere commitment to learn a new discipline—a new way of thinking—has, surprisingly enough, taught me a lot and changed my mind.

As someone who neglected their formal education—after GCSEs it was all downhill on the educational front—the steady, deliberate, structured and focused practice of learning has been profound. But I do wonder, would I feel the same profundity if I had sincerely applied myself, in the same manner, to a different domain? Would studying physics in the same way have had a similar impact on my mind and perspective? What about mathematics? Biology? Design? Psychology? History? Literature?

Part of me says, “Yes, the power of learning is in the process of paying attention, of seeing things differently, of engaging the world with sincere humility and curiosity.” Part of me says, “No, some things are magnitudes more epistemologically powerful than other things.” Part of me says, “The question itself is irrelevant, a diversionary counter-factual.” Part of me says, “The question is critical and has a very real impact on my ability to affect the future.” Which Me do I believe? For now, all of them. 

First, Second and Third

Back to the present. What happens now? Outside of patiently waiting to access the FundOfComp capstone exam, passing it, and completing the specialisation officially, I have plans.

  • First: restart work on the planned novella and finish it by 2022.
  • Second: start work on the two Adjacent Mini-Projects.
  • Third: do something else.

The planned novella is about a man who goes into the woods for a week. It’s a deliberate exercise in minimal storytelling, and I have its skeleton assembled. I just need to begin writing it once more.

AMPs are little extras attached to major projects. I initially imagined them as artistic or creative endeavours seeded via a writing project. A map of the campus or interior sketches of the buildings in Barker, or a comic-style artwork representing the stories of Ss.

However, since learning to compute I realised that I can leverage AMPs to continue to learn to compute. In relation to the novella, there are two AMPs that have caught my attention. The first centres around the design of something that “solves” the labyrinth described here. Essentially, formalising the representation of the labyrinth as a graph and writing something that can construct it arbitrarily. The second concerns a very particular design for a meditation timer that I’d like to explore.

“Something else” will either be another writing project or something computing related. I don’t know which yet; it’s a 2022 thing that will be impacted by the experience I have with the AMPs.

Choosing an Edge

When I was considering stack entry, I looked at the stack as a spectrum:

  • Boring edge: hardware, low-level languages, old and archaic languages
  • Lumpy middle: the chart-toppers for most popular languages
  • Bleeding edge: machine learning, deep learning, “cool” stuff

Yes, that formulation is naive and inaccurate but it helped me orientate. It continues to help me orientate, actually. One intention with the AMPs is to start to figure out which end of the stack I enjoy more: bleeding or boring edge. Post-novella—and post-novella AMPs—I’ll continue to zone in on this. And there’s two potential ways to go about this.

The first is more speculative and more open-ended. It’s based on exploring stuff from a list of “vehicles for exploration” that I’ve been assembling. It’s not a high resolution list; here’s a raw snapshot from my Roam graph:

The second is more pragmatic, and is driven directly to my professional work. An immediate inventory of things to start learning includes:

  • Python data analysis using tools like Pandas, IPython or Jupyter notebooks
  • The fundamentals of MySQL
  • Command line interface proficiency

In reality, I suspect that I’ll end up doing a blend of both. But modifying my near-future choices further are four more concepts. The first two come courtesy of Venkatesh Rao, the third via Cedric Chin, and the fourth from John Ohno.

  1. The REALIST stack: renewable energy, electrified, additive-first, lithium-based, IoT, software-defined middleware, tensor-based computing.
  2. The idea of a “home base” within said stack: “A friend of mine, Keith Adams, has a helpful rule of thumb: the typical range of a good engineer is 3 layers of a stack: a home layer, plus pinch-hitting ability one layer above and one layer below. So a systems programmer who primarily works with C and low-level representations might also have some comfort with processor architecture “below,” and with compiler design “above.” So a good “full-stack” professional is a human stack-height measuring stick of length 3.”
  3. Career moats: “A career moat is an individual’s ability to maintain competitive advantages over your competition (say, in the job market) in order to protect your long term prospects, your employability, and your ability to generate sufficient financial returns to support the life you want to live. Just like a medieval castle, the moat serves to protect those inside the fortress and their riches from outsiders.”
  4. Big vs small computing: think global systems operating at scale versus home-brewed, completely contextualised tools, interfaces and modes of operation.

This is starting to get quite tangled for a retrospective, isn’t it? Consider the chaos reined.

Maintaining Many Paths

Regardless of what happens next, I’ll continue to pursue many paths at once. Whether I’m pairing a longer period of formal learning with open-ended reading and experience-seeking, or furiously trying to complete a novel or essay series before a self-imposed deadline expires, it’s certain that I’ll get blocked. But as B.H. Liddell Hart said in his biography of US civil war general William Sherman:

“To the irresistibility of this progress Sherman’s flexibility contributed as much as his variability of direction. Moving on a wide and irregular front—with four, five or six columns, each covered by a cloud of foragers—if one was blocked, others would be pushing on.”

Hopefully my own progress will be just as irresistible.