VTaaS
Video Transcoding as a Service
Production-deployed async video transcoding service on AWS. Users upload via presigned S3 URLs, jobs queue through SQS, FFmpeg workers on ECS Fargate transcode media to multiple formats, results serve back from S3. React/Vite dashboard with real-time job status, deployed on Vercel with an API proxy to the ALB. NestJS API + worker, Neon Postgres via Prisma, GitHub Actions CI/CD with SHA-tagged ECR images, 120-test suite, least-privilege IAM, SSM-managed secrets.
Cost engineering
- —On-demand provisioning system cut VTaaS AWS costs 99% ($58 → $0.50/mo).
- —Vercel Edge Function proxy reads dynamic ALB DNS from an Upstash Redis state machine to resume ECS Fargate Spot in ~4 minutes after idle.
- —60-minute idle auto-hibernate — cold-start tradeoff deliberately accepted for portfolio/demo use.
Diagnosed in production
- —AWS SDK changed CRC64NVME checksum behavior between versions, silently breaking all S3 downloads. Admin credentials in local dev bypassed the permission checks that trigger the error — invisible until CloudWatch.
- —ECS task role missing s3:ListBucket caused S3 to return 403 on HeadObject instead of 404. Without list permission, S3 can't confirm object non-existence and falls back to access denied. Confirmed via IAM policy simulation.