Timeline
$ git log --all --format="%ad %s" --date=short | sort
- /workhallucination
Still compiling
Present tense.
2026/lifehallucinationStill here
Somewhere between signal and hallucination.
- /workhallucination
Deepening the practice
Less context-switching, more sustained work on hard problems. Focused on craft over throughput.
stackGoRustTypeScriptKubernetesTerraformlearningRust (deepening)eBPFWASMsystems programmingtagsrustebpfwasmsystemscraft2025/lifehallucinationFewer things, done more thoroughly
The discipline of finishing. Harder than starting.
- /workhallucination
Building in public
Launched this site. Writing alongside building. Generative tooling integrated into the workflow.
stackAstroTypeScriptDockerComfyUIOllamaPythonlearningComfyUIOllamaLLM-assisted workflowsgenerative image pipelinestagswritingastrocomfyuiollamaai-tooling2024/lifehallucinationThe writing connected things
3,504 posts and still figuring out what it is. That is fine.
tagswritingblog - /workhallucination
Independent again
Left the org. Returned to independent work with more clarity about what actually matters.
stackGoTypeScriptAstroDockerTerraformlearningAstroTypeScriptstatic site architectureedge deploymenttagsindependentastrotypescriptgo2023/lifehallucinationMore deliberate
Said no more. Built more. The ratio improved.
- /workhallucination
Developer experience focus
Shifted primary focus to internal developer experience. CI pipelines, local dev tooling, observability, service onboarding.
stackGoDaggerGitHub ActionsOpenTelemetryGrafanaPrometheuslearningDaggerOpenTelemetryobservability designDX metricstagsdxplatform-engotelgrafanaci-cd2022/lifehallucinationHealth as practice
Not a crisis response. A routine. Took long enough.
tagshealth - /workhallucination
Principal Engineer
Promoted to principal. Scope expanded to org-wide technical direction, cross-team alignment, and engineering hiring bar.
stackGoRustKubernetesKafkaPostgresTemporallearningorg-level technical strategyhiring bar calibrationRFC processtagsprincipalleadershipstrategyarchitecture2021/lifehallucinationStarted writing again
Notes that became posts. Posts that became signals. The rest are hallucinations.
tagswriting - /workhallucination
Remote-first infrastructure
Helped the org adapt infrastructure and async process for fully distributed engineering.
stackGoKubernetesPostgresPulumiSlack APIlearningPulumiasync engineering practicesremote team toolingtagsremotepulumiasyncdevex2020/lifehallucinationEverything remote
Surprisingly fine, then not, then fine again. The baseline shifted.
- /workhallucination
Full containerization
Led migration of legacy services to Docker and Kubernetes. Dev/prod parity finally real.
stackKubernetesDockerHelmArgoCDTerraformGolearningArgoCDHelmGitOpsplatform engineeringoperator patterntagsdockerkubernetesgitopsargocdhelm2019/lifehallucinationBought a place
First time owning something fixed to the earth. Strange and good.
tagshome - /workhallucination
Staff Engineer
Returned to an org on the IC track. High autonomy, cross-team technical influence.
stackGoRust (learning)KafkaKubernetesPostgresTemporallearningRustTemporalstaff eng patternstechnical strategytagsstaff-enggorustkafkatemporal2018/lifehallucinationRebuilt
Slower. Sturdier. Better defaults.
- /workhallucination
Burnout and reset
Overextended across too many clients. Stepped back, reduced scope, and rebuilt sustainable working patterns.
learningpacingscope managementsustainable workboundariestagshealthboundariesrecovery2017/lifehallucinationStillness
Necessary. Did not feel like progress at the time. Was.
tagshealthrecovery - /workhallucination
Consulting practice
Infrastructure, backend systems, team coaching. Different problem domains every quarter.
stackGoPythonKubernetesTerraformPostgresgRPCAWSlearningcross-domain architecturetechnical coachingsystems design reviewtagsconsultingarchitecturecoachingkubernetes2016/lifehallucinationTraveled more
Different places, different timezones, same laptop. Perspective shifted.
tagstravel - /workhallucination
Went independent
Left the org to consult. Traded stability for direct ownership of the work.
stackGoPythonKubernetesTerraformAWSGCPlearningGCPconsulting practicecontract negotiationclient managementtagsconsultingindependentgogcpterraform2015/lifehallucinationDeliberate simplification
Kept only what worked. Cleared the rest.
tagsminimalism - /workhallucination
Grew and shipped a platform
Scaled the team from 3 to 8. Delivered a multi-tenant platform handling meaningful production load.
stackGoPostgreSQLgRPCKubernetes (early)AWSTerraformlearningGogRPCKubernetesmulti-tenancy patternsteam scalingtagsgogrpckubernetesplatformteam-building2014/lifehallucinationHardest year
Professionally and personally. Navigated both. Some things didn't survive. The important ones did.
- /workhallucination
Engineering Manager
First management role. Hired, onboarded, ran 1:1s, wrote performance reviews. Discovered people problems are harder than technical ones.
stackNode.jsPostgreSQLAWSTerraform (early)GitHublearningengineering managementhiringperformance feedbackNode.jsTerraformtagsmanagementhiringnodeterraform2013/lifehallucinationGot a dog
Priorities permanently and irreversibly reordered.
tagsdog - /workhallucination
Distributed systems
Designed systems that scaled horizontally. CAP theorem stopped being theory. Learned where consistency and availability actually trade off.
stackPythonCassandraKafkaAWSHAProxylearningCassandraKafkaevent streamingdistributed consistencyHAProxytagsdistributed-systemskafkacassandrascalability2012/lifehallucinationPhysical health
Started taking it seriously. Couldn't keep ignoring the cost of the schedule.
tagshealth - /workhallucination
Technical Lead
Led a product engineering team. Owned architecture decisions, ran code review, mentored juniors. Shipped production features weekly.
stackPythonDjangoPostgreSQLCeleryRedisAWSlearningtechnical leadershipCeleryRedisdistributed task queuesmentorshiptagsleadershipdjangorediscelerymentorship2011/lifehallucinationLonger view
Started thinking in years instead of sprints. The urgency became more selective.
- /workhallucination
Open source and community
Went independent part-time. First open source patches merged. Started engaging with the Python and ops communities.
stackPythonDjangoChefAWSgitlearningopen source contributionChefinfrastructure as codegit workflowstagsopen-sourcechefiaccommunity2010/lifehallucinationFound peers
First people in the work who felt like real peers. That changed everything about how the work felt.
tagscommunity - /workhallucination
Navigated a downturn
Company contracted hard. Led a technical pivot with a reduced team. Scope narrowed, focus sharpened. Product survived.
stackPythonFlaskMySQLAWSVarnishlearningtechnical leadershipscope reductionperformance optimizationcachingtagsleadershipflaskperformancecaching2009/lifehallucinationHard year
Emerged on the other side more certain about what mattered. The list got shorter.
- /worksignal
Joined a startup + first iOS apps
Small team, undefined roles. Wrote backend services, managed infra, ran deploys. Wore every hat. The App Store launched in July and immediately started building for it — Objective-C, Xcode, the iOS SDK. Coming from web and scripting languages, Objective-C was a significant shift: manual memory management, message passing, a completely different mental model. Built and shipped apps. The mobile platform felt like the early web — wide open, not yet figured out.
stackRuby on RailsPythonMySQLnginxEC2 (early AWS)Objective-CXcodeiOS SDKlearningRuby on RailsAWS EC2Objective-CiOS SDKmobile UI patternsproduct developmenttagsstartuprailsawsfullstackiosobjective-cmobileJul 10, 2008/lifesignalThe explosion
The App Store launched in July and the web app world detonated simultaneously. Everything pivoted. The skills built over the previous years — Rails, Python, JavaScript, server management, mobile intuition — all of it suddenly had enormous demand. The laptop-and-travel lifestyle did not slow down, but the work transformed. Building for mobile, building web apps, thinking about scale in a way that static client sites never required. The world caught up to the direction things had been moving for years.
tagstravelmobileiosweb-appspivotmilestone - /worksignal
Independent — software going portable
Still working independently. The iPhone was announced in January and the implications were obvious — software needed to run everywhere, on anything. AWS EC2 went public. The idea of renting compute instead of owning it was starting to feel inevitable. Django and Python were getting serious. GitHub launched. The tools for building and deploying software were becoming more portable by the month. Kept building client work, kept absorbing the shift.
stackRuby on RailsPythonDjangoJavaScriptMySQLLinuxAWS EC2learningDjangocloud infrastructure basicsAPI designdeployment automationmobile webtagsfreelancewebpythondjangoawsmobilerails2007/lifesignalThe pivot forming
Still moving, still working remotely. The iPhone announcement in January was the moment it crystallized — the web was going mobile and apps were about to be everywhere. The freelance mix started shifting: less pure web maintenance, more building things that needed to work on any device. The explosion was coming and it was visible from a long way off.
tagstravelremote-workmobilepivotmilestone - /worksignal
Independent — applying the stack, watching the shift
Still independent. The work was a mix of everything built over the prior years — Rails, PHP, WordPress, Drupal, MySQL, Linux, server management. Web 2.0 was in full swing: AJAX, RSS, APIs, the idea that software was becoming a service rather than a product. AWS launched EC2 in beta. Virtualization was maturing fast. Something fundamental was changing about where software lived and who could run it. Paying close attention.
stackRuby on RailsPHPPythonMySQLLinuxJavaScriptjQuerynginxlearningWeb 2.0 patternsREST APIsAJAXearly AWSvirtualization trendstagsfreelancewebrailsphpjavascriptweb22006/lifesignalLiving off the laptop
Traveling constantly, working from wherever. The freelance work covered it — client sites, web apps, server management, whatever needed doing. The laptop was the office. The work was location-independent by design and that was the point. Watching the web change in real time from different places made it clear something big was building.
tagstravelremote-workfreelancemilestone - /worksignal
Python, Ruby, and JavaScript — learning in parallel
Actively learning Python, Ruby, and JavaScript simultaneously — each one pulling in a different direction. Python for scripting and automation, Ruby for the elegance of it and the pull of Rails, JavaScript deepening from the client-side work that started in the late 90s into something more structural. Each language changed how the others looked. The work started shifting from maintaining things to building things.
stackPythonRubyJavaScriptRuby on RailsbashPHPMySQLlearningPython fundamentalsRuby and RailsJavaScript depthMVC patternsautomationtagspythonrubyjavascriptrailslearningwebmilestone2005/lifesignalLanguages change how you think
Learning Python, Ruby, and JavaScript at the same time was not just a technical shift — it changed the shape of problems. Databases were running underneath all of it — Drupal, WordPress, Rails all on MySQL — and understanding what was actually happening in the database changed how the code looked. Schema design, indexes, what queries cost, what an ORM was hiding. Each language had a different opinion about how the world should be modeled. Ruby felt like it was written for humans. Python felt like it had opinions worth trusting. JavaScript was everywhere and unavoidable and stranger than it looked. The work and the thinking started moving faster.
tagspythonrubyjavascriptlearningmilestone - /worksignal
Ubuntu, VMs, and finally real tooling
Ubuntu shipped October 2004. Installed it immediately. Had been on Red Hat and CentOS but this was different — Debian-based, clean, package management that actually made sense. Ran it as a daily driver from that point forward. VMware made it possible to spin up isolated environments constantly — breaking things without consequences, testing configs before touching anything real. Rails came out earlier that year and immediately looked different from everything else — convention over configuration, opinionated, fast to build with. Started learning it alongside the existing PHP and WordPress work. Databases became unavoidable — Drupal, WordPress, and Rails all ran on MySQL and each had a different relationship with it. Started going deeper: schema design, indexing, query optimization, understanding what an ORM was actually doing under the hood. Tooling sharpened across the board: Dreamweaver where visual layout mattered, Notepad++ for everything else, vim for anything on a server. Bash stopped being a convenience and became a primary tool — real scripting, logic, pipes, automation. The gap between using a computer and building things with one had been closing for years. By 2004 it was gone.
stackUbuntuVMware WorkstationRuby on RailsMySQLbashvimDreamweaverNotepad++CentOSlearningRuby on RailsMySQLschema designquery optimizationORM internalsLinux as daily drivervirtualization workflowsshell scripting depthtagsubuntulinuxvmwarebashvimrailsrubytoolingopen-sourceOct 20, 2004/lifesignalTraveling the world with a laptop
Nineteen and moving — different places, different contexts, carrying the work along. The freelance and programming work was portable by design. Wherever there was a connection, there was work. Traveling made it clear that the skills were genuinely location-independent, which changed how everything felt. The world was something to move through, not something to observe from a fixed point.
tagstravelfreelanceremote-workmilestone - /worksignal
WordPress and getting serious about PHP
WordPress launched May 2003. Started using it immediately alongside Drupal — two different tools for different client needs. Both pushed PHP skills forward fast: theming, hooks, custom templates, database queries. PHP went from glue code to actual development. Still self-employed, still growing the client base.
stackPHPMySQLWordPressDrupalApacheHTMLCSSlearningPHP developmentWordPress themingDrupal modulesMySQL queriestemplate systemstagsfreelancewebphpwordpressdrupalcmsMay 27, 2003/lifesignalGetting outside and seeing more of the world
Started moving around more — traveling, exploring, getting out of the immediate orbit that had defined the previous years. The work was portable enough to allow it. Something about being in new places and unfamiliar situations was clarifying in a way that staying put was not. The world was bigger than the screen and it turned out that mattered.
tagstravelexplorationlifemilestone - /worksignal
Freelance continues — web services and going deeper on security
Still self-employed, still growing the client base. Web work continued — but the work of managing hosting for clients pushed networking knowledge forward. Started going deeper into computer security: how systems got compromised, how networks could be probed, what defenders needed to know. Not separate from the web work — the same curiosity, just pointed at a different layer of the stack.
stackHTMLCSSJavaScriptPHPMySQLnmapEthereallearningTCP/IP in depthnetwork scanningsecurity fundamentalspacket analysistagsfreelancewebnetworkingsecurityhacking2002/lifesignalNetworking, security, and making things move
Three things running in parallel: networking theory finally clicking at a deeper level — subnets, routing, how packets actually moved; computer security becoming a serious interest, pulling on the thread that started with PGP in 1996 and the Debian installs in 1997; and media production entering the picture — video editing, early compositing, the same instinct that drove Flash and web design now applied to time-based media. Adobe Premiere, whatever was available. The freelance web work was the through-line but everything else was compounding underneath it.
tagsnetworkingsecurityvideomediadesignmilestone - /worksignal
Growing the client base — websites and simple ecommerce
Still no formal job — continued building on the freelance work started in 2000. Client base grew. Sites got more complex: simple ecommerce integrations, contact forms, basic dynamic pages. Drupal shipped in January 2001 and immediately became useful — a real CMS meant clients could manage their own content. PHP became necessary to actually customize it, which pushed deeper into server-side development. Started managing hosting for clients too, which meant learning more about servers out of necessity.
stackHTMLCSSJavaScriptFlashPHPMySQLDrupalFTPcPanellearningPHP fundamentalsCMS customizationMySQL basicsecommerce basicsclient hosting managementtagsfreelancewebecommercephpdrupalcmsentrepreneurship2001/lifesignalThinking about design with what little existed
The freelance web work from the year before raised a question that would not go away: what makes something well designed? The tools were primitive — table-based layouts, inline styles, font tags, web-safe colors, 216 choices if you were lucky. CSS1 existed but browser support was a disaster. Flash was the only real design freedom available. Started thinking more deliberately about structure, hierarchy, why some things felt right and others did not. Read everything reachable about what few web design principles existed. The constraints were part of it — understanding why the limitations existed was as interesting as working around them.
tagsdesignwebcssflashmilestone - /worksignal
First clients — selling websites out of the Yellow Pages
Opened the Yellow Pages, started calling businesses, and offered to build them a website. Rode a bike to give sales pitches — no car, no office, just a portfolio of sites built from the Tribes modding years and the knowledge that businesses needed a web presence before most of them understood why. Closed enough work to matter. HTML, CSS, basic JavaScript, setting up hosting and DNS. First real clients, first real deadlines, first real money from code.
stackHTMLCSSJavaScriptdial-up hostingFTPlearningclient communicationscoping workDNSweb hostingself-directed salestagsfreelancewebhtmlcssjavascriptentrepreneurship2000/lifesignalY2K was nonsense — but the web was real
January 2000. Everyone had spent a year convinced the world would end at midnight on New Year's. It did not. The Y2K panic felt like watching adults catastrophize something that was obviously a solved problem — interesting as a systems failure mode, not interesting as an actual threat. What was interesting: businesses were finally realizing they needed websites. Pulled out the Yellow Pages. Started calling. Rode a bike to meetings. Built sites, set up hosting, explained what a domain was. The Tribes modding years and everything learned since 1996 suddenly had an application. Counter-Strike dropped mid-year and became an immediate obsession — online multiplayer that actually required coordination, communication, and reading how other people played. It did not feel like a career yet. It felt like something that worked.
tagswebentrepreneurshipy2kfreelancecounter-strikegamesmilestone - Jun 1, 1999/lifesignal
Napster, crypto wars ending, and the open internet
Napster launched in 1999 and changed everything about how files moved. The warez and IRC scene had already taught how distributed networks worked — Napster just made it visible to everyone. Still deep in Newgrounds — building Flash games and interactive stuff, two years into it by now, ActionScript becoming second nature. The Matrix came out in March and hit differently than any movie before it — not as sci-fi but as philosophy. The idea that reality could be a constructed system, that the rules could be understood and then bent, that waking up meant seeing the code underneath everything — it mapped directly onto how computers already felt. That framing never really left. More interesting was what was happening with cryptography: the US export controls on strong encryption were finally loosening, the crypto wars were winding down, and the arguments that had been raging in hacker spaces for years were being settled in the right direction. TLS was becoming standard. PGP was normalized. The things that had seemed fringe and underground in 1996 were now just how the internet worked.
tagscryptographynetworkingnapsterfilesharinginternetflashnewgroundsactionscriptthe-matrixphilosophymilestone - Nov 5, 1998/lifesignal
Starsiege: Tribes and the start of everything
Starsiege: Tribes came out November 1998. Got completely addicted — but it was more than just playing. The game was scriptable in CScript, which was close enough to C++ that one led directly to the other. Started writing mods. Then more mods. Then spent more time in the editor than in the game. CScript pushed into actual C++ — reading it, understanding it, wanting to write it. Newgrounds was also deep in the rotation — building Flash games and animations, submitting them, studying what other people made and reverse-engineering how it worked. ActionScript, hitTest, frame-by-frame logic. That led to asking how servers worked, which led to running one, which led to HTML, which led to building a site for the mod, which led to JavaScript, which led to figuring out hosting. The crypto and networking knowledge from the past two years was suddenly practical. Did not understand it was a career path. Just could not stop pulling the thread.
tagsgamestribescodingmoddingwebhtmljavascriptc++cscriptcryptographyflashnewgroundsactionscriptmilestone - 1997/lifesignal
Cryptography, warez, and pattern recognition
The PGP fascination from the year before deepened into actual study — symmetric vs asymmetric encryption, how RSA worked, why key length mattered. SSL was starting to appear on the web and understanding what the padlock actually meant became an obsession. Installed Debian for the first time. Kept breaking it. Reinstalled it. Broke it again differently. The install process alone was an education — partitioning, bootloaders, dependency hell before anyone called it that. The hacker spaces on IRC were full of people who knew things and would explain them if you asked the right questions. Also got into the warez scene — IRC DCC transfers, Usenet binaries, FTP sites full of software. Less about the software itself, more about the infrastructure: how it stayed hidden, how the distribution networks worked, how people organized without being findable. Same questions as the crypto side, just applied differently. Quake II dropped in December.
tagscomputerscryptographyhackingircgameswareznetworkingmilestone - Jun 22, 1996/lifesignal
Quake, N64, and learning to hack
Quake launched June 1996 — the first game played seriously online. Multiplayer over dial-up. N64 followed in September with Super Mario 64 and GoldenEye. Macromedia Flash came out the same year and immediately became an obsession — timeline-based animation, ActionScript, making things move and react in a browser. PGP was circulating — the idea that two people could communicate and nobody else could read it was fascinating. Got pulled deep into encryption and cryptography: how keys worked, what public/private meant, why math could make a secret. The crypto wars were happening in the background and the hacker spaces were full of it. Running scripts, poking at things, lurking in IRC. The point was to understand how the machine worked, one layer at a time.
tagsgamesquaken64internethackingirccryptographyencryptionflashactionscriptmilestone - Jan 16, 1995/lifesignal
PlayStation, Sega Saturn, and Star Trek Voyager
Star Trek: Voyager premiered January 1995. PlayStation shipped in September, Sega Saturn in May. 3D gaming became real. Online presence deepened — more chatrooms, more BBS, more digging into how software worked. Still watching TNG reruns. The hacker ethos of figuring things out from first principles was fully locked in by now.
tagsgamesplaystationsegastar-trekprogrammingmilestone - 1994/lifesignal
Chatrooms, BBS, first code, and Descent
Started going into chatrooms and BBS boards looking for people who knew how things worked. Found game source code and started reading it. First real programming experiments. The internet felt like a secret place where you could learn anything if you knew where to look. December 1994: Descent dropped — six degrees of freedom, fully 3D movement through tunnels. A different kind of spatial thinking than Doom.
tagscomputersprogrammingbbsgamesmilestone - Dec 10, 1993/lifesignal
Doom on five floppies
December 1993. Got a copy of Doom. Installed it from floppy disks. The game was unlike anything — but more than the game, something clicked about the machine itself. Started pulling the thread: what is MS-DOS, why does typing things make things happen. Went online via BBS to find out. Never really stopped.
tagscomputersgamesmilestonedosbbs - 1992/lifesignal
Learned to read — comics, newspapers, Wolfenstein
Reading came through three channels at once: comic books, the Sunday newspaper comics, and video game dialogue. Zelda and RPGs demanded it. Calvin and Hobbes, Peanuts, Far Side. Read everything in reach. May 1992: Wolfenstein 3D shipped. First-person shooter before anyone called it that. The machine could render a 3D world — the same machine that ran DOS and spreadsheets.
tagsreadingcomicsgamesmilestone - Aug 13, 1991/lifesignal
SNES — the upgrade
Super Nintendo launched. Got one. Street Fighter II, Super Mario World, Legend of Zelda: A Link to the Past. A step change in what games could be. The Sega Genesis kids were wrong.
tagsgamessnesmilestone - 1990/lifesignal
Pulled the plug
Pulled the power cord on a running PC while someone had been working on it all day. All their work vanished. Did not understand what had happened — only that the machine held something real, and it could disappear.
tagscomputersmilestone - 1989/lifesignal
Saturday morning cartoons and Star Trek: TNG
Up before anyone else. Bowl of cereal. Transformers, G.I. Joe, He-Man, Teenage Mutant Ninja Turtles. Two hours that belonged entirely to me. And then Star Trek: The Next Generation — a different kind of show, people solving problems with their minds, technology as the answer to everything. Watched every episode.
tagscartoonsstar-trekmilestone - 1988/lifesignal
First video game — Atari
Got access to an Atari 2600. Joystick, cartridges, the TV turned into something interactive. Did not fully understand it. Could not stop.
tagsgamesatarimilestone - 1987/lifesignal
Language acquisition
Slow at first, then all at once.
- 1986/lifesignal
First year
Loud. Demanding. No documentation.
- Oct 18, 1985/lifesignal
NES — it arrived
The Nintendo Entertainment System came into the house. Too young to play but watched it constantly — Super Mario Bros, Duck Hunt, the screen doing things no TV had done before. Learned what the buttons did by watching before hands were coordinated enough to use them.
tagsgamesnesmilestone - Jun 19, 1985/lifesignal
Born
Arrived. The rest followed.