Jordan Mackie

Senior full-stack product engineer who loves building reliable systems for regulated, high-stakes domains, to solve real user problems and build powerful, trustworthy tools.

Download PDFUpdated

Summary

I am a senior software engineer with 12 years of experience building products, nearly three of them in clinical trials at Lindus Health, where a defect reaches patients and regulators. I build software to be exhaustive and reliable: typed end to end, tested against the cases that actually happen, and designed with the people who will use it under pressure.

I take pride in owning entire systems from discovery to operation. I have run research with clinicians and site staff, written the specifications, shipped the systems and owned them in production, including founding the team that answers when a live study breaks. Over the past year, I have lifted our entire company's productivity by designing AI-native workflows that have enabled everyone to contribute productively to the application, and removing engineering as a bottleneck. Designers are able to ship production ready UI, PMs are able to prototype and explore ideas within a real environment and iterate in minutes rather than days, ultimately allowing everyone to focus on what really matters: that our software does what it does safely and correctly, every time.

I want to work on systems where correctness is the product: energy, climate, scientific tooling, and safety-critical software. To prepare me for this goal, I'm solving a real-world problem using tools and systems that make it easy to do things correctly. CatMaps aims to be a missing pet finder, with user safety and system reliability as core tenets rather than afterthoughts.

Skills

Research
  • User research
  • Feature discovery
  • Gap analysis
  • Regulatory research
  • Data analysis
  • Resourcing
  • Project management
Design
  • Specification writing
  • Domain modelling
  • API design
  • Design systems
  • Risk assessment
Build
  • TypeScript
  • React
  • React Native
  • Node.js
  • PostgreSQL
  • Python
  • Django
  • Rust
  • LLM integration
  • Java
  • Spring
Test
  • Vitest
  • Playwright
  • Visual regression
  • Accessibility (WCAG)
  • i18n
  • Storybook
  • Invariant testing
  • CI
Validate
  • Good Clinical Practice
  • 21 CFR Part 11
  • ICH E6(R3)
  • EMA Annex 11
  • MHRA GxP data integrity
  • ALCOA++
  • GDPR
  • Audit trails
  • E-signatures
  • LLM safety
  • Security
Operate
  • AWS
  • Terraform
  • Docker
  • GitHub Actions
  • Incident response
  • Linux
  • Sentry
  • Monitoring
  • Alerting
Collaboration
  • Workshops
  • Lectures
  • Teambuilding
  • Mentoring
  • Positive vibe

Experience

Senior Software Engineer

– Present

Clinical trials software: the platform doctors, clinic staff, statisticians and participants run a study on, where a bug can stop a drug reaching market.

Enabling AI-Native Workflows

read the blog post
Outcome
Enabled rapid prototyping, removed engineering as a bottleneck, and increased fidelity of prototypes which now serve as handover documents from PMs and designers.
Feature
Isolated UI from application concerns, with well defined guidance utilising strict rubrics to construct human readable and near-production ready prototype code with LLMs without engineering input.
Approach
Researched into front-end architecture patterns and led workshops to understand existing designer workflows to build something that is familiar to the user but far more powerful.

The Fire Team

Outcome
Roughly 85 production escalations answered across more than 25 live studies, with the team’s own workload shrinking as the causes went away.
Feature
Alerting to proactively address failures, and self-serve flows for issues driven by functionality gaps.
Difficulty
Urgent work crowds out fixes that would stop it recurring, and so required careful prioritisation and constant context switching.
Approach
Assembled and led nine incredible people across engineering and deployment, working alongside study teams to prioritise rather than behind a ticket queue.

Serious Medical Event Reporting

Outcome
Doctors and clinic staff report serious events well inside the regulatory deadlines, ensuring trials ran safely.
Feature
The adverse event reporting workflow, with layers of permissions and escalation protocols, bolstered by an AI-assisted coding against MedDRA.
Difficulty
Incredibly high risk: an unaccounted for path could result in death, or a dangerous drug progressing into larger scale trials. Therefore every state the workflow could reach had to be defined and tested exhaustively.
Approach
Flow-charted every transition we should expect, then built it so the types carry those states - a later refactor cannot be made without addressing all existing state transitions.

Correcting Participant-Reported Data

Outcome
Two hours a day of support-team time recovered, and moved the audit trail into the platform.
Feature
A request-and-approval flow for changing participant datapoints, recording the reason and the approver against the change as per regulatory requirements.
Difficulty
Less the engineering than everything around it: the regulatory case, the rollout and the comms, and winning development time for a problem I had raised alongside other work. Clinicians are trained to scrutinise, and a tool that edits their data has to earn its way past that.
Approach
Wrote the proposal, designed the approval step as one engine other trial workflows could plug into, and phased it so two days of work removed a third of the overhead before any migration.

Form-Level Monitoring

Outcome
Turned source data verification from an improvised manual process into a codified, configurable platform feature. It's been a factor in winning new business, and returning sponsors now expect it as standard.
Feature
Configurable risk-based monitoring to determine responses that require human scrutiny, clearly logged for audits and is able to respond to later edits and queries.
Difficulty
It had to reach a study that was already running, where a data migration is a risk nobody wants to take.
Approach
Extended existing study state predicate engine rather than a bespoke module, and made risk-based sampling select deterministically with no stored state.

The Form Engine

Outcome
The slowest edits on a large complex form went from seconds to milliseconds, and submission went from minutes to seconds, with no feature loss.
Feature
The platform’s most complex and most used feature: the form. Derived values, chains of conditional questions, cross-form validation, drafts, per-field permissions, repeating groups, and much more.
Difficulty
No off-the-shelf form library supported everything we need, and provided the guarantees for state we would rely on. Sharing form logic with the server for submission validation also required a novel implementation.
Approach
Research and measurement of existing and proposed solutions rather than instinct, and applying isolation of concerns and invariant testing to guarantee system correctness and performance.

CFR Part 11 Compliant E-signatures

Outcome
No expensive vendor lock-in, and a fully flexible compliant model for E-Signatures that can be applied to any aspect of the trial lifecycle.
Feature
Four properties holding at once: authentication, non-repudiation, an unbreakable link to the signed content, and a timestamp carrying date, time and time zone. Used for PI attestation on patient consent, and more use cases anticipated.
Difficulty
Implementation has to hold up to intense regulatory scrutiny. Future write paths to data attested by signatures risk violating our compliance.
Approach
Regulatory research before designing the schema, domain logic and public API end to end. Signatures are append-only so intrinsically auditable, and validity is recomputed on every read from the data covered rather than stored and potentially made stale.

Participant diaries

Outcome
Fewer support issues out of live studies, and clinicians can autonomously keep participants on protocol.
Feature
Studies are designed to handle deviations due to participant behaviour, but there's always unforeseen edge cases. This project added schedule management tooling to the UI that previously required engineers to hand-edit data through admin portals in an inconsistent and risky manner.
Difficulty
Studies are designed against a timeline, and defining how to recover that timeline in a broadly applicable manner required a careful understanding of all the scenarios that had occurred or could be preempted.
Approach
Collating all previous support requests, and designing the tooling with trial coordinators directly involved allowed us to gain trust in the solution and scope it correctly.

Standardised Self-Serve Data Exports

Outcome
Statisticians and data teams went from waiting on an engineer to assemble each dataset by hand to analysing a study in near-real time, so problems surface immediately rather than weeks later.
Feature
An automated, standardised dataset derived from the platform’s own data.
Difficulty
Agreeing the standard itself, and handling studies whose schedule changes version by version underneath it.
Approach
Built on the industry's existing data standards (CDISC's SDTM) rather than inventing one, with our own additions where they fell short, and made every recorded value addressable so a dataset is derived rather than assembled.

Visual review in CI

Outcome
Releases stopped finishing in a scramble to repair missed paths during final QA.
Feature
A component change surfaces everything it alters across the application, and a designer approves it before it reaches main.
Difficulty
Visual QA was a treadmill where each fix broke an earlier one, and nobody saw it until release. Vendor solutions fell short in practice.
Approach
Diagnosed it as a feedback problem rather than a care problem, and moved the feedback in front of the merge. A curated pipeline of regression tooling allowed us to build a review workflow that aligned with our way of working

Spreading the Joy (of React)

Outcome
Inspired other engineers and raised our code quality across engineering.
Approach
Turned instinct into deeper understanding by completing Josh Comeau's Joy of React course, and relayed the content as interactive workshops to the rest of engineering.

Inspiring health and positivity

Outcome
Founded the Lindus running club, whose social runs raise money for charity and are among the best-attended events of the year.

Full Stack Software Engineer

–

Collaborative 3D design software for VR and desktop, used by enterprise design teams.

  • Led a multi-discipline product team from ideation to delivery of a set of enterprise features the largest customers depended on.
  • Worked directly with high-profile customers to integrate the product with their security infrastructure (single sign-on and access control).
  • Established the team's coding practices to mitigate technical debt proactively and keep the user in view.
  • Collaborated with UX designers and researchers to solve user pains with low-effort, high-value solutions.
  • Led hiring and designed the interview loop that built a team of dedicated front-end engineers.
  • Researched and prototyped candidate features using AI and 3D graphics technologies.

Graduate Engineer

–
  • Improved download-time estimates for a widely used playtest distribution tool using fine-grained analytics.
  • Parallelised IO and network tasks, greatly reducing execution time.

Software Intern

–

Tech Intern

–
Imagine Software

Lead Backend Engineer

–
AMNiiS

First Foundry Summer Analyst

–

Projects

CatMaps

– Present

catmaps.me

An app for reuniting lost pets with their owners. Photograph an animal you have seen on the street and it will be matched against the animals reported missing nearby. Also a testing ground for building AI-assisted development workflows that reliably produce high quality correct code.

  • Rust backend and a React Native app, chosen to learn systems programming on a product with real stakes for its users.
  • Currently in the process of being deployed to the app store.
  • Exhaustively testable by design, through the use of minimal state, and expressing logic as a series of deterministic finite state machines.
  • User safety and joy is core to the product philosophy.

Jordan's Campsite

– Present

jordanscamp.site

This site: a fun personal platform to express myself on the web.

  • A creative outlet and testing ground for ideas, and a home for blogs to inspire and share my experience.
  • Inspired by interactive click and point video games (Firewatch, Undertale, to name a couple), where interactions are designed to encourage exploration and pleasantly reward with surprise.

Unconventional Chess

–

github.com/TheDuckGoesQuark/UnconventionalChess

My Masters dissertation: a chess game where every piece is its own agent, and the team argues out loud, in English, over which move to play.

  • One agent per piece, each with a personality whose underlying values score every candidate move. Agents propose, justify, counter-propose and compromise, and only the piece under discussion may move, so the conversation is what decides the game.
  • No central planner: the agents reach one shared decision per turn purely by message passing, while the set of participants changes underneath them as pieces are captured.
  • Every message carries both its English surface form and structured fields for the intent behind it, so agents disagree on the data rather than by parsing each other's prose.
  • Built on JADE following the FIPA interaction protocols, with a token-passing speaker election over a conversation state machine keeping the agents in step.
  • Evaluated twice over: every agent move scored against Stockfish across five games, and a questionnaire adapted from the Game Engagement Questionnaire.

Education

MSci Computer Science, First Class

–
  • Machine learning, regression: cleansed and processed real-world data to produce a regression model, and evaluated its performance.
  • Machine learning, classification: evaluated classification models using CART and gradient descent algorithms.
  • Networking: developed a zone-based routed protocol for IoT devices using a locator-identifier address scheme.
  • Distributed systems: implemented a three-tier distributed token-ring social network with failure recovery.
  • Signal analysis: researched image compression, and determined a person's heart rate from video.
  • Computer graphics: experimented with shading and projection methods to model faces with OpenGL.
  • Data ethics: performed critical analysis of GDPR and the DPIA process with reference to case studies.
  • Physics and mathematics: a joint Computer Science and Physics degree before specialising - mechanics, thermodynamics, waves and optics, gravitation, quantum phenomena and special relativity, with multivariate calculus, complex numbers and matrices.

Commendations

A selection of shout-outs from colleagues across engineering, design, clinical operations, and leadership.

We tested it LIVE in a real monitoring visit together and it is so so nice. The CRA team thanks you 1000x over — this will absolutely improve our ability to deliver trials faster as we are able to monitor and track data so much more efficiently.

A clinical research lead, on form-level monitoring

… running a hands-on workshop for PMs and Designers to be able to contribute to the [platform’s] code base directly, empowering us to make small fixes, whilst ensuring guardrails are in place so we don’t do anything silly.

A product designer, on the AI-native workflows

You bring clarity to the chaos and keep things moving when it matters most … This week has been our busiest in the past 12 months and we’ve managed to keep on top of things despite being down an engineer.

The lead of the incident response team

I thought I would have to do a scary manual process; instead it took 5 minutes and automatically verified the state was correct afterwards.

An engineer, on a migration written to run itself

This was a chonky one so great work getting it in. Any follow up is super clearly documented and I think we’re in a really good place.

An engineer, on the study-rule refactor

… organising the Jumpstart 5k event (and smashing it with his run time). And to everyone for the great team spirit.

A product designer, on the running club