Bucharest, RO
Projects

Short-Form Content Platform

A pnpm and Turborepo monorepo that takes a source clip and carries it to a published short. The system is 541 files across eight packages: a NestJS API with health probes and an OpenAPI surface, a BullMQ worker running one processor per pipeline stage, a Next.js review dashboard, a Remotion renderer, a source-adapter registry, a shared core package holding the domain types, a Zod environment contract and nine scoring signal extractors, and an MCP server exposing score_candidate, dedupe_check and select_daily_winner as tools. Data lives in Supabase Postgres behind a Drizzle schema with row-level security on every table, asserted in CI alongside a quality gate and a migration format guard. The pipeline runs in twelve stages: ingest, score, select, script, voice, align, visual, render, human review, publish, measure, feedback. The review gate sits between render and publish and is not optional — nothing reaches an audience without a person clearing it first. Implementation was agent-assisted. What is mine is the architecture and the direction: where each stage boundary sits, why the review gate is a gate rather than a report, row-level security as a default rather than an afterthought, the Zod environment contract, and the decision to expose scoring and selection as MCP tools instead of burying them inside the worker. TODO(razvan): decide how much of the paragraph above you want on the page. It is all established in OWNERSHIP.md, but it is dense. One or two paragraphs reads better than three. TODO(razvan): one H3 per service, each with a short bulleted list of what it does here and why it was chosen. The services below are the ones OWNERSHIP.md establishes are in the repo. Nothing has been written under them because the specifics — models, plans, quotas, failure modes — are not measured anywhere and must not be guessed. TODO(razvan): what Postgres holds, how RLS policies are shaped, how migrations are applied. TODO(razvan): queue topology, per-stage retry and failure boundaries, what a dead-lettered job looks like. TODO(razvan): what the composition renders, where it runs, how long a render takes. TODO(razvan): what score_candidate, dedupe_check and select_daily_winner expose, and who calls them. TODO(razvan): the voice, alignment and publishing stages each call something. Name them once you are ready to name them. TODO(razvan): one H3 per challenge, prose underneath. Aim for three or four. The strongest ones here are architectural, which is exactly where your ownership is strongest — pick problems where the interesting part is the decision, not the code. TODO(razvan): the stage boundaries are the part of this project you can defend line by line. Write down why each cut sits where it does — what retries independently, what a failure at that point costs, what a human can usefully inspect there. TODO(razvan): what happens to a run that stalls at review, and what that constraint cost you elsewhere in the design. TODO(razvan): what the CI assertion actually checks, and what it caught. TODO(razvan): the reference case studies interleave screenshots with H3 sections here. You have neither screenshots nor outcome numbers yet. TODO(razvan): do NOT fill this section with invented numbers. Videos published, runs completed, review pass rate, time from ingest to publish — every one of those would be a real, checkable figure, and none of them are measured. If no number exists when you come back to this, write the outcome qualitatively or cut the section. An empty Outcome is survivable; a fabricated one is not.

Related projects

Multi-Brand Content & AI Platform

Multi-Brand Content & AI Platform

A multi-domain publishing platform combining server-rendered content, headless CMS workflows, technical SEO and an authenticated streaming AI assistant.
Magitale — AI Bedtime Stories

Magitale — AI Bedtime Stories

A React Native bedtime-stories product on iOS and Android: parents generate a personalised, illustrated story for their child and have it narrated in one of four voices.
QR Advanced

QR Advanced

A dynamic QR platform where the destination is a routing decision made at scan time, not a value baked into the print run.