Summary
Backend engineer since 2008, now a tech lead building serverless platform services on AWS in TypeScript.
I design shared services that product teams build on, so each app doesn't have to solve auth, secrets or installation handling on its own. I apply Domain-Driven Design day to day, and in 2025 I wrote a short book about using it in serverless applications.
Before that I spent years on data pipelines, streaming and cloud migrations, mostly in Java and Scala.
Experience
-
Tech Lead · Appfire
Apr 2022 – present · 4 years 7 months
Tech lead for serverless platform services on AWS, used by multiple product apps.
- Built a shared, serverless key management service: apps authenticate through our common auth layer and get their keys for external services, without storing secrets
- Built an installation management service that tracks installs across products, stores their data and refreshes tokens, so apps don't have to
- Design serverless architectures in TypeScript with Lambda, API Gateway, DynamoDB, SQS, SNS and Step Functions
- Introduced Domain-Driven Design and Clean Architecture, cutting technical debt by around 20%
- Mentor a team of 6 developers on serverless design, testing and CI/CD
- Moved critical processing onto SQS queues so failures are retried instead of lost, improving reliability by around 25%
- All infrastructure defined in AWS CDK with automated tests in every pipeline; projects delivered around 15% ahead of schedule
-
Backend Software Engineer · Comalatech
Nov 2018 – Sept 2022 · 3 years 11 months
Apps for Atlassian Confluence. I worked on the Comala document management and workflow apps, among the most used on the Atlassian Marketplace.
- Built serverless APIs with Lambda, API Gateway and DynamoDB
- Part of the move from servers to serverless, which cut running costs by around 40%
- Connected services through SQS and SNS
- Pushed for automated tests on every change, which cut production bugs by around 25%
- New features and ongoing maintenance for the Comala workflow apps
-
Big Data / Backend Developer · Isetic
Feb 2018 – Nov 2018 · 10 months
Isetic built Zeus, a cloud platform that monitored industrial machines and predicted failures. The company closed in late 2018.
- Built a machine learning pipeline and API for anomaly detection on industrial IoT machines
- Designed distributed, multi-threaded Java processors fed by RabbitMQ and Amazon Kinesis, with Redis for shared state and caching
- Wrote a Java service that read data from PLCs, aggregated it and stored it in DynamoDB
- Built Spring Boot APIs, packaged with Docker and deployed on AWS container services
- Provisioned EC2 and Lambda with Ansible; CI/CD with Jenkins
- Unit and integration tests with JUnit and Cucumber
-
Big Data / Backend Developer · Ve Interactive / Ve Global
Jan 2016 – Feb 2018 · 2 years 2 months
Product recommendation APIs on Mesos/Marathon, backed by real-time processing with Apache Storm and HBase.
- Real-time pipeline with Storm and Kafka; downstream processing in Scala and Spark
- Recommendation APIs built with Spring Boot and Docker
- Service metrics collected in InfluxDB and Grafana for monitoring
- Unit and integration tests with JUnit and Cucumber, in a CI/CD pipeline
-
DevOps Engineer · Ve Interactive
Feb 2015 – Jan 2016 · 1 year
Moved the company's on-premise infrastructure to Azure.
- Migrated more than 400 machines to Azure
- Fully automated environments with Puppet and Azure Resource Manager templates
-
Software Developer · Deloitte
Jan 2013 – Feb 2015 · 2 years 2 months
Analysis and development of the Basque Government's environmental management platform, integrated with its e-administration platform, PLATEA.
- Java, EJB and JSP on WebSphere
-
Software Developer · Datinet
June 2008 – Jan 2013 · 4 years 8 months
Consultancy work in Java and C# for clients including Osakidetza (Basque Health Service), Liberty Seguros and Iberdrola.
- Java, EJB and JSP on WebSphere, with Oracle databases