The Geek Code, Decoded
There was a stretch, in the late nineties, when every email I sent ended with seven cryptic lines I never explained to anyone. The block was called a Geek Code. Then the protocol fell off the web, along with most of the medium it lived in. Last month I wrote a new one.
It reads like this:
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12 (interpreters beware)
GIT d- a+ C+++ UB+++ P-- L++ M+ W- N+ PS++ PE Y? PGP+
t+++ X++ R tv-- b+++ DI+ D+ G- e+ h---- r++ y+ S++
KISS+++ AI+++ RS--- ETHICS+++ NO-BS+++ META?
------END GEEK CODE BLOCK------
What follows is the decoder ring. Some of it is canonical. Some of it I invented. The note about interpreters is a warning to the parsers: my dialect is not in the spec, and any tool that tried to ingest the block strictly would refuse halfway through.
Robert Hayden, 1993
The Geek Code began as a joke on Myers-Briggs. Robert A. Hayden, a Minnesota student tired of the personality-test taxonomies of the time, published a parody in early 1993: a string of letters and modifiers a person could append to their email signature, declaring their dress, their Unix flavour, their stance on Perl, their Star Trek tolerance, the works.
The code took off because Usenet had exactly the right shape for it. Signatures lived at the bottom of every message; the medium rewarded compression; the audience would recognise the references without explanation. Within two years there were parsers, FAQs, and a half-dozen forks. Version 3.12 (released in 1996) became the canonical reference. Hayden retired the project not long after. Nothing replaced it because nothing needed to: the kind of internet that produced Geek Codes was already losing ground to a friendlier, more populated, less coded one.
The Geek Code is dead in the same way RSS is dead. Which is to say, it isn’t. It just stopped being the thing the broader internet talked about.
What a quarter-century of tech leaves in a person
I won’t walk twenty-eight characters through twenty-eight paragraphs. The interesting reading is by cluster.
Stack politics: UB+++ L++ M+ W-. Heavy Unix and BSD upbringing, Linux as the daily driver, Mac as the laptop, Windows tolerated only when an engagement demands it. That ordering still shapes my choices in 2026: the boring Postgres on a Debian VPS comes naturally; the proprietary all-in-one comes with friction.
The Perl rejection: P--. I’m old enough to have been offered Perl as the right answer many times in my twenties. I never agreed. The minus signs are not nostalgia. They are a long-standing position.
Crypto and trust: PGP+. I have keys. I have used them. I keep them current. Most of my correspondents do not, which is its own commentary on where the open web ended up.
Culture markers, vintage 1996: t+++ X++ R tv-- b+++ DI+ D+ G-. Star Trek, X-Files, role-playing games, very little television, many books, a soft spot for Dilbert, a Doom-era veteran, never goth. These are the categories Hayden put in the original because they were the cultural reference points of his cohort. Reading them back today is a time capsule. A 22-year-old in 2026 would not pick these. They are the right ones for someone who learned the internet inside the window when Hayden was writing.
Person stuff: d- a+ e+ h---- r++ y+ S++. Dresses casually. Forties. Higher education mostly self-taught. The h---- I’ll let the reader interpret; I have an opinion. Long-paired. Decades online. The rest is private and stays that way.
The ambiguous ones: N+ PS++ PE Y?. Usenet news (still respect the protocol, still mourn the medium). PS and PE are the political modifiers, with all the elasticity those terms deserve in 2026. Y? is uncertainty about my own Y, which is the only honest setting.
That is the canonical block. The interesting work begins after it.
The dialect
The last six tokens are mine:
KISS+++: Keep It Simple, Stupid. After twenty-five years of watching projects fail from over-engineering, this stopped being a slogan. It is a screening question I apply to every architecture review. If the simplest version of a design feels embarrassing, it is usually right.
AI+++: Full engagement. I orchestrate models for a living. The block has to declare it because the position is unfashionable on both sides: not refusenik, not cheerleader, just professionally inside the thing.
RS---: No social media. Three minuses are not a temporary state, they are a policy. I deleted the accounts. The block formalises the absence.
ETHICS+++: Yes, I run an explicit ethical filter on what I take on, recommend, and ship. The triple plus is what stays after a career of having choices: at some point you notice you are choosing.
NO-BS+++: A meta-rule for everything else. Direct speech, no padding, no marketing voice, no slide-deck euphemism. In a fractional-CIO mandate this is half of what people are paying for, even when they don’t yet know that.
META?: The honest one. I do not know how much of this self-description holds up under hard scrutiny. The question mark is the only modifier that does.
What I’d add if I rewrote it tomorrow
Three more tokens come to mind:
RSS+++, to match the manifesto. SQLITE+++, for the boring database that has outlasted three vendor stacks I once trusted. JS---, for the JavaScript I refuse to ship to my readers’ browsers without a reason.
I’m resisting them today. The block is supposed to be terse, and self-amendment every Sunday is a form of yak shaving I have learned not to indulge. The absence of those three letters is itself a piece of information: I have a written stance on each of them, in earlier posts, and I’d rather the block stay short than restate the manifesto.
The minuses I am proud of. The plus signs I have to keep earning.
A signature, not a SKU
LinkedIn taught me what a profile is: a SKU. Keywords harvested by recruiters and recruiters’ tooling, ranked by an algorithm that knows nothing about who I actually am, packaged for a database that compares me against other SKUs on the same shelf.
A Geek Code is the opposite. It compresses, but it does not optimise. It signals to the people who can read it and is invisible to the people who can’t, which, on the open web, is the right way round. There is no SEO benefit. There is no recruiter pipeline. There is nothing in it for any third-party broker of attention.
This is why I still keep one. Not as nostalgia. As a calibration tool. Writing a new block, every few years, forces me to ask which letters changed and which didn’t. The blanks I leave are admissions. The minuses are positions I am willing to defend. The plus signs are commitments I’ll be measured against by anyone who bothers to decode the string.
A profile is built by what an external system thinks you should advertise. A Geek Code is built by what you are willing to put your name to in a public archive, parser-unfriendly, with no upside other than being read by the people for whom it was written.
That, after thirty years online, is the only kind of self-description I trust.
On the Internet, nobody knows you’re a dog. — Peter Steiner, The New Yorker, 5 July 1993