Skip to content
karim.semaan(open to work)
WorkExperienceAboutSkillsContactResume ↓
← All work
Vocadian preview
Full-stackProtected2025

Vocadian

Voice-AI fatigue assessment suite

Secrets moved to AWS Secrets Manager for SOC 2 compliance, GitHub Actions CI/CD shipping deploys ~50% faster, and 10+ databases migrated to RDS with zero data loss.

Deploy pipeline · GitHub Actions to AWSProtected · synthetic timings
  1. 1GitHub ActionsCI workflow runs checks on the pushup next
  2. 2DockerFastAPI backend image is built and pushedqueued
  3. 3Alembic / RDSSchema migrations apply to RDS Postgresqueued
  4. 4AWS CDKPipeline deploys the service stack to the sandbox accountqueued
  5. 5ECS FargateNew tasks roll in, reading secrets from AWS Secrets Managerqueued

Each click completes the next stage of the push-to-deploy flow.

Synthetic walkthrough of a protected system: the stage and system names are the real pipeline shape from this card's audited stack, but every timing is invented (seeded, deterministic). No employer code, CI logs, or client data.

Synthetic walkthrough: real pipeline shape, invented timings. No employer code or client data.

Protected work

DevOps engineering for a prior employer (Sep 2024 to Jun 2025). Product internals and client data are confidential, so the card covers the stack and the platform work only.

Request access

Vocadian builds voice-AI fatigue assessment for safety-critical teams; Karim was its DevOps engineer from Sep 2024 to Jun 2025, and this card covers that estate. The suite is real, multi-part software: an Expo/React Native voice app shipped to iOS and Android through EAS with over-the-air updates, a Next.js dashboard for team management and safety messaging, and a Dockerized FastAPI backend that extracts features from voice recordings and scores them with a classical ML pipeline. Everything is defined in AWS CDK and deployed by pipeline onto ECS Fargate with RDS Postgres (Alembic migrations), storage and monitoring stacks, across separate sandbox and production AWS accounts. His work focused on that platform layer: migrating secrets into AWS Secrets Manager for SOC 2 compliance, building GitHub Actions CI/CD (~50% faster deploys), and moving 10+ databases onto RDS with zero data loss. Product science and client data stay confidential, so the card sticks to the stack and the role.

  • Next.js
  • TypeScript
  • Expo / React Native
  • FastAPI
  • Python
  • AWS CDK
  • ECS Fargate
  • RDS Postgres
  • GitHub Actions
  • AWS Secrets Manager
Compliance
SOC 2 secrets migration
Deploys
~50% faster (GitHub Actions)
RDS migrations
10+ databases, zero data loss

What I'd improve

The cross-account story is the honest gap: deployments and humans alike leaned on a shared administrative Control Tower role, which the infra docs themselves flagged as unsustainable. Next: least-privilege per-service IAM roles with short-lived credentials, so the SOC 2 posture rests on scoped access instead of one powerful role. The release flow also still required sandbox testing coordinated by hand in team chat; folding that gate into the pipeline would remove the last manual step.

Private · request access
Want something like this? Get in touch →

Measured:30/30 chatbot evals·20-case Bastion eval·Serving·Calibration Lab

© 2026 Karim SemaanBuilt with Next.js, Tailwind & Supabase.LinkedIn ↗︎GitHub ↗︎