Software Engineering

Software Engineer → Product

Before product, I built software. That background still shapes how I scope work, spot risk early, and work closely with engineers to solve the right problems.

Engineering Roots

MSc Computer Science

Postgraduate study in software engineering, data systems and intelligent systems.

  • Built production-ready applications and client-server systems.
  • Developed database-driven software.
  • Research explored how behavioural prompts influence decision making.

Early engineering role

Built internal systems across sports operations and advertising technology.

  • Supported the iFAS platform used by Premier League & Football League clubs during transfer windows.
  • Built tools supporting campaigns across Google, Meta and major social platforms.
  • Migrated legacy integrations to improve reliability.

BBC Graduate Scheme

Completed the BBC's Software Engineering Graduate Scheme across recommendations, elections coverage and short-form video.

  • Built tooling for the Universal Recommendations engine.
  • Supported live elections coverage and homepage tooling.
  • Delivered high-traffic public experiences.

Global Experience

Vietnam

Vietnam

Taught maths and science in Ho Chi Minh City while coordinating with school leadership, teaching assistants and parents.

Tanzania

Tanzania

Supported small business and entrepreneurship initiatives through community programmes.

Technical Foundation

MSc Computer Science - Distinction

University of Birmingham

This programme strengthened my technical depth and shaped how I approach complex systems and product design.

Core areas

  • Software engineering principles, system architecture and maintainable code design
  • Artificial intelligence, data structures and statistical methods
  • Database design, data modelling and query optimisation
  • Human-computer interaction and evaluation methods

Practical work

  • Built a health app exploring whether defining meal healthiness influences food choices
  • Developed a collaborative client-server game with authentication and chat functionality
  • Produced a 17,000-word research dissertation combining behavioural science and software design

Technical toolkit: Java • SQL • R • XML • client-server architecture • data modelling • statistical analysis

How this shapes my product work

I go to the source

I read the docs, inspect the data and sanity-check assumptions before committing.

I design for maintainability

I avoid quick fixes that become permanent support costs.

I translate complexity

Engineers get clarity. Stakeholders get the why.

I understand the system before changing it

I map dependencies, constraints and failure points before proposing solutions.

I balance speed with long-term cost

Shipping fast matters, but not if it creates permanent complexity.

I design with real users in mind

Technical decisions only matter if they improve real workflows and outcomes.