Case study 01 / 11
Learning and corporate training
DeliveredClient work · NDAAI-Native Corporate Learning Platform
I led the design and build of an enterprise learning platform that turns a one-sentence training request into a full course, narrated videos and a matching quiz. Many client organisations share it securely, it works fully in English and Arabic, and AI spending is capped by policy. I owned it end to end, from the first line of code to cloud deployment.
Person
A manager describes a training need
AI
AI plans and writes the course
System
Automatic quality check
Output
Course, narrated videos and quiz
On this page
The challenge
The client sells corporate training, and two things were holding the business back.
- Creating content was slow and expensive. Experts spent weeks writing each course, and producing videos cost even more.
- Proving that training worked was manual. Staff graded written answers by hand and checked certificates against attendance sheets.
Standard learning platforms couldn't create content, and an earlier in-house attempt had failed because it couldn't keep each client's data separate or control AI costs. My job was to build it properly: a platform where AI does the production work, while still behaving like a dependable, compliant enterprise system.
What I delivered
- A complete learning platform: courses, lessons, classes and schedules, attendance tracking, quizzes and exams, automatic certificates, and scheduled reports.
- AI course writing: a manager describes a training need in one sentence, and the platform plans the course, writes every lesson and creates a quiz that matches it. It draws on each client's own documents and terminology, so the content sounds like them.
- AI video production: each lesson can become a narrated, illustrated training video with no film crew. The AI writes the script, creates the visuals, adds the voice-over and checks the finished video before anyone sees it.
- AI grading and coaching: written answers are graded against a clear rubric, with the manager's decision always final. Learners also get an AI tutor based on each lesson, and managers see skill gaps and learners who may be falling behind.
- An AI interviewer: a voice-based practice interviewer with live subtitles and a scored report.
How it works
Many client organisations use the same platform, so keeping their data apart was the first priority. I enforced that separation in the database itself, not just in the application, so a single coding mistake can't expose one client's data to another.
AI content moves through a production line. Plan, research, draft, check and improve each happen as separate steps, and there is a simpler fast path as a backup. Video production works the same way, and it saves its progress between steps, so nothing is lost if something fails halfway.
Key decisions
- Cost control built into the structure, not added later. Every AI request is measured, and spending is capped per task, per client each month and per user. A double-click can never charge twice. Choosing the right model for each task and cutting wasteful retries brought a complete course to about one dollar.
- Arabic from day one. Right-to-left layouts, correct Arabic lettering on certificates, and English and Arabic always kept in step.
- Keep it simple to run. The client had no dedicated operations team, so I built one well-organised core system with only a few separate services where they were truly needed. I even moved one service back into the core when it added complexity without a real benefit.
Built for trust
- Each client's data is kept separate at the database level, and every new release is automatically checked to make sure that protection is still in place.
- Personal information is removed before content goes into the video pipeline.
- The database, cache, file storage and secrets are never exposed to the public internet.
- AI-generated content goes through an automatic quality check covering structure, accuracy of sources, correct terminology and readability before it's released.
- AI-made videos that fail the visual check wait for a person to approve them.
- The platform can be deployed in the client's preferred cloud region to meet data residency needs.
The results
The client can now create a full course from a single sentence, produce training videos without a production team at a cost they control, grade written answers at scale while managers keep the final say, see exactly where AI budget is going, and run everything in two languages.
Under the hoodShow technical detailsHide technical details
- Data separation: PostgreSQL row-level security. I fixed a subtle issue where the client context was lost after a mid-request save, moved the app to a restricted database role so the rules are always enforced, and added an automated check that blocks any new table without protection.
- AI: LangGraph pipelines with retrieval over pgvector and a keyword fallback; OpenAI and Azure OpenAI for text, vision, images and embeddings; ElevenLabs for narration; Remotion rendering on its own dedicated compute, so video jobs never slow the app down. The voice interviewer streams over WebSockets with Deepgram for speech-to-text, Cartesia for voice and Anam for the avatar.
- Courseware: third-party SCORM courses run in an isolated frame secured with signed links, and uploads are protected against malicious files.
- Cloud: Azure. Azure Front Door with a web application firewall is the single entry point and routes requests to the web app or the API. The web app (Next.js), API (FastAPI), voice interviewer, background workers and video renderer run as separate containers on Azure Container Apps. Workers scale automatically with the queue through KEDA, the scheduler is pinned to exactly one copy so reports never go out twice, and database migrations run as a separate job rather than on app start-up.
- Private by default: PostgreSQL, Redis, file storage and Key Vault have no public endpoints and are reached only over the private network. Apps read their secrets from Key Vault through managed identities, so no passwords live in code or config. All outbound traffic leaves through one fixed IP address, so AI and email providers can allow-list it.
- Resilience: everything is spread across three availability zones in one region. PostgreSQL runs with a standby replica for automatic failover and 35 days of point-in-time recovery, storage and cache are zone-redundant, and no data is copied outside the client's chosen region.
- Delivery and monitoring: GitHub Actions builds each release and signs in to Azure through OIDC, with no stored credentials, then pushes images to Azure Container Registry. Log Analytics, Application Insights, Sentry and alert rules watch the running system.
- Quality: seven automated pipelines run tests, security and design checks, load tests and a nightly AI quality suite.
What I'd do differently
I'd enforce the strict database role from the very first day, measure AI costs before the second AI feature rather than the fifth, and only split out separate services when there is clear evidence they're needed.
Related work
- An enterprise HR-technology companyDelivered
AI Talent Assessment Platform
A hiring assessment platform where recruiters create tests by describing the role, candidates take them securely, and every score comes from proven, auditable scoring methods rather than AI opinion.
HR technology · NDA
- A large enterprise groupDelivered
Adaptive AI-Readiness Assessment Platform
An adaptive assessment that measures employees' AI skills, grades written answers with AI under strict safeguards, and gives everyone a personal learning path, while people review anything uncertain.
Enterprise workforce and HR · NDA
- A public employment programDelivered
Explainable AI Talent-Matching Platform for the Public Sector
An AI layer for a public employment program: it builds job-seeker profiles from CVs, tailors resumes without inventing anything, and matches people to jobs with scores anyone can understand and audit.
Public sector employment · NDA