Work

Recent work, checked against real data.

Most of it is confidential, so the clients of the consultancy I work with are described rather than named. Outcomes are listed only where they were measured. If you hire me, the contract is with me directly.

International human rights NGO · via Relief Applications · 2026 Handed over

A payroll allocation platform, audited end to end.

Context

A timesheet and payroll allocation app, built by the consultancy’s team, that the client’s staff rely on to close each month. Its numbers had to match the client’s own workbooks.

What I did

  • Audited it end to end against the client’s files and fixed 17 defects.
  • Fixed controls that reported “compliant” on empty months.
  • Guarded closed months and deposited payroll against later imports.
  • Shipped staff requests: split allocations, Excel paste, multi-month uploads, part-time patterns.
  • Unblocked a stalled month-close traced across six layers of the app.
  • Wrote client updates in French, and handed over once the client ran it alone.

Outcome

  • December 2025 allocation matrix reproduced to the cent.
  • 219 of 222 cells of the coverage workbook matched.
  • 2025 payroll: 80 of 92 employees within one euro at first reconciliation; the remaining gaps traced and since fixed.
  • About 7% inflation of a year of one office’s payroll prevented.
  • €27,830 of unattached payroll cost flagged (8 people).
  • About 200 false budget overruns caught before deploy.
  • 3,138 lines and 1,342 columns checked in production: zero discrepancies.
Python / FlaskPostgreSQLReact pytest

Data quality and internal tools →

Humanitarian accreditation body · via Relief Applications · 2026

An AI usage policy built around the data.

Context

Consultants and auditors needed clear rules on what could go into AI tools, including their personal accounts.

What I did

  • Drafted the AI usage policy in eight sections, tied to what data leaves the account rather than which tool is used, with a green, amber and red table of what may be entered.
  • Set out the decisions that belong to leadership as “to decide” boxes, each with a suggested answer.
  • Revised the phishing-response guidance.
  • Compared options for connecting Claude to SharePoint and NAS document stores: permissions, client-folder separation, where data is processed.

Outcome

A draft with the client’s leadership for sign-off.

What the policy covers →

AI usage policyData protectionSecurity awareness

AI advisory and governance →

International institutions · via Relief Applications · 2026

AI readiness assessments for non-technical leadership.

Context

Institutions working in conservation, development and disaster-risk financing, asking where AI fits in their work.

What I did

  • Current-state audit.
  • Opportunity mapping.
  • Vendor comparison.
  • Recommendations written for non-technical leadership.

Outcome

Written recommendations for leadership.

Readiness assessmentVendor comparison
Ten Lives · regenerative community festival, Portugal · independent Onboarding pipeline in progress

Supplier data, from scattered to searchable.

Context

The supplier information the festival needed was spread across Portuguese directories.

What I did

  • Built a supplier scraping and enrichment pipeline across those directories.
  • Deduplicated the results and made them filterable by region, certification and category.
  • Started a volunteer onboarding pipeline for the same client.

Outcome

One deduplicated, filterable supplier list. The volunteer pipeline is still being built, so it has no outcome yet.

PythonGoogle Places API

Automation and data pipelines →

Rapidos.ai · Growth & Automation Advisor, contract · Aug 2025 to Jan 2026

Lead qualification and knowledge bases in n8n.

Context

An AI studio.

What I did

  • Designed automated knowledge bases and lead-qualification flows.
  • Translated business requirements into n8n workflows and internal AI agents.

Outcome

n8n workflows and internal AI agents. No metric was tracked.

n8nn8n AI agents
My own work · sample data, not client work Live demos

Seven operational dashboards, on synthetic data.

Context

Client work can’t be shown, so these show the shape of a dashboard engagement instead, on data generated by seeded scripts.

What I did

  • Seven dashboards, each reading a visitor’s own CSV or XLSX in the browser.
  • A Content-Security-Policy that stops them sending data anywhere, checked by an automated harness.
  • Published security, deployment and GDPR documentation.

Outcome

Open to anyone: open one and drop in your own file. It is read in your browser and sent nowhere.

JavaScriptChart.jsPython generators Content-Security-Policy

See the dashboards →

Earlier roles, from BI at Havas Media to operations automation at Shippr, are on the about page.

Something like this on your side?

A 30-minute call about one problem, free. If it isn’t something I should do, I’ll say so.