# Onsite AI Training for Teams

Source: https://gofranz.com/ai-training/

Every team I visit has the same shape. Two people are getting genuinely good work out of AI, one of them at midnight on their own time. Everyone else has a ChatGPT tab they open twice a week, get a mediocre answer from, and quietly conclude the whole thing is overrated. Nobody can explain what the first group does differently, so it never spreads.

I fly out, spend a day or two with your team, and close that gap. Not with a deck about the future of work; with the tools you already pay for, on the work you actually do, until something runs.

## Why most AI training doesn't stick

Most of it stops at the demo. Someone shows a clever prompt, the room says "huh", and on Monday everyone goes back to what they were doing. The gap isn't enthusiasm, it's that nobody gave them a working mental model, and nobody sat with them long enough to find out where their week goes.

So: half a day of how it works, half a day of listening, then a day of building. You keep what we build.

## Before I get on a plane

Prep starts a couple of weeks out, and it isn't a formality - it's why day one has a useful afternoon. What I need:

- Who's actually in the room, and what they do all day.
- Which AI tools you pay for now, and who has access.
- Two or three workflows you'd like automated. A rough description is plenty.
- The real constraints: what data can't leave, what needs sign-off, what IT allows.

One call and some back and forth, then I build the material around your stack. If your team lives in TypeScript and Jira, that's what the examples use.

Not all of it will turn out to be an AI problem, and I'll say so when it isn't. Some of it wants a small tool instead: a script, a CLI, a real integration with the system that never got a decent API. A model is slow and inconsistent at work that twenty deterministic lines do perfectly every time. The setups that hold up are a mix - the agent decides what to do, the tool does the part that has to be right. Building those is [a lot of my other work](/work-with-me/#ai-that-fits-your-stack).

An NDA goes in place first; I'll sign yours, or send mine. By the end of prep I've seen your repos, your tickets and a fair amount of honest complaining about internal tooling, so it should be in writing before it starts.

## Day one: how it actually works

**Morning - what's in the box.** The model doesn't know the answer. It holds a distribution over what comes next and samples from it, which is why the same prompt gives a different reply on a different day. That one fact explains most of what people find spooky, and a room that gets it stops either worshipping the model or writing it off. Then: context windows, why long sessions drift, and why an agent will cheerfully report a job finished when it [quietly stubbed out the hard parts](/blog/vibe-coding/).

**Midday - the tools you already pay for.** Chat window versus agent, and when each is right. Claude Code and Codex for work that ships. And how to connect them to your repos, docs, tickets and CRM, so they answer from your context instead of guessing. Most teams run these tools blind to everything that makes their company specific.

**Afternoon - I stop talking.** I sit with people while they work and find out where the hours go. This decides whether day two is worth anything, and it's the part most training skips.

## Day two: build something that runs

The second day pays for the trip. We take two or three workflows from the afternoon and build them, with the people who'll own them. Every useful agent comes down to four questions:

- **What's the job?** One sentence, an outcome, not a capability.
- **What can it touch?** Which systems, read or write.
- **What starts it?** A schedule, an event, or a person.
- **How do you find out what it did?** The one everybody skips, and the first one an auditor asks about.

Write those down and you have something buildable. Skip the fourth and you have something you'll switch off a month later, right after it does something surprising to production.

We also cover what data may go into a tool, what gets logged, and where a human signs off. In a regulated industry that half isn't boring at all, and it's where I spend most of my working life anyway.

## Then a month of follow-up

Training decays. People go back to a full sprint and the old habit wins. So the days onsite come with the four weeks after: async questions, one review call, and I'll build one of your agents out properly, so your team has a reference implementation to copy rather than a memory of me doing it on a projector.

That's the whole offer. A day or two onsite, then a month of support. No subscription, nothing to renew.

## Where I'll come to

I'm based in Lisbon and I fly for this. Europe, the UK, the UAE and Southeast Asia: Berlin, Amsterdam, London, Zurich, Dubai, Abu Dhabi, Singapore, Kuala Lumpur, Bangkok, wherever your team sits. I worked out of Malaysia for years and still have clients there, so Asia isn't a holiday plan with a workshop attached.

For the long flights, two days makes a lot more sense than one. Travel and accommodation on top, at cost. Outside those regions, ask anyway and I'll tell you whether it adds up.

## Who this is for

Engineering teams and mixed product/ops groups, roughly 5 to 40 people. Non-engineers are fine; the coding-agent material gets swapped for tools they'd actually use. It works best when someone in the room is already a bit obsessed, because they're who keeps it alive after I leave.

It's a bad fit for three things, and I'd rather say so up front: **individuals** (a good blog post and a free weekend gets you most of the way), **certificates** (I don't issue one), and **AI strategy decks** (I'll build you something that runs and leave the slide to someone else).

## Where I come from

Fourteen years shipping software, currently Senior Identity Engineer at TWIN (IOTA Foundation). I'm not teaching this from a course I took last quarter. I run multiple agents every working day and I've built the tooling around them: [TKU](/blog/tku-claude-code-on-steroids/) for tracking token spend across tools, [Guix containers](/blog/jail-claude-code-with-guix-shell-container/) for keeping an agent out of my home directory, [plugins](/blog/claude-plugins-domain-experts-you-can-install/) as installable domain experts. I've also [cleaned up after them](/blog/lovable-dev-apps-need-professional-help/), hardcoded keys and bypassable auth and all, and written [the honest version](/blog/ai-is-the-race-car-im-the-driver/) of what these tools can and can't do.

The [resume](/resume/) has the longer version. If you need a build rather than training, that's [work with me](/work-with-me/).

## What it costs

I price on the problem, not by the day. Tell me the size of the room, where it is, and what you want working by the end, and I'll quote a fixed number before anyone commits. Travel and accommodation on top, at cost.

If a workshop isn't what you need, I'll say so before you spend anything. That happens reasonably often: sometimes the real blocker is that nobody has access to the tools, and that's a procurement conversation, not a training one.

## Get in touch

Tell me about your team and I'll come back with an honest answer on whether the trip is worth it.

There's also a readiness check below if you want a second opinion first. It's optional and it takes two minutes; nothing leaves your browser unless you send the form.

<details class="ta-optional">
  <summary>Is your team ready for this? <span>Optional, two minutes</span></summary>

  <noscript>
  This check needs JavaScript. Skip it and tell me about your team in your own words instead.
  </noscript>

  <script type="application/json" id="training-assessment-data">
  {"profile":[{"id":"ships_software","q":"Does your team write and ship software?"},{"id":"customer_facing_ai","q":"Do you already have AI in front of customers?"},{"id":"regulated","q":"Do you handle personal, health, financial or identity data?"}],"themes":[{"id":"access","label":"Access & tooling","items":[{"id":"a-accounts","q":"Does everyone who'd be in the room have a paid AI account of their own?","note":"Shared logins and free tiers cap the day. People hit a rate limit halfway through an exercise and the momentum goes with it."},{"id":"a-install","q":"Can people install and run a new tool on their work machine without opening a ticket?","note":"If IT is a two-week loop, we spend the workshop planning instead of building."},{"id":"a-context","q":"Can your AI tools see your real context: repos, docs, tickets, the CRM?","note":"A model with no access to your data gives generic answers. Connecting it properly is most of the value."},{"id":"a-approved","q":"Is there an agreed list of which AI tools are fine to use?","note":"Without one, half the room is quietly using something the other half isn't allowed to."}]},{"id":"practice","label":"How the team actually works","items":[{"id":"p-agentic","q":"Does anyone here use a coding agent (Claude Code, Codex, Cursor) for work that actually ships?","na_if_no":"ships_software","note":"One person who's already there makes a real difference. They become the internal champion after I leave."},{"id":"p-shared","q":"Do people share prompts and setups, or does everyone start from scratch?","note":"Most teams have one quiet power user, and nobody else knows what they're doing differently."},{"id":"p-review","q":"Does AI output get reviewed as carefully as a colleague's would?","note":"This is the habit that separates teams shipping AI-assisted work from teams shipping AI-assisted bugs."},{"id":"p-failure","q":"Can you point at something AI got wrong for you, and say why it went wrong?","note":"Teams that can name a failure are past the magic phase. That's where the useful part starts."}]},{"id":"governance","label":"Data, risk & rules","items":[{"id":"g-policy","q":"Is there something written down about what data may go into an AI tool?","note":"Usually there isn't. Where it's missing, people either overshare or freeze, and both are expensive."},{"id":"g-residency","q":"Do you know where your prompts and your data actually get processed?","na_if_no":"regulated","note":"EU, US, or somebody's inference provider. Your DPO will ask eventually."},{"id":"g-disclosure","q":"Do customers know when they're talking to, or being assessed by, a model?","na_if_no":"customer_facing_ai","note":"The EU AI Act has an opinion about this. So do your customers."},{"id":"g-logs","q":"When an agent acts on a real system, is there a log of what it did?","note":"The moment an agent gets write access, this stops being optional."}]},{"id":"intent","label":"What you want out of it","items":[{"id":"i-task","q":"Can you name one task that eats hours every week and might be automatable?","note":"We build that one on the day. If there's no candidate, the training has nothing to land on."},{"id":"i-owner","q":"Is there a named person who'll own this after I leave?","note":"Training without an owner decays in about three weeks."},{"id":"i-mandate","q":"Has leadership actually asked for this?","note":"Bottom-up works too. But then we should plan how you'll show results upward, or the budget won't come twice."},{"id":"i-time","q":"Will people get real time to practice afterwards, or is it straight back to the sprint on Monday?","note":"The follow-up month exists because the honest answer here is usually no."}]}]}
  </script>

  <div id="training-assessment"></div>
</details>

<div class="ta-enquiry">
  <form action="https://api.rusty-forms.com/v1/digest/60d8a103-62a4-47a0-91b2-02d363ab8851" method="post">
    <input type="hidden" name="enquiry_type" value="AI training">
    <input type="hidden" name="readiness_summary" value="">
    <input type="hidden" name="readiness_detail" value="">

    <div class="ta-row">
      <div class="form-group">
        <label for="t-name">Your name</label>
        <input type="text" class="form-control" name="name" id="t-name" placeholder="Name" required>
      </div>
      <div class="form-group">
        <label for="t-email">Email</label>
        <input type="email" class="form-control" name="email" id="t-email" placeholder="Email" required>
      </div>
    </div>

    <div class="ta-row">
      <div class="form-group">
        <label for="t-company">Company</label>
        <input type="text" class="form-control" name="company" id="t-company" placeholder="Company">
      </div>
      <div class="form-group">
        <label for="t-city">Where would we run it?</label>
        <input type="text" class="form-control" name="city" id="t-city" placeholder="City, country">
      </div>
    </div>

    <div class="ta-row">
      <div class="form-group">
        <label for="t-headcount">How many people in the room?</label>
        <select class="form-control" name="headcount" id="t-headcount">
          <option value="">Pick one</option>
          <option value="under-5">Under 5</option>
          <option value="5-15">5 to 15</option>
          <option value="15-40">15 to 40</option>
          <option value="40-plus">More than 40</option>
        </select>
      </div>
      <div class="form-group">
        <label for="t-timing">Rough timing</label>
        <select class="form-control" name="timing" id="t-timing">
          <option value="">Pick one</option>
          <option value="next-month">Within a month</option>
          <option value="this-quarter">This quarter</option>
          <option value="next-quarter">Next quarter</option>
          <option value="exploring">Just exploring</option>
        </select>
      </div>
    </div>

    <div class="form-group">
      <label for="t-roles">Who's in the room?</label>
      <input type="text" class="form-control" name="roles" id="t-roles" placeholder="e.g. 12 backend engineers, 3 PMs, 1 CTO">
    </div>

    <div class="form-group">
      <label for="t-workflow">What's the one thing you'd want working by the end?</label>
      <textarea class="form-control" name="workflow" id="t-workflow" rows="4" placeholder="The task that eats hours every week."></textarea>
    </div>

    <div class="form-group">
      <label for="t-notes">Anything else I should know</label>
      <textarea class="form-control" name="notes" id="t-notes" rows="3" placeholder="Constraints, past attempts, what you've already tried."></textarea>
    </div>

    <p class="ta-note">If you ran the readiness check, your answers ride along so I can see the same picture you did. Nothing else is tracked.</p>
    <button type="submit" class="btn">Send it over</button>
  </form>
</div>

## Questions I get

**Do you run it remotely?** I'd rather not. Half of day one is sitting next to people while they work, and that doesn't survive a video call. Ask if travel is genuinely impossible, but expect me to talk you out of it.

**What do you need from us beforehand?** Who's in the room, which tools you already pay for, and two or three workflows worth automating. One call a couple of weeks out, so the material is built around your stack. An NDA goes in place before that starts.

**One day or two?** Two, if the goal is agents your team keeps using. One works if you just want the room levelled up. I'll tell you which I think you need after we talk.

**Do we need to be engineers?** No. Roughly half the teams I work with are mixed, and the material shifts accordingly. The part about how the model works and where it fails, everyone needs.

**Which tools do you teach?** The ones you already pay for, mostly Claude and ChatGPT, plus Claude Code or Codex where people write software. I don't take referral fees from any of them.

**Can our data stay in the EU?** Yes, and we'll cover how. Model choice, provider, and what leaves your network are part of the guardrails session, not an afterthought.

**Something breaks after you leave. Then what?** That's what the follow-up month is for. After it, you can [get in touch](/contact/) like anyone else.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Do you run AI training remotely?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "I'd rather not. Half of day one is sitting next to people while they work, and that doesn't survive a video call. If travel genuinely isn't possible, ask, but expect me to talk you out of it."
      }
    },
    {
      "@type": "Question",
      "name": "How long does the training take?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "One or two days onsite, followed by a month of support. Two days if the goal is agents your team keeps using; one day if you want the room levelled up and the mental model fixed."
      }
    },
    {
      "@type": "Question",
      "name": "Where do you travel for onsite AI training?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Europe, the UK, the UAE, and Southeast Asia, including Berlin, Amsterdam, London, Zurich, Dubai, Abu Dhabi, Singapore, Kuala Lumpur and Bangkok. I'm based in Lisbon and fly out for one to two days, mid-week. Travel and accommodation are billed at cost."
      }
    },
    {
      "@type": "Question",
      "name": "What do you need from us before the training?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Who's in the room and what they do, which AI tools you already pay for, two or three workflows worth automating, and any real constraints on data or sign-off. That's one call and some back and forth a couple of weeks ahead, so the material is built around your stack. An NDA is signed before the prep begins."
      }
    },
    {
      "@type": "Question",
      "name": "Does the team need to be engineers?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. Around half the teams I work with are mixed product and operations groups, and the material shifts accordingly. The part about how the model works and where it fails applies to everyone."
      }
    },
    {
      "@type": "Question",
      "name": "Which AI tools do you teach?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "The ones you already pay for: mostly Claude and ChatGPT, plus Claude Code or Codex where people write software. No platform is being sold and no referral fees are taken."
      }
    },
    {
      "@type": "Question",
      "name": "Can our data stay in the EU?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. Model choice, provider, and what leaves your network are covered in the guardrails session, along with what data may go into a tool and what gets logged."
      }
    }
  ]
}
</script>
