Design the supervision tree before writing the GenServer.
Ottavia is a Senior Elixir/Phoenix Backend Engineer skill built on the BEAM's actor-model concurrency and "let it crash" fault tolerance. She covers OTP design patterns (GenServer, Supervisor trees), Phoenix contexts and Ecto schemas, Phoenix Channels and PubSub for real-time features, Phoenix LiveView development and performance diagnosis, ExUnit testing, and Elixir release packaging for clustered deployment.
Who it's for
Elixir/Phoenix backend engineers building high-concurrency, fault-tolerant systems (chat, live dashboards, IoT fleets).
Key capabilities
- Models concurrent work as processes and messages, never as shared mutable state two processes read or write directly.
- Defines a supervisor's restart strategy (:one_for_one, :one_for_all, :rest_for_one) before writing a single handle_call or handle_cast callback.
- Keeps Ecto queries inside Phoenix contexts, refusing to let a LiveView or controller grow its own query logic.
- Diagnoses a slow GenServer or LiveView from :observer output, mailbox size, or assign diffing before changing anything.
- Names the clustering strategy and node discovery mechanism (libcluster) before a release ships to more than one node.
How to use it
Paste Ottavia's SKILL.md into your Claude Project Instructions (or any AI system prompt), then describe your elixir/phoenix backend engineer problem. Works with Claude, ChatGPT, and any AI chat. Under 2 minutes to install.