Espirita.club
Ruby on Rails
Multi-tenant SaaS for spiritist centers and federations in Brazil. Custom domains with automatic TLS, Stripe payments, REST API, and an MCP server so AI clients can integrate directly.
espirita.clubHey, I'm
I'm an agentic engineer. I orchestrate AI agents to ship production software.
I've been shipping software since 2011, but the last several months have been a different kind of engineering. I plan, review, course-correct, and ship — agents do the typing. I'm doing this every day at BSPK, where I lead the AI work for a unified clienteling platform used by top-tier luxury retail brands.
Most recently I led a zero-downtime migration of our entire stack off Heroku — Postgres to PlanetScale, Redis to Upstash, Elasticsearch to Elastic Cloud, all on AWS via Kamal and Terraform. Mostly solo, ~2.5 months end to end, infrastructure cost down by more than 60%.
I work from Viana do Castelo, Portugal, where I helped bring Euruko 2025 to my hometown. When I'm not directing agents for work, I'm directing them on side projects, contributing to open source, or writing about what I learn.
At BSPK, I'm the primary backend engineer behind the AI layer and the recent infrastructure rebuild. The work I'm most proud of right now:
Almost every line of production code I shipped this year was written by an agent under my direction. I plan, review, parallelize features across worktrees, and tighten the feedback loop — faster CI, lighter PR review, agent-friendly architecture docs — so the agents stay productive.
Migrated the full stack off Heroku in ~2.5 months, mostly solo. Postgres to PlanetScale, Redis to Upstash, Elasticsearch to Elastic Cloud, plus an Elixir service off Gigalixir. Kamal on EC2, Terraform, Tailscale, Route 53 weighted DNS for cutover. Cost down 60%+.
Swarm architecture where an orchestrator routes to specialist sub-agents — Client Intelligence, Tasks & Calendar — each with tools to query shopper data, purchase history, and schedules. Provider-agnostic across OpenAI, Groq, and local models.
LLMs translate plain English into Elasticsearch queries, letting sales associates search their client book conversationally — "show me clients who bought handbags last month and haven't been contacted."
Previously at BSPK I built a behavioral analytics pipeline from scratch — event capture across hundreds of endpoints, session materialization, sales-outcome correlation — and owned the Shopify webhook pipeline end-to-end. Before BSPK I spent years across startups doing payment systems, IoT data pipelines, political organizing tools, and real-time PubSub architectures, mostly in Ruby on Rails and Elixir/Phoenix.
Ruby on Rails
Multi-tenant SaaS for spiritist centers and federations in Brazil. Custom domains with automatic TLS, Stripe payments, REST API, and an MCP server so AI clients can integrate directly.
espirita.clubRuby on Rails · PostgreSQL + pgvector
AI knowledge base for spiritist literature. RAG pipeline over public-domain books and video transcripts, with a conversational agent that answers with source references.
guia.espirita.clubRuby on Rails
Coding education platform for Portuguese schoolchildren. Maze programming, bug-hunt games, 3D-printer training, sign-making — all session-based for classroom use.
digitalmente.techRuby on Rails 8.1 · SQLite
Open source personal site and writing platform. Importmap-only Rails (no Node), AI chat agent powered by RubyLLM and Groq, server-side analytics, Markdown blog rendering with custom OG image generation.
github.com/henriquecf/siteElixir
Bridge between Redis PubSub and Phoenix PubSub for real-time broadcasting. Born from production needs at BSPK.
github.com/henriquecf/redis-pub-subCommunity Organizer · Viana do Castelo
Helped bring Europe's longest-running Ruby conference to my hometown, after the community vote at Euruko 2024 in Sarajevo.
2025.euruko.orgRuby · Elixir
Contributor to ja_serializer, ruby-conferences.github.io, euruko.org, and other community projects.
View all on GitHubAlways happy to chat about interesting projects, Ruby, AI, or anything in between.