← Tunstall Healthcare

My professional role

Senior Software Engineer

Tunstall Healthcare · Aug 2022 — Present · United Kingdom · Remote

Who I am as an engineer, and what the work actually looks like. It splits roughly in half: setting technical direction, and staying close enough to the code to keep the bar high — because the moment you stop writing it, you start losing the feel for it. Below: what I own, a typical day, and the hard and soft skills behind it.

  • 01

    Technical direction

    I drive the modernization strategy across the connected-care portfolio — deciding what migrates, in what order, and how to keep every app shippable along the way. The call is mine to make and to defend.

  • 02

    Leading the .NET 10 migration

    I own the incremental, app-by-app move off end-of-life runtimes (.NET Framework 4.8, .NET Core 3) onto .NET 10 — prioritized by risk and business value, without ever freezing delivery.

  • 03

    Leading the Family App team

    I lead a 9-person team building the families companion app (React Native on a microservices backend) — the concept I pitched and prototyped that was voted #1 in the innovation sprint.

  • 04

    Architecture & code quality

    I make the architecture calls — microservices boundaries, async messaging, caching — review PRs with intent, and keep the bar on clean, well-tested, maintainable code.

  • 05

    Mentoring & influence

    I mentor engineers on the team and move initiatives forward by selling ideas internally and building consensus, rather than relying on a mandate.

  • 06

    AI-augmented delivery

    I fold AI tooling and agents into the workflow to move faster — delegating the mechanical, then reviewing and refactoring what comes back, so speed never costs us the fundamentals.

Not a clock — a rhythm. The shape of a typical day.

  1. Start of day

    Triage across timezones

    I catch up on async threads with the UK team, sweep the open PRs, and decide where my focus goes today — usually one deep-work block and whatever the team needs unblocked.

  2. Deep work

    On the migration

    A long, heads-down block on the .NET 10 migration: lifting an app off legacy, untangling dependencies, and keeping it green and shippable the whole way. This is the work that needs uninterrupted hours.

  3. The team

    Unblock, decide, pair

    Time with the Family App team — unblocking people, making an architecture call on the microservices or messaging side, and pairing when something is genuinely gnarly. Leading here is mostly removing friction.

  4. Craft

    Review and refactor

    Code review with intent — not rubber-stamping — refactoring, and making sure the tests carry their weight. Senior does not mean stepping away from the keyboard; I keep my hands in the code on purpose.

  5. Wind-down

    AI in the loop

    I lean on AI agents for the mechanical stretches, then review and reshape what they produce. The bet is simple: amplify craftsmanship, don’t outsource it.

The toolbox. The full, interlinked map lives at /knowledge.

  • Languages & platforms

    • C# / .NET — Framework → .NET 10
    • TypeScript
    • SQL
  • Web & mobile

    • Blazor
    • React
    • React Native
    • Angular
  • Architecture

    • Microservices
    • Domain-Driven Design
    • CQRS / MediatR
    • Event-driven (RabbitMQ)
    • Caching (Redis)
  • Data

    • SQL Server
    • Entity Framework
    • Dapper
  • Cloud & delivery

    • Azure
    • Docker
    • Azure DevOps
    • CI/CD
    • Testing & quality
  • AI-augmented engineering

    • Claude Code & agentic workflows
    • LLM-assisted delivery
    • MCP

How I work with people and problems — and the part that doesn't show in a stack list.

  • Technical leadership

    I set technical direction and lead a 9-person team — making the calls, then carrying people with me rather than dictating.

  • Influence without authority

    I move initiatives forward by pitching, prototyping and building consensus. The Family App started as an idea I sold internally, with no mandate to build it.

  • Client & stakeholder communication

    Years of requirements gathering, functional analysis and validation directly with clients — closing the gap between what was meant and what gets built.

  • Mentoring

    I help engineers grow through intentional code review and pairing — raising the bar without gatekeeping.

  • Ownership & initiative

    I take problems end-to-end and push for the right thing even when nobody asked me to.

  • Continuous learning

    I treat the craft like a language — practise it daily so fluency never fades — and stay ahead of where the industry is moving, AI included.