Skip to content

Code decides; the model reads and drafts.

AI engineer in Pamplona, Spain. I build systems that run unattended for small businesses, and I maintain them myself.

An operating system for your business. The cases are examples; the real systems are further down.

01About

I trained as a mechanical engineer.I test a system before I trust it.

Portrait of Mario Chasco

My systems work for real clients. A hair salon in Pamplona has been using my booking agent since September 2026, a travel agency has been getting a new video every 3 days since October, and I have been building and operating a read-only analytics platform for an investment firm in London since June. That platform never trades and never moves money.

Before AI, I was a mechanical engineer. In 2016 I extended MATLAB multibody code for floating offshore wind turbines, and from 2018 to 2020 I worked with machine vision in a factory, where I proposed adding AI and the company declined. My first time using Claude was in the last challenge of a selective AI programme, in September 2025: I linked Claude Code to n8n over MCP.

Today I build with Claude Code and Codex as pair programmers, and every generated change goes through tests and review. Flowara AI is my public work: the systems I built for real businesses and the templates I took from them.

I live in Pamplona, Spain, and work remotely (CET). Spanish is my first language. My English is Cambridge C1 Advanced, and I work at C2 level.

02

Systems

  • 407calls by late October 2026Voice and WhatsApp booking agentAnswers a hair salon's phone and books into its real calendar.

    In production · September 2026

    The owner is mid-haircut when the phone rings. Either the scissors go down or the booking is lost.

    It answers in the owner's cloned voice and books straight into the salon's real calendar; on WhatsApp, a second agent confirms or changes bookings and sends reminders. The model only picks from options the code gives it.

    bookings in the same period
    212
    technical errors in the first 2 days (63 calls, 34 bookings)
    0
    tests on the production system
    >5,700
    tests passing on the public template
    4,767 + 277

    The assistant follows a script. If the caller wants a booking, it stays with them; if they ask about something else, it answers briefly and goes back to the booking.

    Anything with consequences is decided by code: who is calling, which slots exist and what gets written to the calendar. Every request from the model goes through strict Zod checks (a library that checks each field has the right shape), and anything that does not fit is rejected before the calendar changes. Each client runs in its own container.

    There were 63 calls and 34 bookings in the first 2 days, at about a minute and a half per call, with 0 technical errors. The production system has over 5,700 tests; the public template, on fake data, has 4,767 + 277, all passing.

    • TypeScript
    • Fastify
    • Zod
    • ElevenLabs
    • Meta WhatsApp Cloud API
    • Docker
    github.com/mariochasco78557/ai-booking-agent-template
  • 1.26Mrows loadedRead-only crypto analyticsChecks an investment firm's numbers every day, with keys that cannot move money.

    In production, private · June 2026

    An investment firm in London needs to know whether what the exchange says matches its own books. It cannot risk a tool that touches the money.

    It reads the account history and live state through read-only keys, matches them against the firm's own books and works out Sharpe, Sortino, Calmar and drawdown. It never trades, withdraws or transfers.

    between live snapshots of the account
    1 min
    days the commissions matched the firm's books
    117/117
    difference between two independent sources over 40 days
    <0.2%

    It works like closing the till in a shop: you compare what the till says with the receipts, and if they do not match you see it straight away. Here the till is the exchange, and the receipts are the firm's books.

    There is almost no model here, on purpose. Code downloads the data and matches it; it also does the maths. Automation reports, people decide.

    Security mattered more than the technique. The keys can only read, so the platform cannot move money even if someone wanted it to. It is private; I can show it in a live demo if you ask, never with client data.

    • Python
    • FastAPI
    • PostgreSQL
    • Next.js
    • Docker
  • 31sources synced daily at 08:00AI Knowledge Feeds and MCP serverSyncs official docs every morning and gives my agents only the fragment they need.

    Open source (MIT), runs daily on a Debian VPS

    A coding agent does not know what changed yesterday in its own tools. Giving it the whole documentation spends its context on things it does not need.

    Every day at 08:00 it syncs 31 sources, from official docs and changelogs to video transcripts, and serves them over MCP as fragments, never whole documents. Official sources rank above opinion.

    characters at most per prompt
    1,200
    to add the pointer
    0.25 s

    When I type a prompt, a hook (a small program that runs on every message) finds the note that fits best and adds a pointer of at most 1,200 characters, in 0.25 seconds. If the agent needs more, it asks the MCP server, which returns fragments.

    Code decides what goes into the prompt: it scores by keywords and ranks by authority, and it never goes over 1,200 characters. The search is keyword based (BM25), and the tests run offline.

    • Python
    • BM25
    • MCP
    • yt-dlp
    • pytest
    github.com/mariochasco78557/ai-knowledge-feeds
  • 21modulesSelf-hosted meeting transcriptionI upload a meeting recording and get a summarised note back in Drive.

    Public template, runs 24/7 on my server

    After every meeting, someone has to write down who said what and what was decided.

    A SQLite queue with explicit states transcribes with faster-whisper, splits speakers with sherpa-onnx and summarises with an LLM. The note lands in Drive as Markdown, with a Telegram alert.

    tests, including a golden-file test
    161
    lines of architecture doc
    1,300

    Every recording has a state in the queue, so I can always see which step it is on.

    The model only summarises. Where the note goes and when to retry is decided by code.

    It has 21 modules and 161 tests, including one that compares the output with a saved correct note (a golden-file test), plus a 1,300-line architecture doc. Memory use and speed are measured on a small VPS.

    • Python
    • SQLite
    • faster-whisper
    • sherpa-onnx
    • LLM APIs
    • Google Drive API
    github.com/mariochasco78557/transcription-stack-template
  • 4subagent tiersClaude Code toolkitThe Claude Code setup I build everything else with.

    Open source (MIT)

    Asking a model to remember a rule is not enough. Code has to check it.

    It combines hooks, handoff skills between sessions and subagents in 4 tiers, picked by task complexity; a verifier reviews each change without editing it. A Stop hook blocks any turn that promises work without starting it.

    of idle server, the failure behind the Stop hook
    3 h

    It works like a small office. The main session hands out the work and writes no code; junior searches and summarises, plumber does the routine work, senior takes what is hard or cannot be undone, and verifier checks at the end without touching anything.

    Hooks are code, so they run every time, whatever the model decides. The per-prompt router has a --dry-run mode that shows what it would do without doing it.

    The Stop hook came from a real failure: a session announced work, ended its turn without starting it, and my server sat idle for 3 hours. Since then, a turn that promises work it has not launched cannot end.

    • Claude Code
    • Hooks
    • Subagents
    • Skills
    github.com/mariochasco78557/claude-code-toolkit
  • 1 every 3 daysnew video since October 2026Unattended video pipelineEvery 3 days a narrated video lands in the client's Drive on its own.

    In production, private · October 2026

    A travel agency needed videos on a regular schedule.

    A systemd timer starts the job on schedule, a cloned voice does the narration and ffmpeg puts the video together. The result lands in the client's Google Drive.

    Nobody has to remember to run it. The timer starts it, and nobody presses a button.

    Code decides when it runs and where the video goes.

    It is private, so here I only describe how it works.

    • Voice cloning
    • ffmpeg
    • systemd timer
    • Google Drive API
  • 11unit testsAI secretary for teachersReports for teachers, behind a privacy filter that fails closed.

    Public template on synthetic data

    Student data is sensitive. A report must never carry what it should not.

    It imports data, validates it, shows it on a dashboard and builds deterministic reports. A privacy filter in code fails closed: if something goes wrong, it blocks the output instead of letting it through.

    typecheck and lint
    Clean

    It is a public template, and all the data is synthetic: no real student appears anywhere.

    The reports are deterministic, so the same data always gives the same report.

    It has 11 unit tests, and the typecheck and lint are clean.

    • Next.js
    • Prisma
    • PostgreSQL
    • Zod
    github.com/mariochasco78557/ai-tutor-secretary-template

03

How I work

  • Least AI possible

    Code decides identity, money, routing and sending; the model reads and drafts. What has consequences does not depend on how the model phrases things that day.

  • Autonomy is earned

    Per task type, and proven on a golden set of real cases: a fixed list of inputs with the expected result. Code checks first, then a calibrated judge.

  • No silent failures

    Every system leaves a log, a counter and a canary. If something stops, it has to show.

  • A named human owns every agent

    And every mistake becomes a rule in a file. A rule in a file holds; repeating it to the agent does not.

  • Context first

    Plain, portable files that a person and a model can both read.

  • Tests and review on every change

    I build with Claude Code and Codex as pair programmers, and every generated change goes through tests and review before it stays.

  • Read-only where there is money

    In finance, automation reports and people decide.

04

Background

  1. Jun 2026 – PresentBackend and DevOps CollaboratorAn investment firm in LondonI built and operate its read-only analytics platform.

    I look after the data loading and matching, plus the live capture and dashboard, deployed with Docker and PostgreSQL. I work remotely, and the platform never trades or moves money.

  2. 2025 – PresentFounder and AI EngineerFlowara AIFlowara AI is my public work: systems for real businesses and the templates I take from them.

    I own the full cycle, from diagnosis to support, with deployment on my own VPS. I also build in public in 38+ short YouTube videos.

  3. Aug 2025 – Sep 2025AI Engineer TraineeSelective remote AI engineering programmeI was selected at about 10% acceptance and delivered three projects in n8n.

    A Google Workspace assistant, a RAG chatbot over a movie script and a marketing analyst that turns plain questions into SQL. In the last challenge I linked Claude Code to n8n over MCP, my first time using Claude.

  4. Sep 2023 – PresentTechnology TeacherGovernment of NavarraI teach AI, cybersecurity and programming in English.

    My groups are mixed-level. It is where I learnt to explain technical things without making them complicated.

  5. 2021Master's Degree in Secondary Education and TeachingUniversidad de NavarraMaster's thesis on a projectile entering a dense granular medium.

    I wrote MATLAB and Python code to fit its equation of motion and validated it against simulation data from the university's physics department. It came with an IB Physics teaching proposal.

  6. 2018 – 2020Mechanical EngineerBerry GlobalMachine-vision quality inspection and robot commissioning on molding machines.

    I worked with INTRAVIS and In-Sight. Good parts were rejected when they drifted out of the camera's view; I proposed adding AI, and the company declined. What I kept from it: if a system fails the same way again and again, fixing it by hand each time does not scale.

  7. 2017 – 2019MSc in Astronomy and AstrophysicsVIU, Universidad Internacional de ValenciaMaster's thesis: "Automatic classification of stellar spectra" (2019).

    It was my first hands-on machine learning work. I finished it in 2019, while working at Berry Global.

  8. 2016 – 2017Laboratory TechnicianSchneider ElectricProduct compliance testing to UNE and IEC standards.

    My job was to prove with tests that a product met the standard. I apply the same idea to software today: nothing counts as working until it is tested.

  9. 2016Engineering InternCENERPython and MATLAB multibody code for floating offshore wind turbines.

    I worked on models of wind turbines that float at sea. I defended my degree project, co-supervised by UPNA and CENER, that same year.

  10. 2012 – 2016Bachelor's Degree in Mechanical EngineeringUniversidad Pública de Navarra (UPNA)Final degree project: a reduced dynamic model for floating offshore wind turbines.

    I extended MATLAB multibody code from 2 to 3 degrees of freedom, on a CENER code base. I defended it in June 2016.

05

Videos

I have 38+ short build-in-public videos on YouTube, where I explain how my systems work.

06

Contact

If you would like to see one of these systems running, email me. I am happy to do a live walkthrough or a paid trial task, whichever tells you more. I work remotely from Pamplona, Spain (CET), one hour from the UK.

CV

My CV as a PDF, in English and Spanish.

Mario Chasco, Pamplona, Spain.

Flowara AI