UK-based · Available for fixed-scope automation work

I build automation that survives real work.

AI-assisted workflows, browser automation and internal tools with the checks, logs and human handoffs businesses actually need.

A short description of the current steps is enough to start.

WORKFLOW / 0042READY TO RUN
01Intakeschema check
02Decideconfidence 0.62
03Reviewhuman boundary
04Actreceipt saved
READYDEMORun a sample request through the control layer
No customer data. No external action.

Selected work

Proof, not promises.

These are executable reference projects. Each one includes tests, documentation and the awkward failure cases a quick prototype normally ignores.

BrowserOps operator dashboard showing automation runs, completed actions and review items

Browser automation

Public reference build

BrowserOps

A Playwright service designed for websites without APIs. It handles expired sessions, duplicate prevention, retries, manual overrides and selector drift without pretending the browser is a reliable database.

Demo run: 2 replies saved · 1 advert renewed · protected work held for review

Problem

A browser-only workflow has sessions that expire, pages that change and actions that are unsafe to repeat.

Approach

A small control service tracks intent, evidence and outcomes around Playwright instead of treating the page as a source of truth.

Session recoverySelector-drift checksSafe retriesManual override
PythonPlaywrightFastAPISQLiteDocker
Inspect the repository
RelayOps dashboard showing review queues, workflow health and audit information

AI workflow operations

Locally verified reference

RelayOps

A human-reviewed operations console with an authenticated n8n intake path. It validates events, prevents duplicate work and reconciles uncertain outcomes before allowing a retry.

63 Python tests · 8 Node checks · 94% coverage · 14/14 live n8n cases

Problem

Operational events arrive through different channels, but uncertain model output cannot be allowed to trigger quiet, irreversible actions.

Approach

A pinned n8n 2.32.6 reference workflow handles transport and authentication. RelayOps keeps the business rules, idempotency, human review and durable audit trail.

Authenticated n8n intakeReconcile before retryHuman review gatesIdempotent actions
n8nFastAPIPydanticWebhooksSQLite
Inspect the repository
NextRole review queue showing explainable job fit, eligibility and confidence

Job discovery and decision support

Private working build

NextRole

A private job-review assistant that pulls permitted listings from Adzuna and Jooble, removes duplicates, applies explainable eligibility and fit checks, and keeps every shortlist or dismissal decision with the user.

42 passing tests · 83% application coverage · desktop and mobile checks passed

Problem

Job searches create a noisy queue, while opaque scores can hide missing evidence and waste time on roles that were never eligible.

Approach

NextRole separates track, eligibility, fit, preferences and confidence. Optional AI compares requirements with approved evidence, while Python keeps control of the final score and recommendation.

Permitted API sourcesHuman decisionsBudget-capped AIImmutable history
PythonFastAPISQLAlchemyOpenRouterPostgreSQL-ready
Discuss a similar build

Research automation

Opportunity Monitor

Collects, validates and deduplicates opportunities while retaining every source and isolating broken collectors.

4 raw records → 3 canonical results · 15 tests

Inspect the repository

Research and controls

Paper Trading Lab

A safety-first Python workspace for backtests, monitoring and paper-order rehearsals—deliberately blocked from live trading.

Dry-run default · audit trails · explicit kill-switch gates

Inspect the repository

What I build

Useful systems with boringly good controls.

The aim is not to add AI everywhere. It is to remove repetitive work without creating a new problem for the people operating it.

01

Remove repeat copy-and-paste

I map the real process first, then automate the repetitive handoffs with visible failure states and a route back to a person.

02

Keep uncertain AI under review

Structured outputs, confidence thresholds and approval steps stop uncertain model output from quietly becoming an action.

03

Connect APIs and browser-only systems

I use APIs where they exist and Playwright where they do not. Either way, the system records what happened and avoids repeating work.

How I work

A small first step, then evidence.

You should be able to see what is being built, where it can fail and how we will decide that the work is complete.

01

Map the real workflow

We identify the repetitive steps, the awkward exceptions and the points where a person still needs to decide.

02

Build a bounded first version

The first milestone proves the riskiest integration with sample data, clear acceptance checks and no hidden production leap.

03

Test the failure paths

Retries, duplicate events, missing data and uncertain output are exercised before the workflow is trusted.

04

Document the handover

You get an operating guide, visible logs and a clear route for changing the system later.

About

Business context first. Code second.

I’m Lewis Mander, a Business Economics graduate from Lancaster University who builds practical automation systems in Python.

That background shapes how I approach technical work: start with the process, find the costly handoffs and make the result easy for someone else to operate. I’m most useful where business rules, messy data and software integrations meet.

Lewis Mander
Lewis ManderUK-based automation developerAvailable for remote, fixed-scope work

Working principles

  • Fail loudly when a source stops returning data
  • Keep risky or ambiguous work in human review
  • Make retries safe with durable idempotency
  • Leave the next developer a clear runbook
EducationBSc Business EconomicsLancaster University

Start a conversation

Have a workflow that is still held together by copy and paste?

Send me the current steps, the systems involved and what keeps going wrong. I’ll suggest a sensible first milestone.