Skip to main content

building TerpSystem · Mexico City · remote

André Rovira

Founder & Principal Engineer

I build high-concurrency systems and ship end-to-end products across healthcare, telephony, gaming, and fintech. Elixir/Erlang and C#/.NET for the hard parts, AI agents for the rest.

  • Elixir
  • Erlang/OTP
  • C#/.NET
  • PostgreSQL
  • AWS
  • Cloudflare
shipping backend systems
8 yrs
messages/day, healthcare platform
10M+
members on TerpSystem
5,400+
daily players on Swingpit
1,000+

Founder of TerpSystem, a multi-tenant SaaS for member-based associations. Before that: clinical messaging for 7,000+ healthcare organizations, carrier VoIP in Erlang, electronic gaming certified in the USA and Canada, and tax-compliant financial interfaces.

Featured Work

Club management SaaS serving 5,400+ members

TerpSystem Personal Project
Architecture diagram: Club management SaaS serving 5,400+ members
TerpSystem screenshot

Challenge: Member-based associations needed a unified system for members, staff, credits, inventory, and compliance paperwork.

Built: Multitenant SaaS in Elixir/Phoenix LiveView with role-based access control, a credits economy, per-location inventory, and audit trails on every movement.

Result: Live at terpsystem.com, serving 3 locations and 5,400+ registered members.

Elixir Phoenix LiveView SaaS Multitenancy RBAC Visit site →

Multiplayer web game with 100-player live royale

Swingpit Personal Project
Architecture diagram: Multiplayer web game with 100-player live royale
Swingpit screenshot

Challenge: A one-tap precision game needed live multiplayer for up to 100 players on cheap phones, with zero server cost when nobody plays.

Built: Deterministic TypeScript physics shared by client and server. Cloudflare Durable Objects relay release ticks over WebSockets and re-simulate them server-side for anti-cheat, with lobby, royale, and ranked-daily modes on D1.

Result: Live at swingpit.io and on game portals, 1,000+ daily players within the first week, running on Cloudflare's free tier.

TypeScript Three.js Cloudflare Workers Durable Objects WebSockets Multiplayer Visit site →

Ticketing platform with oversell-proof seat locking

PuroBoleto Personal Project
Architecture diagram: Ticketing platform with oversell-proof seat locking
PuroBoleto screenshot

Challenge: Mexican organizers pay 10-28% in fees and wait weeks for payouts. A fair alternative had to guarantee no seat is ever sold twice under ticket-drop load.

Built: Elixir/Phoenix LiveView platform with a GenServer per event as the seat authority (Postgres-first reservations), Oban jobs, FLAME burst compute for CFDI 4.0 invoicing, and Conekta/Stripe payments (OXXO, SPEI, cards).

Result: Production-ready on Fly.io with load-tested hold and reservation flows at 100 concurrent buyers, launching with its first events.

Elixir Phoenix LiveView OTP PostgreSQL Oban Payments CFDI Visit site →

On-demand credential platform with digital verification

CardApp Personal Project
Architecture diagram: On-demand credential platform with digital verification
CardApp screenshot

Challenge: Organizations needed on-demand credential generation with persistent digital verification.

Built: Multitenant SaaS handling data/photo ingestion, printable credentials with QR codes, and persistent digital card verification.

Result: Production platform serving multiple organizations with automated workflows.

SaaS Multitenancy QR Validation Automation

Call routing and billing on a multi-tenant VoIP carrier platform

Telecom client Telephony
Architecture diagram: Call routing and billing on a multi-tenant VoIP carrier platform

Challenge: A multi-tenant VoIP carrier platform built on Kazoo (Erlang/OTP) needed new call-routing, billing, and provisioning features without disrupting live traffic.

Built: Erlang/OTP services on the Kazoo stack: callflow and billing logic over AMQP, CouchDB data model changes, and FreeSWITCH/Kamailio integration, with migration-safe rollouts.

Result: Features shipped to live carrier traffic across SIP trunks, PBX and hosted-VoIP tenants, with zero-downtime rollouts.

Erlang/OTP Kazoo VoIP SIP FreeSWITCH Kamailio AMQP CouchDB

Embedding clinical messaging into EHR platforms

TigerConnect Healthcare
Architecture diagram: Embedding clinical messaging into EHR platforms

Challenge: Epic and Cerner EHR users needed seamless access to TigerConnect without leaving their clinical workflow.

Built: FHIR protocol integrations enabling SSO embedding within EHR platforms, with HIPAA-compliant JWT encryption using AWS KMS.

Result: Unlocked a new market segment for clinical users, now actively marketed as a product feature, on a platform processing 10M+ messages daily for 7,000+ healthcare organizations.

FHIR SSO C#/.NET AWS KMS HIPAA

Decomposing a gaming monolith into 6 microservices

Dreidel Gaming
Architecture diagram: Decomposing a gaming monolith into 6 microservices

Challenge: A monolithic game server couldn't scale, and deploying meant physically replacing hard drives in machines.

Built: 6 domain-driven microservices with event-driven architecture, Docker-automated deployment replacing manual hard drive swaps. EGM-side SAS (Slot Accounting System) with TITO, AFT, meters, events, progressives, handpays and legacy bonusing; peripheral integration for JCM GEN5 and TransAct Epic 950 ticket printers, JCM iVIZION and UBA bill validators, button decks and touchscreens.

Result: Independent deployments per service, product expanded from 1,200+ physical machines to online casino platforms. Achieved GLI certification for USA and Canada.

C#/.NET PostgreSQL Docker AWS Microservices Event-Driven SAS Protocol GLI

See How I Code

EnterpriseScheduler, an open source scheduling API

EnterpriseScheduler layered architecture: REST API, Business Logic with Timezone Engine and Conflict Resolution, Repository Pattern over PostgreSQL, and Quality Assurance with 100% coverage gate
  • Clean layered architecture
  • 100% test coverage enforced via CI/CD
  • Timezone-aware conflict detection
  • Automatic alternative slot suggestion
  • Docker-based infrastructure
GitHub Actions bot showing 100% code coverage: 452/452 lines, 50/50 branches

Let's talk

Remote-first. Backend, distributed systems, and AI-first products.