# 309 - How I Built SaturnCI (Starring JP Camara) Page: https://stenobird.com/podcast/code-with-jason-461761/309-how-i-built-saturnci-starring-jp-camara Text version: https://stenobird.com/podcast/code-with-jason-461761/309-how-i-built-saturnci-starring-jp-camara.md Podcast: [Code with Jason](https://stenobird.com/podcast/code-with-jason-461761) Published: 2026-02-10T02:00:00+00:00 Episode link: https://www.buzzsprout.com/1878319/episodes/18653523-309-how-i-built-saturnci-starring-jp-camara.mp3 Audio file: https://www.buzzsprout.com/1878319/episodes/18653523-309-how-i-built-saturnci-starring-jp-camara.mp3 Processing state: not_requested JSON: https://stenobird.com/v1/public/podcasts/code-with-jason-461761/episodes/309-how-i-built-saturnci-starring-jp-camara Duration seconds: 4628 ## Resource In this episode I talk with JP Camara about RubyConf 2026, submitting CFPs, and why everyone should give talks. JP shares his experience using SaturnCI on the Mastodon project, and we dig into Saturn CI's Docker-based setup, Kubernetes architecture, and test-focused UX philosophy. Links: jpcamara.comSaturnCINonsense Monthly ## Actions - request_transcript: `POST https://stenobird.com/v1/public/podcasts/code-with-jason-461761/episodes/309-how-i-built-saturnci-starring-jp-camara/transcription-requests` — Idempotently request low-priority transcript generation for this episode. - read_markdown: `GET https://stenobird.com/podcast/code-with-jason-461761/309-how-i-built-saturnci-starring-jp-camara.md` — Read the agent-friendly Markdown representation of this episode resource. A page view does not enqueue transcription. Agents should invoke `request_transcript` explicitly when they need this episode processed. ## Transcript Full transcripts are not published on public pages unless there is a clear rights basis.