About me
Hello! I'm Tom, a Principal Software Engineer and Software Architect at Medidata, a Dassault Systèmes company, based in London. I build reliable systems for problems where getting the money and the data right really matters.
I lead engineering and architecture across four core teams in Clinical Trial Financial Management, working on payments, distributed systems, analytics and platform modernisation. I stay hands-on, so the technical direction I set is grounded in what it takes to build and run the systems.
I work closely with product and engineering leadership to understand the problems we're solving and shape how we deliver them. I enjoy sharing what I learn: I helped establish a Scala guild at Medidata, have spoken at London Scala meetups, and have delivered training across Medidata's R&D department.
Selected work
Across my roles at Medidata.
-
Patient and site payments
I lead architecture and engineering for both product suites, coordinating delivery across teams and services and integrating third-party payment systems, so sites and patients get paid accurately and on time.
-
Event-driven pipelines
Designed and built a resilient, self-healing pipeline that processes large batches from the data warehouse and streams the results through a multi-stage process. Each stage consumes events and emits new ones until the required results are generated, with strong data correctness guarantees throughout. Workers scale out to handle high throughput, and the pipeline recovers from failures without manual intervention.
-
Patient mobile integration
Led integration with myMedidata, giving patients one place to manage payment preferences and tax information and to see what they'll be paid and when.
-
Reporting and modernisation
Built a unified Snowflake reporting platform across financial management products. Led legacy product migrations onto the Medidata platform and broke monoliths into smaller, more scalable components.
-
Engineering practices and AI
Helped streamline the software development lifecycle to deliver faster, and prototyped an early GraphQL API. I'm currently working on AI-based extraction of data from clinical sites' PDF invoices to cut down payment administration.
Experience
Medidata
A Dassault Systèmes company · London · Feb 2018–Present
-
Principal Software Engineer
Apr 2024–Present -
Senior Staff Software Engineer
Apr 2022–Apr 2024 -
Staff Application Engineer
Feb 2020–Apr 2022 -
Senior Application Engineer
Feb 2018–Feb 2020
IBM
Hursley, Winchester · Nov 2014–Jan 2018
-
Software Engineer
Nov 2015–Jan 2018 -
Graduate Software Engineer
Nov 2014–Nov 2015
M4 Systems
South Wales · Intern · 2012 & 2013
Education
Swansea University
2014
MEng Computer Science · First-class Honours
Technical expertise
- Architecture
- Product and solution architecture, distributed systems, payments, legacy modernisation, data and analytics
- Languages
- Scala (primary), TypeScript, Java, Python, C
- Frontend
- React, TypeScript
- Cloud and infrastructure
- AWS, Kubernetes, Helm, Terraform, Linux
- Messaging, data and APIs
- Kafka, Amazon SQS, PostgreSQL, Redis, Snowflake, Apache Iceberg, GraphQL, REST, RPC