Software engineer. Interested in functional programming, open-source software and tech for good. A single-page PDF of this CV is available here.
Systems interests
- Distributed system design and cloud-based automation.
- Data modelling, databases and content management.
- Solutions architecture.
Programming interests
- Functional programming, Scala and Typelevel.
- Functional and OOP software design.
- Unit testing techniques.
Experience
Sep. 2023 - Present — EPFL: Blue Brain Project, Geneva
Software Engineer
Currently working on Nexus Delta, an open-source service for knowledge graph management applied to the simulation neuroscience domain.
Tech Stack. Scala | Typelevel | PostgreSQL | Elasticsearch | Blazegraph | Docker | Kubernetes | AWS
Dec. 2018 - Aug. 2023 — ITV, London
Senior Scala Engineer
Developed distributed systems supporting various ITV products such as ITV News, ITVX and sites for various programmes.
Tech Stack. Scala | Typelevel | PureScript | GraphQL | REST | Kafka | PostgreSQL | Elasticsearch | Redis | DynamoDB | Docker | Kubernetes | Prometheus | AWS
Libraries. Cats | Cats Effect | http4s | grackle | natchez | circe | doobie | skunk | elastic4s | ciris | decline | scalacheck | munit | weaver
Process. Agile delivery | Kanban | Trello | Jira | CI/CD | Jenkins | Github Actions
Delivered Projects:
- Developed data models and backend APIs to deliver news on ITVX.
- Built and maintained integrations with third parties such as Stripe, Google Analytics, Brightcove, Contentful, Monterosa, Press Association, Facebook News, Apple News and Bing.
- In-housed the ITV News website and mobile app from a third party.
- Migrated 500k archived articles into Contentful CMS (ETL-style).
- Developed data models for managing articles and site curation.
- Built backend APIs from scratch to support frontend apps.
- In-housed ITV programme sites.
- Migrated thousands of articles across ~50 ITV shows.
- Built an integration between our website CMS and our app CMS.
Dec. 2017 - Dec. 2018 — Football Radar, London
Software Engineer
Football Radar perform statistical analysis on data collected from football matches and generate real-time predictions based on the models. I was part of the modelling team, working closely with data scientists to understand and implement algorithms to improve our predictive models.
Tech Stack. Scala | FP | OOP | Finagle | Akka | Thrift | Kafka | Redis | MySQL | Docker | Mesos | AWS
Process. Kanban | Trello | CI/CD | Phabricator | Jenkins
Sep. 2015 - Dec. 2017 — Fidessa, London
Full-Stack Developer
Developed enterprise investment management systems for financial institutions. Specifically we built native .NET frontend applications and C++ microservices.
Tech Stack. C# | .NET | C++ | OOP | TDD | Mocking | SQL Server | Oracle DB | Jenkins | Self-hosting
Process. Waterfall | Scrum1 | Jira | Subversion | Jenkins | CruiseControl
Education
2017 - 2022 — University of Oxford
M.Sc. in Software Engineering (part-time) — Distinction
A flexible part-time course designed for software professionals. Initially joined with the goal of filling my most obvious knowledge gaps. This was broadly successful and the course played a big part in guiding my technical interests.
Dissertation: Comprehending Pure Functional Effect Systems
Keywords: Haskell, Scala, Functional Programming, Effects, Design Patterns, Monads, Extensible Effects.
Mark: 80.
Course Highlights:
- Functional programming in Haskell and Erlang.
- Embedded systems in C.
- Cloud computing, big data and database design.
- Formal verification of concurrent, distributed systems.
- Deep Learning.
- Software security principles.
2012 - 2015 — University of Warwick
B.Sc. in Mathematics — First-class Honours
-
Yes, somehow both Waterfall and Scrum at the same time. A classic attempt at an “Agile Transformation” and not a particularly successful one; at least during my tenure. ↩