{
  "meta": {
    "note": "Hand-maintained, not generated. Whenever site/index.html changes (experience, achievements, qualifications, or project cards), update this file and site/llms.txt to match. There is no build step that keeps these in sync automatically.",
    "sourceOfTruth": "site/index.html",
    "lastSynced": "2026-07-24"
  },
  "basics": {
    "name": "Thomas Roberts",
    "label": "Head of Enterprise Performance & PMO",
    "email": "thomasproberts@gmail.com",
    "url": "https://me.tomproberts.com",
    "summary": "Most of my career has been about making organisations work better: agile coaching, portfolio management, enterprise performance. Now I'm doing the same thing for AI, working out what it should actually change about how organisations operate. I've spent that time building real tools, testing real workflows, and thinking hard about where the gap is between what AI can do and what organisations actually manage to get from it.",
    "location": { "city": "Leeds", "countryCode": "GB" },
    "profiles": [
      { "network": "LinkedIn", "url": "https://www.linkedin.com/in/thomas-roberts-3b795730" }
    ]
  },
  "status": "Employed, open to opportunities",
  "achievements": [
    "Delivery transformation: diagnosed initiative lead time issues, designed the Jira metrics and dashboards to surface them, and validated that the insight changed behaviour. Contributed to a 50%+ reduction in delivery cycle times.",
    "Built a new PMO function from the ground up, with repeatable processes, broad stakeholder engagement, and transparent reporting.",
    "Investment visibility: introduced a threshold-based framework separating strategic and portfolio work from operational overhead, and closed a CAPEX tracking gap, surfacing an additional $0.4 million per month of previously invisible investment.",
    "Applies AI in practice: builds his own AI tools, presents AI topics within Flutter's Agile Community of Practice, and built GitHub Copilot adoption metrics using Power BI and the GitHub API.",
    "AI adoption research: produced structured research on why AI capability and real organisational adoption diverge, concluding the barrier is rarely technical, and mostly use case framing, governance, and change management."
  ],
  "work": [
    {
      "company": "Flutter Entertainment / PokerStars",
      "position": "Head of Enterprise Performance & PMO",
      "startDate": "2025-01",
      "endDate": "Present",
      "summary": "Accountable for enterprise performance, BI, and PMO functions across all PokerStars tribes: portfolio visibility, governance, OKR/KPI reporting, and executive decision material."
    },
    {
      "company": "Flutter Entertainment / PokerStars",
      "position": "Lead Agile Coach",
      "startDate": "2022-07",
      "endDate": "2024-12",
      "summary": "Coached tribe leadership across multi-squad environments, combining executive facilitation with hands-on delivery metrics and performance framework design."
    },
    {
      "company": "Flutter Entertainment / PokerStars",
      "position": "Lead Scrum Master",
      "startDate": "2020-12",
      "endDate": "2022-07",
      "summary": "Led scaled delivery across 10+ squads during the Stars Group and PokerStars merger, managing 6 Scrum Masters."
    },
    {
      "company": "William Hill, The Stars Group, Emerald Publishing, Publish Interactive, Aviva, Carat",
      "position": "Earlier career (Scrum Master roles, plus early QA, technical support, and customer service)",
      "startDate": "2005",
      "endDate": "2020",
      "summary": "Scrum Master roles at William Hill, The Stars Group, and Emerald Publishing, plus early experience in QA, technical support, and customer service at Publish Interactive, Aviva, and Carat."
    }
  ],
  "education": [
    {
      "studyType": "BSc (Hons)",
      "area": "Web Information Systems and Services",
      "score": "First Class"
    }
  ],
  "certificates": [
    { "name": "ILM Level 7 Leadership & Management", "issuer": "Flutter Accelerate Programme" },
    { "name": "Professional Coach (ICF PCC)" },
    { "name": "Certified Scrum Professional (CSP)" },
    { "name": "Advanced Certified Scrum Master (A-CSM)" },
    { "name": "Certified Kanban Management Professional (KMP I and II)" },
    { "name": "MSP Foundation & Practitioner" },
    { "name": "Introduction to AI, Data Science & Machine Learning with Python" },
    { "name": "AI-Driven Business Analysis", "issuer": "Learning Tree International" }
  ],
  "projects": [
    {
      "name": "Cockpit",
      "group": "Applied inside a large organisation",
      "description": "Commitments made in meetings kept getting lost once everyone logged off, and going back through notes to find them wasted time. I built an AI action board that reads meeting transcripts, calendar, and chat, and turns them into a single tracked list of tasks.",
      "keywords": ["Python", "local LLM CLI"],
      "highlights": [
        "Three-zone workflow: AI Action Feed to Today's Plan (capped at 3 to 5 items) to Daily Achieved, moved by button, never auto-populated.",
        "Every card can expand a \"why\" panel showing the model's reasoning and the verbatim source quote it came from.",
        "Local-first by design: no cloud, no database, everything runs through a single JSON file on-device via a local CLI."
      ]
    },
    {
      "name": "Jira Reporting Tools",
      "group": "Applied inside a large organisation",
      "description": "Leadership reporting meant hours of manual slide-building every cycle, whether that was a sprint update for one team or an executive summary across a whole portfolio of programmes. I built one modular toolkit that turns raw Jira data straight into whichever of those a leader needs, on a schedule, with no manual deck work.",
      "keywords": ["Python", "Jira API"],
      "highlights": [
        "Three-layer architecture: a reusable data layer, a purpose-built enrichment layer per report type, and a presentation layer, so a new report type is a new module, not a rewrite.",
        "The roadmap module deliberately separates delivery risk from data quality: a missing date is flagged as a data problem, never coloured as if it were a risk, and every date change is tracked automatically so a slipped date never goes unnoticed between cycles.",
        "Sprint Reporter runs unattended end to end from the command line; Strategic Alignment has been live since May 2026; the roadmap module has been verified live across 51 portfolios and around 1,200 initiatives, and is awaiting stakeholder sign-off on its redesigned layout."
      ]
    },
    {
      "name": "Programme Relationship Graph",
      "group": "Applied inside a large organisation",
      "description": "Most dependency reporting is really just a snapshot of what's declared in Jira at that moment, and it goes stale the second something changes. This concept skips the report entirely: it reconstructs how things actually connect from evidence, so instead of reading a report, you ask a question and get an answer. Still a proof of concept.",
      "keywords": ["Agentic AI", "Jira", "NetworkX", "Python"],
      "highlights": [
        "Core reframe: declared Jira dependency links are treated as claims to validate against reconstructed evidence, not facts to trust outright.",
        "Three evidence layers and exactly three confidence tiers: extracted, inferred, or ambiguous.",
        "PoC-level code and a formal investment case, a ten-slide deck benchmarked against external research, pitched to senior leadership."
      ]
    },
    {
      "name": "Vibe Coding Training Session",
      "group": "Applied inside a large organisation",
      "description": "Colleagues could see AI's potential but had no concrete starting point for using it themselves. I turned a real internal tool into a teaching kit and ran a hands-on session giving them that starting point directly.",
      "keywords": ["Python", "GitHub Copilot"],
      "highlights": [
        "Structured around a clear narrative: from doing the manual glue work by hand, to a single CLI command, to an agentic tool that plans and acts across steps on its own, a frontier he's honest about still learning.",
        "Taught a concrete prompting pattern: describe the outcome, ask for a plan first, read and correct the plan, then let it build. Also covered giving an AI durable context across sessions with three plain files, an instructions file, a README, and a memory/state file.",
        "Explicit on data handling throughout: the toolkit runs fully locally, so nothing sensitive leaves the machine or reaches an outside AI service."
      ]
    },
    {
      "name": "memory-tools",
      "group": "Independent research",
      "description": "I wanted a frictionless way to capture an idea or task the moment it came to mind. I built two small apps for capturing and browsing straight from my phone or browser. The next step is feeding that capture into the same orchestration layer as Cockpit, so reviewing it becomes an agentic task rather than something I do by hand.",
      "keywords": ["JavaScript", "GitHub API", "PWA"],
      "url": "https://vincent-brazil.github.io/memory-tools/",
      "highlights": [
        "Both apps call GitHub's Contents API directly from the browser; a fine-grained personal access token, scoped to contents only, is stored in that browser.",
        "Includes a force-directed graph view of the knowledge base and a scored triage queue, built on lightweight term-overlap scoring rather than a full embeddings pipeline."
      ]
    },
    {
      "name": "Discord Relay (Clive)",
      "group": "Independent research",
      "description": "I built Clive to perform tasks and save time for a gaming alliance. He ended up becoming something the community chats and jokes with, which is what pushed me to build out his memory and personality properly.",
      "keywords": ["Node.js", "LLM failover"],
      "highlights": [
        "Provider chain with fallback, tried in order on failure, so one API being down never takes the bot offline.",
        "Knowledge is modular: adding a new topic is dropping in a markdown file, no code change needed.",
        "Persistent memory deliberately split across five separate stores so frequent writes never rewrite one large file."
      ]
    },
    {
      "name": "ParentMail School Notifications",
      "group": "Independent research",
      "description": "One school inbox mixed every kid's messages together, with no way to filter by child. I built a scanner that splits school messages into a separate inbox and calendar per kid.",
      "keywords": ["Node/Express", "Playwright"],
      "highlights": [
        "Extracts individual dated items line by line rather than treating whole messages as one block.",
        "Caches the login session only, never the password, even though that means re-authenticating periodically."
      ]
    },
    {
      "name": "Dark War Codes",
      "group": "Independent research",
      "description": "A weekly gift code needed redeeming across several game accounts by hand, every week. I built a watcher that catches the code and redeems it automatically, wired into Clive so the community sees the result straight in Discord.",
      "keywords": ["Python", "Discord API", "GitHub Actions"],
      "highlights": [
        "Two independent watchers, either of which can trigger a redemption, catching codes posted in different channels.",
        "A scheduled job runs regardless as a safety net, independent of both watchers."
      ]
    },
    {
      "name": "ViewQueue",
      "group": "Independent research",
      "description": "I wanted YouTube to schedule what I watch by context, bedtime, commute, lunch, without manually tagging anything. I built a mobile-first scheduler that learns viewing habits on-device, no server, no model training.",
      "keywords": ["Python", "YouTube API"],
      "highlights": [
        "Generates a playlist via the YouTube Data API rather than fighting the platform's watch-history API restrictions directly.",
        "On-device personalisation rather than a server-side model: no server cost and no exposure to upstream API changes."
      ]
    }
  ],
  "interests": [
    {
      "name": "Outside of work",
      "keywords": ["home networking", "DIY electronics", "3D printing", "triathlon", "cycling"],
      "summary": "Leeds-based with a family. Likes technology and computing in general, the same curiosity that drives most of the projects above, just for its own sake rather than solving a work problem. Away from a screen, it's triathlon and cycling."
    }
  ]
}
