Work

12 assignments,
and one recurring theme.

Retail, manufacturing, telecoms, fintech, insurance and public statistics, across Sweden, Denmark, Australia and Sri Lanka. Nearly all of it comes down to the same thing: something important is trapped in a system nobody wants to touch, and it needs to come out safely.

I describe clients rather than naming them. Naming who you worked for is a habit I would rather not have. If you need specifics for a hiring conversation, just ask.

The route here

How a mobile developer ends up doing AI.

  1. 2015 to 2018

    Software engineering

    Mobile and desktop applications for an insurer. Learned to ship, and learned that the data these apps produced was nobody’s job to look after.

  2. 2018 to 2020

    Data engineering

    Moved into the pipelines. ETL, warehousing, and the unglamorous plumbing that decides whether anyone can answer a question.

  3. 2020 to 2022

    Machine learning

    Built and deployed predictive models, including real-time scoring that ran during a live customer conversation.

  4. 2022 to 2024

    Data science

    Led data science verticals. Forecasting, anomaly detection, and cloud migrations at telco and retail scale.

  5. 2024 to now

    AI development

    Retrieval and agent systems on governed data, conversational analytics, and the architecture underneath them.

Assignments

Client work, most recent first.

Global home furnishing retailer

Current

Tech Lead, Data Engineering

Supply chain · Dec 2025 to present

via Knowit

Leading the retirement of a legacy Oracle estate and rebuilding the downstream logic on a Databricks lakehouse with a medallion architecture. Reconstructing the Silver layer in Databricks and dbt, writing tested SQL workflows, and reconciling old against new until the business trusts the numbers enough to switch the old system off.

DatabricksUnity CatalogdbtAWSOracle

Global home furnishing retailer

AI Engineer

Transport logistics · May 2025 to Nov 2025

via Knowit

Built a production conversational analytics agent and put it inside Microsoft Teams, so a global organisation could ask questions of transport logistics data without knowing SQL. Designed the Gold layer with materialised views and PySpark pipelines, and tuned answer quality through prompt engineering and semantic modelling.

Databricks GeniePySparkMicrosoft TeamsPrompt engineering

Sweden’s largest wood products manufacturer

Senior Data Engineer

Manufacturing · Dec 2024 to Nov 2025

via Knowit

Data integration and platform modernisation on Microsoft Fabric. Migrated legacy SSIS transformations to materialised lake views, built sustainability fact tables in PySpark, and rebuilt the ERP ingestion with dynamic range partitioning and incremental loading.

Microsoft FabricSSISERPAzure Data Factory

Nordic national statistics agency

Data Engineering Consultant

Public sector · Apr 2025

via Knowit

Hands-on consultancy with an internal engineering team: unpicking integration problems, clearing ETL bottlenecks, and coaching them through the practices that stop the same blockers returning.

GovernanceOptimisationCoaching

International hotel group

Senior Data Engineer

Hospitality · May 2024 to Dec 2024

via H One

Replaced a manual extraction process with engineered pipelines, turning hand-operated reporting into automated workflows and cutting how long management waited for their numbers.

Microsoft FabricPower BIDAXAutomation

Large diversified conglomerate

AI Engineer

Financial reporting · May 2024 to Jul 2024

via H One

A generative AI assistant for interrogating annual reports in natural language. Azure infrastructure, React front end, retrieval-augmented and agentic architecture over financial documents.

RAGAgentic systemsAzureReact

Leading mobile payment platform

Associate Tech Lead, Data Engineering

Fintech · Mar 2023 to Mar 2024

via Axiata Digital Labs

Migrated a national mobile payments platform from on-premises infrastructure to AWS, and built the pipelines behind real-time transaction monitoring and anomaly detection for fraud prevention.

AWSGlueNeo4jPostgreSQLAnomaly detection

Southeast Asian telecoms group

Senior Data Engineer

Telecoms · Aug 2023 to Mar 2024

via Axiata Digital Labs

Automated audit and compliance reporting that had been assembled by hand, moving on-premises sources to cloud and feeding the analytics layer from scheduled pipelines.

DatabricksLakeflowETLQlik

Multi-cloud cost platform

Senior Data Engineer

Telecoms · Mar 2023 to Aug 2023

via Axiata Digital Labs

Aggregated spend across four cloud providers into a central lakehouse and forecast it with predictive models, so cost management could happen before the invoice arrived.

Machine learningForecastingMulti-cloud

Automotive parts catalogue

Senior Data Engineer

Automotive · Jun 2022 to Jan 2023

via 3rive Technologies

Pipelines behind one of Australia’s largest spare-parts catalogues, handling large unstructured datasets of vehicle identification numbers and part specifications.

AWSSageMakerS3

Retail distribution network

Data Scientist & Data Engineer

Retail · Jan 2023 to Mar 2023

via 3rive Technologies

Regional sales analytics and demand forecasting, modelling store-level performance so inventory planning could stop being guesswork.

ForecastingPythonSQLDocker

Life insurer

Data Engineer, then Data Scientist

Insurance · Apr 2016 to Jun 2022

via Softlogic Life

Six years building an insurer’s data infrastructure: actuarial and financial datasets, database integration for extraction and cleaning, and a real-time churn model that let advisers see customer lifetime value during the first consultation.

DatabricksAzure MLSQLPrediction

Off the clock

Small systems that run without me.

Running daily

Job-hunt pipeline

Six job boards scraped each morning, deduped against a database, every new posting scored against a CV by a language model, then delivered as one grouped email. If the model is unavailable the posting still goes through, flagged for a human, because a missed job is worse than a missed score.

PythonAzure SQLAzure OpenAIGitHub Actions
Running every 2h

Housing watcher

Three housing platforms polled through the day, hard-filtered down to the places actually worth applying for, alerted exactly once each. The filtering is the valuable part, because most listings are unwinnable and saying so saves the reader the trip.

PythonGeo-filteringAzure SQL
Shipped

This site

A static site deployed from GitHub on every push. No CMS, no database, no monthly bill, and a console you can actually type into.

AstroAzureGitHub Actions