Ciaran Ashton

open pdf

Head of Engineering · London, UK

Engineering leader who builds teams from nothing and grows the people in them. Nearly three years managing engineers and nine years shipping distributed systems in fintech, banking and commerce.

At GoPlaces I hired the engineering team, set how it works and led the build of the whole platform, including MCP connectors that 80+ staff use every day through Claude and our own AI agents. Strongest in backend and platform engineering, identity and access, API gateways and multi-tenant platforms, and AI integration.

Experience

  1. Head of Engineering · GoPlaces

    Mar. 2025 – Present · London

    TikTok Shop agency running affiliate, live shopping and content for consumer brands.

    • Built the engineering function from nothing. There was no in-house engineering when I joined, only an outsourced project. Hired the whole team: three senior engineers and a data analyst.
    • Set how the team works and where ownership sits, with goal setting and performance reviews, and tie every piece of work to a business goal. Work closely with the product director and the wider business on priorities, and used our own data to show the senior leadership team where tech can lift performance.
    • Coached one of the senior engineers through to Principal Engineer, so architecture decisions and the team's technical leadership now sit with that role rather than with me.
    • Led the build of the whole platform, from the first brand app to Labs, the internal operations console: six web apps and more than 20 services across AWS and GCP.
    • Shipped our first MCP server in June 2025, while the standard was still new. The same connectors now serve 80+ staff every day, through Claude and through Soma, our internal Slack agent on a self-hosted harness, behind an API gateway with authentication and per-brand data separation.
    • Account teams report monthly client reports taking about six hours to prepare instead of one to one and a half weeks, routine data tasks taking 15 minutes instead of an hour, and one to two hours a day saved at peak reporting times.
    • Designed the data platform so agents and dashboards share one set of definitions: hourly syncs into BigQuery, modelled and documented in dbt, served through a Cube semantic layer. The MCP connectors sit on that layer, so an agent's answer matches the report.
    • Built identity and access across the platform: Stytch for brand users and machine-to-machine clients, the TikTok OAuth flow with token refresh, and signed, time-limited staff impersonation for support.
    • Led the move of analytics and internal tools from AWS to GCP, with all infrastructure as Terraform and every change applied through a reviewed plan.
    • Set up incident response: GCP alerts go to a Slack channel and trigger an AI workflow that reads the logs, writes up what happened and suggests immediate and longer-term fixes, so whoever is on call starts with a diagnosis rather than a blank page.
    • Replaced spreadsheet-run live shopping operations with a purpose-built service and console: bookings, presenter and producer profiles, availability, cover shifts and booking notifications.
    • Built the connectors to be harness-agnostic, so the same MCP tools and permissions sit behind Claude, Soma and any agent we add next.
    • Account teams have used the same tools for work that was not practical before, such as transcribing and analysing more than 6,000 affiliate videos.
    • Stayed hands-on alongside managing, so the team's standards for code, review and infrastructure are ones I hold myself.
    • Brought brand user management into one service with clear role rules and invites, plus time-limited staff sign-in as a brand user for support.
    • Ran our internal tools (NocoDB, n8n) on GCP with private Cloud SQL and per-tool database roles, and connected them to the CRM and data warehouse with automated workflows.
    • Built a shared design system across our apps, so new product surfaces ship with consistent UI and less front-end effort.
  2. Senior Software / Product Engineer · Kanexa (Contract)

    Oct. 2023 – Mar. 2025 · London

    Supply chain finance platform automating invoice matching and supplier payments.

    • Helped set up the engineering team: interviewed candidates and shaped how the team worked, alongside shipping the product.
    • Designed and built a supply chain SaaS product that ingests and matches purchase orders, invoices and logistics documents, and helped shape the roadmap with product.
    • Built the core automation service in TypeScript and the ingest and payments services in Go, connected by NATS for event-driven messaging and key/value caching.
    • Built AI semantic search in Python with Pinecone to link invoices to purchase orders.
    • Designed a configurable architecture driven by the legal relationships between buyers and suppliers and the programmes they sit in, so each client could be set up through configuration.
    • Modelled document matching as a graph that grows as purchase orders, invoices and shipments are linked, using MongoDB for its flexible structure.
    • Gave clients and the internal team self-serve reporting through Metabase.
  3. Senior Software Engineer · Klarna (Contract)

    Mar. 2022 – Jul. 2023 · London

    Global payments and shopping company. Worked on Klarna Virtual Shopping.

    • Designed and built scoped authorisation for Klarna's virtual shopping APIs across multiple retailers: Auth0 permissions, a custom user-access service, and a shared package that enforces permissions and access rights on every endpoint.
    • Moved Auth0 configuration into Terraform, removing console access to staging and production and putting every authentication change through code review.
    • Fixed race conditions and improved scalability by moving to MongoDB aggregations. Built event-driven notifications and per-retailer real-time analytics on SNS, SQS, Lambda and DynamoDB.
    • Moved index management out of database queries and into code.
  4. Senior Software Engineer · Mode Bank (Contract)

    Jan. 2021 – Jan. 2022 · London

    UK fintech app for buying Bitcoin, with Bitcoin cashback rewards and open banking payments.

    • Co-architected a greenfield open banking payments platform: microservices on Kubernetes on AWS, CQRS and event-driven patterns, Terraform and GitHub Actions.
    • Built real-time transaction monitoring on Timestream, Kinesis and Lambda to help spot money laundering and unusual activity.
    • Built an instant Bitcoin rewards feature that runs after each successful payment, driven by events and a rules engine.
    • Managed the platform's infrastructure as code with Terraform and Serverless, deployed through GitHub Actions.
  5. Principal Software Engineer · MyLife Digital

    Dec. 2019 – Jan. 2021 · Bath

    Consent management platform. Asked back six months after leaving, to lead engineering.

    • Tech lead and line manager for the engineering team. Coached engineers on programming practice and cloud architecture.
    • Owned the architecture of a distributed platform of 25+ microservices on GCP and AWS, using Pub/Sub, RabbitMQ, MongoDB and PostgreSQL.
    • Scaled permissions onboarding for 15+ million users by moving it to asynchronous processing. Set up Datadog APM, dashboards and alerting for service health.
    • Oversaw architecture, development and documentation for the platform's TypeScript services.
    • Improved platform efficiency by caching internal API calls in Redis.
    • Built embeddable widgets so customers could integrate with our APIs with little effort.
  6. Software Engineer / Solution Designer · NatWest Group

    May 2019 – Dec. 2019 · Bristol

    One of the UK's largest banking groups.

    • Solution designer for the web channel of one of the UK's largest commercial banking apps, working across countries, time zones and outsourced teams. Built authentication, authorisation, search and payments features.
    • Gave talks across the digital studio on functional React components, hooks and flux architecture.
    • Built a React component library in Storybook with automated end-to-end component tests.
    • Worked closely with UX and the product owner to keep complex banking journeys simple.
  7. Full Stack Engineer · MyLife Digital

    Oct. 2017 – May 2019 · Bath

    Consent and preference management platform for personal data.

    • Led the rollout of an Azure API gateway with authentication, rate limiting and analytics. Secured client apps with OAuth 2.0 and RBAC, and introduced TypeScript across the company.
    • Mentored junior engineers through one-to-ones and weekly workshops.
    • Ran weekly training sessions on programming techniques and new technologies for the engineering team.
    • Built event-driven communication between microservices on RabbitMQ and Azure Service Bus, and push notifications on Azure Functions.
    • Built the end-to-end test suite and worked with product on wireframes and prototypes.

Skills

Leadership
Hiring, coaching, performance reviews, goal setting, roadmap, incident response
Languages
TypeScript, Go, Python
Platform
AWS, GCP, Kubernetes, Terraform, Cloud Run, Lambda, SNS/SQS, NATS, Pub/Sub
Data
BigQuery, dbt, Cube, PostgreSQL, MongoDB, Redis, Neo4j
Identity
OAuth 2.0, Auth0, Stytch, RBAC, scoped multi-tenant access
AI
MCP servers and connectors, Claude integrations, agentic workflows

Education

University of Bath · BSc Computer Science, 2:1

2013 – 2017