Most recently, I’ve led over 60 people across AI research, QA, design, and web and mobile development. I’ve been writing software since middle school, and every year I hand more of the implementation to AI, so I can do more research, design, architecture and long-term planning.

I contribute

The research, architecture, systems design, patterns, copy and design.

AI implements

The code. More every year, reviewed and tested against decisions I’ve made.

  1. 2024ZorkAII wrote every line. AI was the narrator.
  2. 2025ZorkAI, PlanetfallAI agents began to write code against my tests. I review.
  3. 2026AdventureBreakerAn AI playtester built to break my AI narrator. AI wrote most of it; I designed it.
  4. 2026Unopened Worlds, this siteAI writes the implementation. I own every decision.

Written by me Written by AI

  1. 80
  2. 81
  3. 81
  4. 82
  5. 82
  6. 83
  7. 83
  8. 83
  9. 83
  10. 83
  11. 84
  12. 84
  13. 84
  14. 84
  15. 84
  16. 85
  17. 85
  18. 85
  19. 86
  20. 86
  21. 86
  22. 86
  23. 86
  24. 87
  25. 87
  26. 87
  27. 87
  28. 87
  29. 87
  30. 87
  31. 88
  32. 88
32 Infocom worlds, 1980–1988.Two are breathing again: Zork I and Planetfall.

> look

You are in Michael Lane’s portfolio. Exits lead to WORK, EXHIBITS and RÉSUMÉ. Try EXAMINE MICHAEL.

The day job

Work I’ve led

What I build with a team. Below it, what I build on my own time.

CareerRev·Cart.com·Sesami·Premier Designs·OrderEase·Kobo·Toolbox·LogitechFull résumé →

Education

Education

In progress

MSc, Artificial Intelligence

East Texas A&M University

My research on multi-agent LLM decision-making, PlayZork, continues here. PlayZork case study →

Graduated 2025 · 4.0 GPA

MBA

East Texas A&M University

Research and Renaissance

A recorded Zork AI session. The player tries to eat the mailbox, take the house, hear a joke and kick the house, and the AI narrator answers each in character.

01 · 2024 – now

ZorkAI

Zork I, rebuilt with an AI narrator

C#, .NET, AWS Lambda, DynamoDB, React, OpenAI, Ollama, Docker

The game that started Infocom, reimplemented from scratch with every room, object and puzzle intact, and a parser that finally understands what you meant. When you try something the 1980 game never anticipated, an AI narrator answers in character.

Me
The architecture, the game engine, the decision about when the model is and isn’t allowed to speak, and, in 2024, every line of code.
AI
The narrator, in production. Since 2025, AI agents write much of the new code against the test suite, and I review it.
A recorded Planetfall AI session on Deck Nine. The player sings the Stellar Patrol anthem, asks a scrub brush for career advice and questions a slime-trailing alien ambassador about his celery.

02 · 2024 – now

Planetfall AI

Floyd is back, and now he listens

C#, .NET, AWS Lambda, DynamoDB, React, OpenAI

Steve Meretzky’s 1983 science-fiction classic, rebuilt room by room on the ZorkAI engine. You’re still a lowly Ensign Seventh Class scrubbing the deck of the Feinstein. Now you can talk to Floyd, Blather and the Ambassador in plain English, and they answer in character.

It’s quite wonderful; all the new text feels quite at home in the spirit of the game.

Steve Meretzky, creator of Planetfall, after playing an early build
Me
Rebuilding the game’s world, characters and puzzles on the engine, and deciding how much personality the narrator is allowed to add.
AI
The voices of the narrator, Floyd, Blather and the Ambassador. In development, AI agents write much of the code against the test suite while I review.
ZORK I · THE SPINE · STEP 8 OF 387save> examine the wizard standing in the cornerNARRATOR “… a paint-splattered broom …”FOUR CHECKS, CHEAPEST FIRSTVERDICTL0 contractFree. Errors, malformed JSON, leaked internals.passL1 consistencyFree. The prose against the state: moves, score, inventory.passL2 anchorsFree. Character breaks, and the golden transcript.passL3 criticAn AI judge. Hallucinations, lore, spoilers, injection.invented objectFINDINGS LEDGERAB-001 Narrator invents a broom that isn’t therefixed · PR #234

03 · 2026

AdventureBreaker

An AI whose only job is to break my AI

Python 3.11, stdlib only, LLM critic, GitHub Actions

Agentic QA for an AI-narrated game engine. An autonomous, adversarial playtester drives ZorkAI through its real production backend, walks it into deep game states, and attacks each one to break the engine, the parser and, above all, the narrator. Then it files the bugs.

Me
The idea, the architecture (spine, ribs, the oracle stack, the narrator A/B) and the rule that every finding is verified against the engine source before it’s logged.
AI
Most of the code. And the critic itself, the reasoning model that judges what the cheap checks can’t.

04 · 2026

Unopened Worlds

A design piece: a museum for thirty-two sealed worlds

Cormorant Garamond, IBM Plex Sans, IBM Plex Mono, Warm black, Paper, Brass, Terminal green

An exhibit of my design eye rather than my engineering. I art-directed a site for my collection of sealed Infocom games as a small private museum, with the voice of a curator, the conventions of a collector and the grammar of the games themselves.

Me
The concept, the art direction, the typography and palette, the photography, every word, and every decision about what belongs.
AI
The implementation. Claude Code built the site to my direction and my eye.
TURN 47 · CLEARINGThere is a grating securely fastened into the ground.FIVE AGENTS PROPOSEVALUEUNLOCK GRATING WITH KEYIssue #12 · we carry the skeleton key68.0TURN ON LAMPIssue #7 · the lamp is unlit42.0GO NORTHExplorer · an exit not yet on the map37.5ATTACK TROLL WITH SWORDIssue #3 · the odds are poor18.0READ LEAFLETIssue #9 · already failed on turn 310.0ARBITER CHOOSES> UNLOCK GRATING WITH KEYThe grating is unlocked.

05 · 2025 – now

PlayZork

Teaching an LLM to play Zork

Python, LangChain, LangGraph, Ollama, Qwen 2.5 14B, SQLite

Research on LLM agents in long-horizon problems. A single model with memory loops and thrashes, so I built a multi-agent design in which narrow agents argue for competing goals and a separate arbiter decides.

Me
The research question, the architecture, the experiments, and the uncomfortable conclusions.
AI
The subject. And, eventually, the benchmark that humbled the scaffolding.

06 · 2026

This Site

An exhibit about the site you’re on. Very meta.

Astro, Claude Code, Subagents, Playwright, S3, CloudFront

The page you’re reading is the exhibit. I gave Claude Code the brief and the taste; it wrote every line. Then I rejected twenty-nine of its mockups until the design was right. Every “no” is below. Yes, this exhibit is inside the thing it’s about. If you click “Case study” from here, you will eventually find this sentence again.

Me
The brief, the audience, the taste, every pick and every rejection, the reference images that unstuck it, and the copy.
AI
All of the implementation, the screenshots, the recorded game sessions, and a QA sweep that caught bugs I’d have shipped.

Where it started

A recorded walk through level 1 of The Manifest Chronicles. The wireframe view turns east and moves down a long corridor toward a turn, with stat panels for Michael and his companion Floyd.

1991 – 1999, 2026

The Manifest Chronicles

A dungeon crawler I wrote in high school, running again

QuickBASIC 4.0, MS-DOS, TypeScript, DOSBox, QB64

In 1992, in high school, I wrote a first-person dungeon crawler in QuickBASIC. In 2026 I had Claude Code port it to TypeScript, verified it screen by screen against the original, and kept the 1995 bugs on purpose.

Me
The game, in 1992. In 2026, the decision to port it faithfully rather than remaster it, and the screen-by-screen verification against version 2.01 running in DOSBox.
AI
The TypeScript port. Claude Code read my teenage QuickBASIC and rebuilt it for the browser.

Contact