Léo Barcet · Portfolio 2026Ho Chi Minh City, remote, UTC+7 · FR

LéoBarcet

I run a casting agency in Ho Chi Minh City, and I build its software myself, by directing AI coding agents. Behind that, fifteen years of theater.

Available from October 2026, remote or in Ho Chi Minh City, on contract or part-time

What I can do for you

01

A casting platform, designed, directed and shipped end to end

RoleFounder, and both product owner and architect
TeamAI coding agents, directed by me: I decide, they code
PeriodSince March 2026

Result: 200+ actors sourced, about 30 of them selected for the roster. On The Wandering Earth 3, I had placed 13 actors for 95 shoot days with nothing but spreadsheets and messaging apps. The platform, which I led end to end, secure and reachable from mainland China, exists so that no production has to run that way again.

Duyên home page: 'Talent & Casting Asia, the eye of a working actor and director', with two entry points, one for actors and one for productions
The home page at launch: on one side the actor submits a portfolio, on the other the production starts a brief.

Where it comes from

It starts with The Wandering Earth 3. I was coordinating the foreign cast of a Chinese production, and my only tools were messaging apps, email and spreadsheets. Could the work really be done that way?

Clearly not. So after the shoot I started an agency to do this work properly, then built the tool it runs on.

What I put together

A single roster, shared by three kinds of users. First the actors, who apply and keep their portfolio current. Then the agency, which evaluates, admits and presents them. Finally the productions, which open a private casting room, compare a shortlist, and book.

Every actor also gets a branded PDF résumé, rebuilt whenever their credits change.

From a self-tape to a paid actor, one pipeline

A form would have been enough for a brochure site. A casting agency, though, needs its whole chain, and each side has to work in its own space.

Actors

  1. They apply, then upload photos, showreels and self-tapes.
  2. Their files are compressed, renamed and sorted automatically, so that a production, wherever it is, downloads a clean, structured package fast.
  3. Their old résumé is read, parsed, then rebuilt as an agency-branded PDF.
  4. They get a personal space and tools of their own: a profile link they'll want to share, comp cards in one click.

Agency

  1. It searches the whole roster in seconds.
  2. It evaluates actors, admits them, then guides their development.
  3. For each casting, it builds a selection and sends it to the production.
  4. It remains the filter between both sides: nothing reaches an actor without our sign-off.

Productions

  1. They receive the selection in a private casting room, where every résumé carries the agency's branding.
  2. They keep or pass on each actor.
  3. They book the actors they keep and sign contracts on the platform.
  4. They follow every actor, from shortlist to set.
Production casting room: counts of shortlisted, to review and passed actors, filters by age, nationality and language, a grid of actor portraits, and Download all.
On the production side, the casting room. You filter, shortlist or pass, and download everything in one click; the agency, meanwhile, sees every decision live.
Admin roster, called La planche: search, status filters, category and sort, export, and a contact-sheet grid of actor portraits.
On the agency side, the roster reads like a contact sheet, with search and filters.
Admin talent record: identity, measurements, agency management, categories and consent status. Demo profile.
On an actor's record: identity, measurements, private agency notes, and that actor's consent status.

Note: every platform screen shown here uses demo data.

Where the difficulty lies

Three sides, a single truth

Actors, agency and productions each see a different slice of the same records. Who sees what, and when? That question is, in the end, the product. So an actor must never learn a production's decision before the agency has approved it, and a production's name is revealed only with its consent.

A market on the other side of the firewall

Yet productions work from mainland China, where Supabase is blocked and most hosting platforms are absent. Hence Cloudflare's edge placed in front of a Singapore server, picked over a cheaper German one for latency to Vietnam.

Heavy files

Showreels and self-tapes are large video files. That called for resumable uploads straight to storage, a video encoding pipeline, and short-lived signed links.

Personal data

Contact details, ethnicity, body measurements, photos, private agency notes: a leak would expose the actors and the agency's trust with productions. Which is why security is the one area where I never gave anything up for speed.

Security

First, I wrote security rules the AI is not allowed to bend. Then I had the code reviewed in several passes, and again after each feature. Fifteen decision records, in fact, cover security reviews and hardening.

  • The server stays invisible. Its address sits behind Cloudflare, and it rejects any connection that can't prove it comes from our own domain.
  • At rest, sensitive fields are encrypted. Agency notes and evaluations never leave the admin side, and the file a production downloads follows a strict whitelist, with no contact details at all.
  • A single login for everyone, with a generic error. So nobody can test whether an account exists. Sessions are short and rotated on every use, and the brute-force lockout can't be dodged by faking an address.
  • Backups are encrypted before they even leave the server, and their key is kept away from the storage they protect.
  • Finally, public forms are protected from bots, dependency vulnerabilities are triaged, and build tools are pinned to exact versions.

An AI agent writes fast and sounds sure of itself. So most of my job came down to catching where it was confidently wrong.

Working with AI agents: my method

First observation: an AI agent writes code faster than I can check it. The bottleneck, in other words, has moved. And the traps are well known: code that looks right, invented facts, lost context, runaway cost. For each one, I built a safeguard.

Verification

A "make this page responsive" task came back marked finished; on my phone, I still found seven defects, one at a time. So I wrote a verification rulebook every session follows before saying "done" (excerpt below). I also discovered 883 tests that nothing ran before production, and had them wired in. Even so, a go-live audit caught 3 blockers that no automated check had seen.

Invented facts

Left alone, an agent fills gaps with plausible fiction: past clients who don't exist, reassuring numbers, stock photos passed off as our actors, profile links that lead to someone else. Hence a rule: what I can't prove doesn't go public. Copy lives in documents I own, and a mockup isn't allowed to add a claim. Likewise, search-engine data only carries links I supplied. As for placeholder photos, they now fail the build.

Memory

Each session, an agent starts from zero. How do you work over time with someone who forgets everything? By handing the memory to the project itself. A briefing file states the live rules and points to the reasoning; more than 100 decision records keep the why. A progress log is kept after every task, and a written rule forbids re-debating a settled decision: it can only be formally revised. Finally, a separate file lists "commands an agent would guess wrong".

Several agents at once

I run several sessions in parallel, each on its own copy of the code. One day, one of them deployed a stale copy, silently erasing another's fix. Since then, every session checks its drift against the shared branch at startup, and the deploy script refuses anything that isn't the latest version.

Picking the model, counting the cost

Inside the product, the résumé import calls Claude. Does that require a big model? The job is reorganizing text, not perceiving images, so I use the smallest one, Haiku, and send it extracted text, never the raw PDF, which would cost far more. That comes to about 1.5 to 2.3 cents per import, capped at 10 an hour per visitor. Every answer is re-validated against a strict schema; if the AI fails, the import works anyway. I also priced an AI layer for the code map, then dropped it.

Architecture: learn first, choose second

A first stack was offered; I didn't take it. I asked the AI to explain the main architecture options and their trade-offs, read all of it, then made the call myself. Every proposal, I pushed hard: why, how, how fast, under which conditions, for how many users? Sized for real load rather than hypothetical scale, a single server with the video encoder beat pricier managed services. And since productions sit behind the Chinese firewall, anything blocked there was out, whatever its reputation. I also overrule the first proposal when it is wrong: a "you're shortlisted" message still visible after a production had passed, a résumé parser that turned my own 28 credits into 50, a brief form that stored nothing.

What the user sees, the AI doesn't

On my iPhone, in the Arc browser, the bottom of the home page vanished under the floating bar. No test had caught it, and the AI can't open Arc. Three times it tried to guess the bar's height by changing which elements were shown or hidden; three times I tested on the phone and said no, because one version was too cluttered and another removed the scroll cue I wanted to keep. The fix came from restating the problem: I didn't want fewer elements, I wanted the cue to sit exactly on the edge of the bar. In other words, a single number to set. We read it off my screenshot, and on the fourth round I signed it off on the device.

Even its tools get it wrong

First finding: the code map every session read at startup was 54% noise from third-party dependencies. Second finding: the build watchdog was watching the wrong process, 0.9 points away from killing a healthy build. Which is why, before I trust a tool, I have it measured.

My verification rulebook, an excerpt exactly as I wrote it for the agents

I wrote it after a "make this page fully responsive" task shipped, then took several more rounds, because I kept finding defects on my phone, seven of them, one at a time. Yet none had been misdiagnosed: the failure lay entirely in finding them.

  1. Verify the artifact you ship, over its whole surface. Enumerate it, don't assume it.
  2. A declared gap is not a covered gap. "Can't test X" means build a way, or say unverified.
  3. Green checks prove no breakage, never quality. Always look at the finished result the way its user will meet it.
  4. When you can name why a bug happened, use that sentence as a search across the module. Fix the category, then go find its other members.
  5. Suspect the fixture when a measurement contradicts the code. A checker that can pass while broken is worse than none.

Next.js · React · Hono · PostgreSQL · Drizzle · Cloudflare Workers, R2, WAF · FFmpeg · Claude Code · Claude API (Haiku) · n8n · Python · Apify · GitHub Actions

02

Tools for money and contracts

RoleDesigner and builder
Born onThe Wandering Earth 3
ToolsA tracker for actor payments, a multilingual e-signature tool

Result: for each actor on each production, I know at any moment what was worked, what was paid, by whom and in which currency, and what is still owed.

The starting point

On a Chinese shoot, money crosses three parties and three currencies. The production pays the agency in yuan, the agency pays actors in dollars or dong, and in between sit day rates, standby rates, overtime and commissions. Yet on The Wandering Earth 3, I tracked every working day and overtime hour by hand. And one mistake is all it takes: an actor paid wrong, or a production billed wrong.

So what I built

First, a payment tracker. You enter contracts with their roles and rates, the actors assigned, days and overtime; you then get an overview in any currency: money in, money out, what the production still owes, what the agency still owes.

Second, a contract signing tool. Behind the firewall, Western e-signature services don't work reliably. So I built my own: multilingual, reachable from China, no third-party platform.

Tracker: roles and rates on a contract, then each assigned actor with shoot days, overtime, amounts due, paid and owed, and status. Names and amounts blurred.
One contract. Roles at the top, then every actor with days, overtime, and what's due, paid and owed. Real data, blurred.
Tracker overview: money in, money out, outstanding, net cash position. Amounts blurred.
The agency overview, viewable in any currency.
03

The Wandering Earth 3: getting foreign actors to set, then getting them paid

RoleForeign cast coordinator; also cast in an English-speaking role
ProductionA Chinese sci-fi feature directed by Frant Gwo
PeriodFebruary to April 2026, in Qingdao

Result: the foreign cast of a major Chinese feature put under contract, flown in and paid across three currencies, every actor paid in full.

Paying across currencies

The production paid in yuan; the actors needed dollars or Vietnamese dong, across two banking systems that don't talk easily. I found and tested a payment chain that worked, until every actor was paid.

Contracts

Contracts had to be drafted, in several languages, that worked both for a Chinese production and for foreign actors. Behind the firewall, however, Western e-signature tools aren't reliable. Which is why I developed my own signing tool: multilingual, reachable from China, independent of any third-party platform.

Getting people there

Actors were flying in from several countries, and every ticket had to be actually issued, then actually received. So I built a process for each step.

Actors who don't show up

Some actors gave their word, then didn't come. I had to find replacements at the last minute, and agree on a solution with the production.

It was out of this shoot that Duyên grew.

04

Le soleil n'est pas une boule

RoleConcept, direction and dramaturgy, plus producing
TeamA company of 12 to 13 performers and technicians, which I led
Period5 years, 2017 to 2022
CompanyLes Lions sous la Lune

Result: over five years, I took a company of 12+ from a volunteer project to a paid professional run: three performances of a 1h45 show at La Ferronnerie, Paris, in March 2022, with performers and technicians on contract. Along the way, nine residencies and a full set built by hand.

Wide shot of the stage under a red cyclorama, cubes lit from inside around the actors
La Ferronnerie, Paris, March 2022. Each cube lights from inside, wireless and on battery, cued from the lighting desk.
Poster: glowing cube outlines above small figures in a red and blue frame
Poster.

Where the play starts

A play about free will, written collectively with the actors. Our research in philosophy and neuroscience, however, led us to a paradox. First observation: our societies treat self-control as a fact. At the same time, neuroscience suggests we have very little of it.

Caught between the two, justice faces a hard problem. If so much of what we do is determined, how responsible is a man who commits rape?

Caught between the two, justice faces a hard problem. If so much of what we do is determined, how responsible is anyone for what they do?

What we chose to stage

A second observation followed: we are always telling ourselves a story. When we are not its hero, we watch other people's lives as if from a theater seat. That is why people don't step in when violence happens in front of them: it isn't, they feel, their role.

So we gave the audience total freedom from the first minute, then staged an act of violence in front of them. Would anyone intervene? Next, the play stops for a debate. For being a spectator is already being an actor in what you see.

So we gave the audience total freedom from the first minute, then staged a rape, crudely. Would anyone intervene? Next, the play stops for a debate. For being a spectator is already being an actor in what you see.

From a cardboard model all the way to the stage

Scale model: white paper cubes and wooden frames with small cut-out figures under purple light
Scale model, 2018: testing how the cubes read under each color.
Scale model under red and orange light, three figures between cubes
Another scale model, inspired by James Turrell and Olafur Eliasson.
Wide shot of the stage in purple light, the full company on stage among the cubes
Then the real stage: the full company at La Ferronnerie, March 2022.
12+people led over 5 years
3paid performances, La Ferronnerie, 2022
9residencies
Adamisupport for the filmed performance, 2022

What pushed back, and how I answered

Holding a team of 12 together for five years

In its early years the company ran on commitment alone, so what held everyone together is the project itself: a clear organization, and an ambition big enough that people wanted to see it through. Keeping that alive for five years was my job. And that took hard calls. I matched tasks to people and recast roles when something wasn't working, parted ways when I had to, and restarted the work rather than force it. The show reached the stage.

A set, but no workshop

The cubes came from my set designers; my stage manager Axel worked out how to run them, wireless, battery-powered, controlled in DMX. That is when the real problems began. Where do you build dozens of cubes up to 1 m wide, out of what, where do you paint them and leave them to dry, where do you buy and receive the batteries, how do you fix them into the wood?

Going professional

The company started with little funding; the nine residencies, from Clos Sauvage and the Monfort to the Centquatre, were given in kind. To reach a professional run, I then structured it: Les Lions sous la Lune, an association under the 1901 law, has held a live-performance producer licence since November 2021, and performers and technicians were hired on intermittent contracts under the national collective agreement (CCNSPV), and paid. The hard part was cash flow. A performance was filmed on 30 March 2022 with support from the Adami "Captation de spectacle" programme, and that support is paid retroactively. So the company had to carry the artists' pay in advance, which meant planning payroll and cash before the funding arrived.

Covid

After excellent feedback, we were set to perform for a large number of theater professionals. Covid cancelled that date and delayed the premiere. The show finally opened at La Ferronnerie, Centre Pina Bausch, on 30 and 31 March 2022, for three performances.

05

Bulle: producing a show across three countries, independently

RoleWriter, director, performer and producer
TeamOne actor, 1 or 2 musicians, one stage manager
WhereParis, Tunisia, Ho Chi Minh City
PartnersThe Instituts français in Tunisia and Vietnam

Result: 6 performances in 3 countries before more than 500 spectators, an independent production, and press coverage in 8 Vietnamese outlets.

Léo on one knee reaching upward, a đàn tranh player behind him on a dark stage
In Ho Chi Minh City in 2025, alongside đàn tranh player Nguyễn Ngọc Hằng.
Hand-painted blue poster: Bulle ou l'errance des monts-vermeils, written, performed and directed by Léo Barcet, 45 minutes
Poster.

The starting idea

A 45-minute poetic solo about solitude, with live music, which I wrote, directed and perform. I designed it to travel light: one actor, one or two musicians, one stage manager.

What producing it actually took

First an invitation to Tunisia, with financial support from the Institut français de Tunisie. Then Ho Chi Minh City, where I recast the music with a Vietnamese đàn tranh player, staged it at Dancenter, secured a communication partnership with the Institut français du Vietnam, gave four performances in French and English, and got the show covered by eight outlets, from Việt Nam News to Tuổi Trẻ.

After the show, Étienne Ranaivoson, Consul of France in Ho Chi Minh City.
Vũ Phi Anh, of the Institut français du Vietnam.
Léo kneeling, looking up, hand raised, the musician playing behind
During a performance.

Việt Nam NewsThe Saigon TimesTuổi Trẻ NewsLe Courrier du VietnamSài Gòn Giải PhóngNgười Đô ThịO VietnamVietnam.vn

06

Preparing adults for a national certification

RoleInstructional designer, lead trainer and cohort referent
ClientsSocial Builder, WebForce3, Alphalia, m2i and Othis
PeriodSince 2021

Result: cohorts of adults certified by the French state; from learners, 4.7/5 satisfaction and 100% would recommend.

The setting

France's national Digital Advisors program trains people from very different backgrounds so they can help citizens with digital tools, then certifies them with a state diploma (REMN, level 5). There I designed modules and led cohorts of 16 to 25 adults, mostly remote, sometimes as referent trainer at the head of a team of six.

I wrote and taught modules on IT basics, support postures, media education, digital identity, and oral and written communication. Some courses ran to 315 hours.

The way I teach

I come from theater, so I build a course like a rehearsal, where people learn by doing, in front of others, with feedback right away. I prepare learners for the exam early and repeat the key points often. Was that too demanding? I once put the question to a learner. The regular reminders, he said, were exactly what got him through.

For "Pouvoir +", a course on agency for job seekers, I wrote the guide for the trainers who deliver it, and took part in the early design phase.

700+hours of training delivered
200+advisors I trained
4.7/5satisfaction among learners, 2025
315 hfor the longest course I led
07

The way I run a project

08

What others say

As a trainer

Source: learner satisfaction survey, 2025

4.7/5overall rating
9.3/10relevance of the course
100%would recommend me as a trainer
100%rated the course relevant
"A very competent trainer, committed and devoted to his learners, with a captivating way of speaking. He used diplomacy and listening to keep everyone involved, and brought all of us to the point of being able to pass the certification. An excellent trainer I hope to meet again."
Laurent Fromentin, former learner, La Poste · learner survey 2025 (translated)
"Very invested in his mission. Always listening and ready to motivate his cohort. Léo leaves no one behind and makes sure everyone takes part."
Christèle Vasseur, former learner · learner survey 2025 (translated)
"I passed the CCP1. Thank you for your availability and your listening. In a later training I realised that not all digital advisors, including some who had been in post much longer, had received such a high-quality training."
Béatrice L., former learner, now digital advisor at La Poste · 2025 (translated)
"Thank you for the training, and for helping me get my first diploma. You always listened, and your advice and motivation kept me focused, even when it was hard. Most of the group I'm still in touch with passed their CCP1, me too."
Maureen F., former learner · 2025 (translated)
"I got both certifications, I'm so happy. I listened to your advice."
Sandrine D., former learner, City of Savigny-le-Temple · 2025 (translated)
"Thank you so much for everything you brought me during the training, and for always being available to answer my questions."
Laurent C., digital advisor, City of Gien · 2026 (translated)
"Thank you for orchestrating the trainers' introduction at the very start of the session, with real time given to the subject. I hadn't had this launch step with the cohort lead in the two previous groups, and it makes a difference."
Jenny Augias, fellow trainer, national Digital Advisors program · 2021 (translated)

On stage

"I noticed Léo Barcet's professionalism and determination. [...] the strength of his proposals and the rigor and will with which he carries them out."
Pascal Rambert, playwright and director, former head of T2G Théâtre de Gennevilliers · recommendation letter (translated)
"I saw the professionalism and rigor of Léo Barcet and his deep commitment to the performing arts. [...] Dynamic, cultured and inventive, energetic and determined."
Pierre Katuszewski, Université Bordeaux Montaigne · recommendation letter (translated)
"I have seen countless plays in my life, but this performance is one of the most transcendent, distinctly and inherently human I have ever had the privilege of witnessing."
Matthew Alan Ward · on Bulle, Ho Chi Minh City, 2025
"A rare moment in Saigon. A sensitive dialogue between theater and traditional Vietnamese music. Events like this deserve to be supported and shared as widely as possible."
Jaime Peypoch, Secretary General, Français du monde-ADFE · on Bulle, 2025 (translated)
"An amazing and unique performance, full of beautiful poetry and deeply touching moments. It truly reminded me to look deep inside my heart and mind."
Tra My Nguyen · on Bulle, 2025
"A strong, deep and poetic show. I hope you can support it, it deserves it."
Sara Sismondi, theater teacher, Ho Chi Minh City · recommending Bulle to a school in Hanoi, 2025 (translated)
"A psychological bomb that questions many of the foundations of our society."
Thomas Haguet · on Le soleil n'est pas une boule (translated)
"Let yourself be surprised by this very poetic and original show." · "What a beautiful show. Very moving, and the music sublime."
Juliette Carrasco, Beata Ufniarz · on Bulle, 2025 (translated)

Contact

contact@leobarcet.com

Languages: French (native), English and Spanish (C1/C2), Vietnamese (B1)

Education: M.A. in International Artistic and Cultural Projects (Université Paris 8), B.A. in Theater Studies (Sorbonne Nouvelle), Cours Florent · LinkedIn