Adam Tyrrell

Open to full-stack and AI engineering roles

Production apps.Data pipelines.Systems that run themselves.

I’m Adam Tyrrell, a full-stack engineer in Kansas City. Lately that has meant a multi-tenant analytics platform in production, a fleet of agents that run unattended every day, and a scan tool that talks to my car over Bluetooth.

  • TypeScript
  • Next.js
  • Node.js
  • MongoDB
  • Claude API

Software rarely breaks at the interesting part. It breaks at the boring one: the retry, the duplicate row, the job nobody was watching.

So I build the boring part properly first. That habit came from shipping production software people depend on daily, and it shows up in everything here, from a multi-tenant analytics platform to a scan tool that has to survive a Bluetooth adapter dropping mid-session.

What I work on01 / practice

Four problems, four proofs.

Full capability map
Selected work02 / systems

Things I built that are still running.

The full write-ups live on the work page, decisions and dead ends included.

All five systems
Production data analytics software60k rowsbackfilled in ~67s, idempotent

Multi-Tenant Analytics Platform

Data analytics software for vehicle retail, in production with paying tenants. Daily sales, service, parts, and inventory reports arrive as email attachments, get parsed and imported automatically, and land in per-tenant dashboards.

Every custom API route is tenant-scoped at the boundary, so one client can never read another client's numbers. Imports upsert on a stable key, which makes a re-run a no-op instead of a duplicate, and a year of history backfills in about a minute.

  • Next.js 16
  • Payload CMS
  • MongoDB
  • Auth0
  • Express ingest service
  • Recharts
  • Vercel

Client software, so the screenshots stay private. Architecture and code walkthrough on request.

Automation · AI opsDailyunattended runs

Autonomous Daily Agent Fleet

A fleet of scheduled AI agents that run unattended every day, handling security review, dependency research, and production error watch, then report to a dashboard and push to a phone.

The interesting part is what happens with nobody watching: agents run on systemd timers, a poller survives restarts, and error watch is wired to live Sentry data so a real production exception becomes a notification instead of a surprise.

  • Claude API
  • systemd services
  • Sentry
  • Next.js dashboard
  • Push / email alerts
Front-end range03 / concepts

Ten concept builds, ten different voices.

Fictional brands, built to push a small site hard in one specific direction.

See all ten
Ask my site

Skip the reading. Interrogate it.

This site has its own assistant, wired to a knowledge base about the work. Ask it what I have built, what stack I reach for, or what I am looking for next.

or press ` for the terminal

Let’s talk about what you’re building.

or email me directly at adamtyrrell777@gmail.com