Philosophy

Internal Logic / Origins

Core Disciplines

  • • Computer Science
  • • UI/UX
  • • Human-Computer Interaction (HCI)
  • • Mathematics
  • • Physics

Software should respect its users' privacy and cognitive needs. We need to be able to trust our software, as it is a house of cards. Minor software bugs are not minor, at scale: this accumulation of little inconsistencies and nuisances results in a death by a thousand paper cuts. I have used hundreds of software products across Linux, BSD, Windows, and macOS. As a Reliability Analyst at ALSAC/St. Jude Children's Research Hospital, I saw how reliability at an enterprise level can affect the morale and lives of IT professionals. While IT professionals are the tech-savvy people with more agency to make changes as they see fit, users also suffer but do so silently, because they cannot tell why a problem exists or may lack vocabulary to describe it. As outlined in my presentation for the Memphis .NET User Group, software reliability is a function of total Lines of Code (tLOC), or more generally, a function of the limits of human attention span and memory span. Outside the language, the incidence of bugs is a function of the total number of interface definitions between systems, scaling quadratically. The only ways to address this is through developer experience and language ergonomics. These are are so subtly important and often ignored or swept under the rug that I made it my mission in life to conquer software reliability and advocate for solutions that respect the limits of human cognition. I was once a teenager with ideas, but around every corner in software was a roadblock, from malfunctioning software to bad documentation to abusive policies and vendor lock-in. When you have as many ideas as I have for software the issues with reliability and transparency become an anchor holding you back.

I started coding in early high school on a TI-83+ Silver Edition graphing calculator, picking apart programs with black-box reverse-engineering before I had reliable internet access. I practiced several hours a day for years on an 8×16 character display with no lexical scoping — variables were global to every program, so I wrote code bottom-up so the editor would land near a fault faster, and I memorized entire listings because the screen could not hold them.

From fractal generators and a black-and-white image compression scheme to automated math suites (to avoid doing the actual school work) and text-based Pong and Snake, my early work was obsessive, improvised, and deeply intimate with the machine.

I am an “unprofessional”: I do not respect the traditions of the profession. I break expectations and question the existing order of things.

The quotes and figures that shaped that posture are on the Inspirations page. My self-written WordPress about page is archived verbatim at About (WordPress archive).