Latest postWhat it means to map the human phenome

Hi, I’m Sam.

Software engineer. I like building useful things, figuring out why they break, and writing down what I learn along the way.

Right now I work at HealthTree Foundation, where we’re pretty h*cking close to mapping the human phenome to help researchers cure cancer (here’s what that means). In my own time I’ve built a chess coach, a patient-education site, and the website for an original musical.

Sam Ahlstrom, smiling, in front of a wall of green leaves
that’s me
Scroll

A little about me

I’m a software engineer. I like the whole arc of a project: talking to the people who’ll use it, working out what it should be, building it, and then living with it long enough to learn what I got wrong.

My day job is at HealthTree Foundation, a nonprofit for people with blood cancer, where I’m one of the engineers on the team. Outside of work I take on projects that catch my interest, usually on my own, which is a good way to find out what I don’t know yet.

Lately I’ve been thinking a lot about how to build well with AI: where it actually helps, where it quietly makes things worse, and how to tell the difference. When I figure something out, I write it down.

Writing

Notes from building things: what worked, what didn’t, and what I’d do differently next time.

What it means to map the human phenome

Your genome is the code you were born with. Your phenome is the story of your whole life. Here is why putting it together could help cure cancer.

Things I’ve worked on

A mix of my day job and projects I’ve taken on outside of it.

The Chess Knight homepage: Chess, coached by your own games, with a white knight on a garden chessboard
  • Side project
  • Solo

Chess Knight

A chess coach built from your own games, whether you play on Chess Knight, Chess.com or Lichess. It finds the mistakes you keep making, turns them into practice positions with spaced repetition, and ranks habits by how much they actually cost you. The analysis comes from Stockfish and fixed rules, not a language model guessing.

The IsoMed Care homepage, showing a caregiver at a patient's bedside after a CAR-T infusion
  • Healthcare
  • Solo

IsoMed Care

In-person caregivers and 24/7 clinical oversight for people recovering from CAR-T therapy, covering the stretch between hospital discharge and full recovery. I built the software: a tablet workflow for vitals and check-ins, one-tap escalation, and a live dashboard for the operations team.

The AskAboutCART homepage, a patient and doctor reviewing CAR T cell therapy on a tablet
  • Patient education
  • Solo

AskAboutCART

A plain-language guide to CAR T cell therapy, with content from patient advocacy groups including the International Myeloma Foundation and HealthTree Foundation. It covers treatment, cost and insurance, and eligibility, and sorts the common myths from the facts.

Promotional poster for The King of New York at the Eccles Theater, November 6
  • Community
  • Solo

The King of New York

The website and ticketing for an original musical about five enslaved African Americans who found faith and hope in 1800s America. It opens November 6, 2026, at the Eccles Theater in Salt Lake City.

The HealthTree Foundation homepage: Own your story. Personalize your support. Power the cure. A phone shows a Personal Health Record
  • Day job
  • Team

HealthTree Foundation

A patient-founded nonprofit working toward cures for blood cancer. Patients get navigators and software for managing their care, and their health data stays anonymized and under their control. I’m one of the engineers on the team.

What I work with

The languages, frameworks and tools I build with, across work and my own projects.

  • TypeScriptLanguages
  • JavaScriptLanguages
  • GoLanguages
  • PythonLanguages
  • SQLLanguages
  • HTMLLanguages
  • CSSLanguages
  • SwiftLanguages
  • SvelteFrameworks
  • ReactFrameworks
  • Next.jsFrameworks
  • Node.jsFrameworks
  • BunFrameworks
  • FastAPIFrameworks
  • PostgresData
  • SQLiteData
  • SupabaseData
  • FirestoreData
  • BigQueryData
  • CloudflareRuns on
  • Google CloudRuns on
  • FirebaseRuns on
  • HetznerRuns on
  • DockerRuns on
  • GitHub ActionsRuns on
  • Claude CodeAgents
  • CodexAgents
  • CursorAgents
  • GrokAgents
  • Gemini CLIAgents
  • TerraformAlso in the kit
  • LogRocketAlso in the kit
  • AhrefsAlso in the kit
  • FirecrawlAlso in the kit
  • StockfishAlso in the kit
  • OmarchyAlso in the kit
# ~/toolbox.toml: what I build with

[languages]
write = [
  "TypeScript", "JavaScript", "Go", "Python",
  "SQL", "HTML", "CSS", "Swift",
]

[frameworks]
build_with = [
  "Svelte", "React", "Next.js", "Node.js",
  "Bun", "FastAPI",
]

[data]
stores = [
  "Postgres", "SQLite", "Supabase", "Firestore",
  "BigQuery",
]

[runs_on]
hosts = [
  "Cloudflare", "Google Cloud", "Firebase", "Hetzner",
  "Docker", "GitHub Actions",
]

[agents]
pair_with = [
  "Claude Code", "Codex", "Cursor", "Grok",
  "Gemini CLI",
]

[kit]
also = [
  "Terraform", "LogRocket", "Ahrefs", "Firecrawl",
  "Stockfish", "Omarchy",
]
Languages and frameworks used in each project
project \ stackTSJSGOPYSQLHTMLCSSSVRENXNODESW
HealthTree Foundationday jobuses TypeScriptuses JavaScriptuses SQLuses HTMLuses CSSuses Svelteuses Node.js
Chess Knightsolouses TypeScriptuses JavaScriptuses Gouses Pythonuses HTMLuses CSSuses Node.js
IsoMed Caresolouses TypeScriptuses JavaScriptuses Pythonuses SQLuses CSSuses Reactuses Next.jsuses Node.jsuses Swift
AskAboutCARTsolouses TypeScriptuses JavaScriptuses CSSuses Reactuses Next.jsuses Node.js
The King of New Yorksolouses TypeScriptuses JavaScriptuses HTMLuses CSSuses Reactuses Next.jsuses Node.js
samahlstrom.comthis siteuses TypeScriptuses JavaScriptuses Pythonuses SQLuses HTMLuses CSS
forge-cliopen sourceuses Go
logrocket-sveltekitopen sourceuses TypeScriptuses Svelteuses Node.js
worktree-checkeropen sourceuses Python
projects using it762434623361

Plus: Postgres, SQLite, Supabase, Firestore, BigQuery, Cloudflare, Google Cloud, Firebase, Hetzner, Docker, GitHub Actions, Claude Code, Codex, Cursor, Grok, Gemini CLI, Terraform, LogRocket, Ahrefs, Firecrawl, Stockfish, Omarchy.

Say hello.

Email and X are the best ways to reach me, whether it’s to talk shop, swap notes on something you’re building, or just say hi.