2024-05-07 The Technical Debt Snowball

What I Did

I’ve been atomizing the groups into their respective domains. It’s tedious work, but I’ve been learning to enjoy it, especially after my Technical Debt Snowball (more in the next section).

Plenty of drudgery, nothing interesting to talk about, though I was able to add actionable TheoLogos reading list items instead of letting it clog up my relaxation time.

What I Learned

I’ve invented a new system for working through gargantuan technical debt accumulation. It’s called the Technical Debt Snowball.

This TDS isn’t that groundbreaking, but addresses multiple problems at once:

  1. Big piles of things to do are scary.
  2. That scary perception makes it difficult about where to start.
  3. The stuff has to get done.
  4. Once you get started, it’s easier to keep going, but it’s hard to get started.

The idea is simply Dave Ramsey’s Debt Snowball, applied to technical debt:

  1. Quantify how many items you have in each pile.
  2. List the quantities from smallest to largest.
  3. Focus on the smallest pile as the dominant scope of your work, even if you bounce around everywhere else with related elements.
  4. Celebrate each time you knock out a pile.

I made it a priority to sift through 30 pages a day to sufficiently be done with this project by the end of the calendar year. This system has allowed me to track how well I’m doing. As of last week, I was anticipating I’d be done by 11/25, but now it looks like 11/13.

What I’m Doing Now

My Grandiose De-Hoarding Mission is on track, loosely guided by a Johnny.Decimal-like system:

  • It consists of 9,383 files, each one containing between 1 and 10 elements.
  • As I go, each condensation or output will make fewer files, but each re-categorization will likely make more files.
  • The number is moderately arbitrary relative to results, thereby avoiding the risk of Goodhart’s Law while also implying I’ve made some sort of progress.

The project will eventually send everything to 3 possible places:

  1. My essays will be updated, most notably NotaGenius and Trendless Tech.
  2. My toolbox, if it’s potentially useful.
  3. The primitives and templates for future projects.

Throughout the entire system, I maintain a schema that reflects the content I’m building:

ref#location0 re-sorta contentb guidesc commentaryd tools
0totally unsorted453
1current inbox83
2a pile of other weird things31
100my portfolio site edits9
200AdequateLife edits53
300Gained InSite edits105
400TheoLogos edits942
500NotaGenius edits189
600EntertainingSpace edits33
700Trendless Tech edits119
750basic toolbox updates90
8007 small pages30
8540Math82502312
8580Entrepreneurship summarized, in general78199345162
What it takes to plant a church or start a ministry105
Specific entrepreneurship for the tech industry201747
8590Management summarized, in general108201508017
Specific management necessary for running a church21202319
Specific management for the tech industry36965
86013CPU1120197
86014Assembly Code61
86021Programming Basics4110931
86022Programming Features2
86023Software Design8157937
86024Software Redesign4171941
86025Version Control35319159
86026Software Maintenance126
86027IDE2141524
86028Anecdotal Language Comparisons27566494932
86030Technical Documentation854227
86031Programming Habits313233
86032Game Development117135116
86033Graphics242924
86034AI561418
86035Machine Learning39459567
86036Making Programming Languages1231
86037Compilers21311
86050Algorithms263217118
86052Data Structures4958317
86053Databases8630131118
86054Data Visualizations (unmade)1
86060Operating Systems181158115
86061Booting324
86064CLI/Consoles2131731
86066Unix & Linux6061295717
86067Windows vs. Unix4352
86070Networks8215141015
86071Protocols1751321
86072Web Development1944221570
86073Browsers333411228
86074Social Networks (ummade)249
86090Screen353
86101Speakers/Microphone2101258
86110Distributed Systems66841218
86111Virtualization4114512
86112Cloud Systems2125191616
86114P2P/Torrent9423481
86115Blockchain12254233
86120Hacking14316
86120OSINT (unmade)250814
86121TL;DR Cybersecurity33561
86123Malware2231
86124Social Engineering916137
86125PenTesting1393424625
86125App/Host/Data Security7915271016
86126Authentication6152754
86127Encryption10291838
86128Cybersecurity Compliance17131012
86134Job-Seeking: Technical Interviewing42465
86170Gleaned Axioms5

The flow of work represents itself through a unique semi-ordered flow of “phases”:

  1. Separate out the guides, opinions, and tools for each section (0->a-d).
  2. Send grouped inbox items into their appropriate categories (000-001->100-86170).
  3. Update the old content I’ve already written (100-750).
  4. Finish out a few easy pages (800).
  5. Add ready-to-go content updates (a).
  6. Finish the Entrepreneurship pages (8580).
  7. Finish the Management pages (8590).
  8. Finish the Math pages (180).
    • I’m aiming for breadth, not depth. I don’t need to perform combinatorics in my head, but I do need to explain in plain English what the heck each math “thing” is, traced along a pseudo-path through the route of standard formalized education:
      • Basic arithmetic
      • Algebra
      • Geometry/trigonometry
      • Statistics
      • Calculus
      • Number theory, with a likely divergence into applied maths and game theory. Along the way, I’ll keep a jargon-resistant dictionary of the big math words.
  9. Bounce around Trendless Tech for a while (86013-86170).