Build Your Own Cass: the course
I've been writing about Cass publicly for about a year. The posts that get the most traffic are always the specific ones — the memory schema post, the SMS routing post, the one about building a job application pipeline that runs while I sleep. Engineers who are trying to build something similar find them via search and show up in my inbox with variations of the same three questions:
- How do you handle memory between conversations?
- How do you make the tools reliable?
- How do you actually deploy this so it runs without babysitting?
I answered those questions enough times that the answers turned into a course.
What I built
Cass is a personal AI agent that:
- Receives texts and replies intelligently, with persistent memory across conversations
- Sets reminders and references them later
- Runs overnight tasks — job application pipeline, morning briefing, expense tracking — on EventBridge schedules
- Escalates urgent messages to Signal when SMS isn't enough
- Sends detailed output (reports, drafts) to email when the reply is too long for a text
I built it on AWS Lambda + DynamoDB + Claude. The whole thing runs for about $12/month.
The reason I built it on Lambda instead of a persistent server is that I wanted something that ran reliably without a machine always on and an SSH session always open. Lambda forces a discipline that's actually useful: every function is stateless, memory is in DynamoDB, and everything can be retried.
What's in the course
8 modules. Each one covers one layer of the stack:
Module 1 — The 47-line foundation. SMS → Lambda → Claude → reply. Everything else in the course is built on top of this.
Module 2 — Memory. Why "last N messages" is the wrong model. How to build a two-layer memory system: conversation history for within-session context, a persistent fact store for things that are true regardless of when you last talked.
Module 3 — Tools. How to give your agent the ability to call external APIs without breaking when those APIs change. The wrapper pattern that guarantees Claude always gets a string back, never a traceback.
Module 4 — Channels. SMS for everyday use, Signal for sensitive conversations, voice for driving, email for long-form output. The multi-channel routing layer that lets the agent send the right thing to the right place.
Module 5 — Cron. EventBridge schedules for morning briefings, background tasks, overnight pipelines. The architecture difference between a reactive agent and a proactive one.
Module 6 — Production deployment. A SAM template that deploys the full stack in one command. CloudWatch alarms for the three things that actually break. What Cass costs per month.
Module 7 — Integrations. Google Calendar, GitHub webhooks, and the pattern for connecting any third-party API without making your agent brittle.
Module 8 — The agent loop. Multi-step tasks that span more than one Lambda invocation. The job application pipeline as a case study: how to build something that applies to 50 jobs overnight and gives you a summary in the morning.
Who it's for
Engineers who know Python, have used an LLM API before, and have tried to build something like this and stalled on:
- "It doesn't remember anything between sessions"
- "It breaks every time the external API changes"
- "I don't know how to deploy this so it actually runs"
It's not a prompt engineering course. It's a systems engineering course that happens to use LLMs.
The honest version
I wrote the course I wished existed when I started. The modules are in the order I wish I'd learned this, not the order I actually did. Every mistake I've made with Cass — the memory model that got stale, the tool wrapper I had to rewrite, the cron job that silently failed for a week — is documented so you don't have to make it too.
The code in the examples directory works. I know because it's extracted from what I actually run.
Build Your Own Cass — $149 one-time
The newsletter (issues 1–11) is free. The course has the code, the deployment templates, and the full module writeups.
If you've been wanting to build something like this, now's a good time to start.