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 production systems in fintech, banking and commerce.

At GoPlaces I hired the team, set how it works and led the platform build, including MCP connectors the whole company now uses through Claude and our own agents. Strongest in backend and distributed systems, 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, and none have left.
    • Set how the team works and who owns what: candid feedback, high expectations on quality, goal setting and performance reviews, and every piece of work tied to a business goal. I agree priorities with the product director, and used our own data to show the leadership team where tech can lift performance.
    • Coached one of the senior engineers through to Principal Engineer. Architecture decisions and the team's technical leadership now sit with that role.
    • Led the build of the whole platform: 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 say monthly client reporting now takes about six hours instead of over a week, routine data tasks 15 minutes instead of an hour, and that they save one to two hours a day at peak 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, which is why 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.
    • Work directly with TikTok's API teams in China on access, approvals and API changes, eight hours apart.
    • Run production with Grafana and Cloud Monitoring dashboards, every infrastructure change applied from a reviewed Terraform plan, and incident response that starts with a diagnosis: GCP alerts post to Slack and trigger an AI workflow that reads the logs, writes up what happened and suggests immediate and longer-term fixes for whoever is on call.
    • Replaced spreadsheet-run live shopping operations with a purpose-built service and console covering bookings, crew availability and shift cover.
    • Built the connectors to be harness-agnostic. The same MCP tools and permissions serve Claude, Soma and whatever we add next.
    • Led the move of analytics and internal tools from AWS to GCP.
    • 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.
    • 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.
  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 the 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.
    • Made the product configurable per client. Matching and payment rules follow each buyer and supplier's contract, and onboarding a new client needs no code.
    • Monitored the services with Grafana dashboards and alerts.
    • 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 on Kubernetes and AWS, event-driven with CQRS, with all infrastructure as code.
    • 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 system design, cloud architecture and writing code others can maintain.
    • Owned the architecture of a distributed platform of 25+ microservices on GCP and AWS, using Pub/Sub, RabbitMQ, MongoDB and PostgreSQL.
    • Scaled onboarding to handle permissions 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 the group's commercial banking app, working across countries, time zones and outsourced teams. Built authentication, authorisation, search and payments features.
    • Gave talks across the digital studio on systems architecture, bringing other teams onto our patterns.
    • 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 tools, agent auth and tenancy, semantic layers, self-hosted agents

Education

University of Bath · BSc Computer Science, 2:1

2013 – 2017