Skip to content

Services

How I Can Help

My work covers the whole product: the data model, the API that decides who can see what, the background jobs that bill and notify, and the interface on top. AI features sit behind one abstraction, so a voice agent can move between Retell and x.AI Grok realtime with zero downtime, and billing runs are idempotent, so a retry never double-charges.

  • AI Voice Agents

    Inbound call automation with real-time tool calling for bookings, and transcripts saved to the CRM. Retell, x.AI Grok realtime, Twilio Media Streams and WebSockets.

  • LLM Features in Production

    Tool calling, retrieval-augmented generation and vector search inside real products, with validated, logged results. pgvector, embeddings and prompt design.

  • Multi-Tenant SaaS Products

    Platforms where the backend is the single authorization boundary for every role. FastAPI, NestJS, Rails, PostgreSQL, Auth0 and RBAC.

  • Billing & Payments

    Idempotent billing engines and subscription plans that never double-charge, on Stripe and background jobs (Celery, pg-boss).

  • Real-Time Platforms

    Live leaderboards, scoring and dashboards that stay in sync across processes, with Socket.IO, WebSockets and PostgreSQL LISTEN/NOTIFY.

  • Ruby on Rails Development

    New Rails products and feature work on existing Rails codebases, with access rules, RSpec coverage and reviewed releases. Devise, Sidekiq, RuboCop and Haml.

  • Legacy Rewrites & Hardening

    Audit, fix root causes, add tests that prove it, and ship through a CI-gated pipeline with pytest, Vitest, Playwright and GitHub Actions.

What working together looks like

  • The backend is the boundary

    Every request resolves its tenant and role on the server before a scoped query runs, so a tenant only ever sees its own data.

  • Providers behind one switch

    Voice and LLM providers sit behind one abstraction, so changing vendors doesn't mean a rewrite or downtime.

  • Money paths are idempotent

    Billing runs carry an idempotency key, so a retried run produces one invoice, never two.

  • Root cause, tests, gated deploy

    Audit, fix the root cause, add tests that prove it, and ship through a CI-gated pipeline.

Building a SaaS product with AI in it?

From the data model to the deployed interface: multi-tenant platforms, AI voice agents, LLM features and Stripe billing.