Skip to content
Aidan Alsaadoun

Founding Engineer @ sprintworks · United Kingdom

Aidan AlsaadounFull-stack software engineer building products end-to-end.

From the React component to the API, the database and the AWS underneath, plus the pipeline that ships it. Seven years of production systems at Tombola, in the Civil Service and at Visa; now building sprintworks from zero as its Founding Engineer.

TypeScript · React · Node.js · Java · Go · AWS · PostgreSQL

At a glance

Previously
Visa · Civil Service · Tombola
Focus
Full-stack product engineering, backend and platform
Stack
TypeScript · React · Node.js · Java · Go · C++ · Rust · AWS · PostgreSQL
Also
Security-minded: BSc Cyber Security, PJPT, threat modelling
Based in
United Kingdom

Things I've built, and why they were hard.

Case studies with the engineering decisions behind them. Language, stars and last push are live from GitHub.

market-settlement-engine

Solo build, in a fortnight.

Settlement Engine

Event ingestion and on-chain/off-chain reconciliation for a Solidity prediction market.

A parimutuel market contract on Sepolia, plus a Go service that ingests the contract’s event logs into an append-only PostgreSQL ledger and continuously reconciles on-chain state against the database, alerting on any divergence.

Why it's interesting

Built to explore the correctness problems real-money trading platforms face: idempotent event ingestion, auditable state, and detecting drift between two systems of record.

What I built

  • Parimutuel yes/no market contract (createMarket, buy, resolve, claim) with Foundry lifecycle tests, deployed and verified on Sepolia. Checks-effects-interactions on claim, multiply-before-divide payout maths, call{value:} with the success flag checked.
  • A Go indexer where backfill and live tail are the same loop: each pass closes the gap between the last checkpoint and the safe head (latest − 6 confirmations), whether that gap is fifteen thousand blocks or five.
  • Idempotent ingestion keyed on (tx_hash, log_index) with ON CONFLICT DO NOTHING; the checkpoint advances only after every insert in a range succeeds, so a crash re-processes work instead of skipping it.
  • Event sourcing
  • Idempotency
  • Checkpointing & recovery
  • At-least-once delivery
  • Reconciliation
  • Confirmation depth
  • Fault injection
  • Re-entrancy safety
How an event becomes a verified row
  1. SettlementMarket.solSepolia · source of truth

    createMarket · buy · resolve · claim. Emits an event for every state change.

  2. Go indexerpolling loop

    Reads chunked block ranges up to latest − 6. The checkpoint advances only after every insert in a range succeeds.

  3. chain_eventsPostgreSQL · append-only ledger

    Idempotent insert: ON CONFLICT (tx_hash, log_index) DO NOTHING. Replaying any range is a no-op.

  4. foldderived, disposable

    Truncates and replays the ledger in chain order, in one transaction, into markets and positions.

  5. reconcilerreconciliation_runs · audit trail

    On-chain view calls vs off-chain SQL sums. Every comparison recorded; divergence raises an alert.

The contract’s pools and the database’s sums are two accounts of the same events, so they must always agree. The reconciler is the proof that they do.

ukdevjobs

Solo build. Zero runtime dependencies, by design.

ukdevjobs-cli

Search, filter, track and apply to UK developer jobs with salary data, from the terminal.

One search fans out to five job boards in parallel, normalises every listing into an annual GBP salary range, collapses duplicates across boards, and remembers what you have seen and applied to in a local SQLite database. The same search path is exposed as a CLI and as an MCP server.

Why it's interesting

A small tool with real integration problems: five APIs with five auth schemes and inconsistent schemas, free-text salary parsing, concurrency that must not let one failing board sink a search, and a wire protocol implemented from the spec.

  • API integration
  • Data normalisation
  • Concurrency & error isolation
  • Schema design & state machines

Python · SQLite · JSON-RPC / MCP · GitHub Actions · Docusaurus

Case study GitHubPythonStars: 1updated last month

gym-app

Solo build, in production at skyeapp.fit.

Skye

A gym companion app: log sessions, track progression, build the habit.

A mobile-first PWA for live workout logging with autosave, reusable templates and splits, a time-boxed workout generator, history and progression stats, and a seeded library of around 75 exercises.

Why it's interesting

A complete product owned end-to-end: schema, auth, API, UI, deployment and cost. It runs in production for about a pound a month.

What I built

  • Next.js 15 App Router with strict TypeScript and Tailwind v4, designed mobile-first with PWA install for a near-native feel.
  • Relational schema on Neon Postgres via Drizzle ORM and drizzle-kit migrations: exercises, workout_templates, template_exercises, sessions with snapshotted plans, and a sets_log of weight, reps, RPE and time.
  • Full-stack product ownership
  • Relational schema design
  • Authentication
  • PWA

Next.js 15 · TypeScript · Tailwind v4 · Neon Postgres · Drizzle · better-auth · Vercel · Resend

Case study GitHubskyeapp.fit TypeScriptStars: 1updated 2 months ago

Seven years of production systems.

Real-money games at Tombola, national-scale services in the Civil Service, payments at Visa, and now the first engineer at sprintworks.

  1. Current

    Nov 2024 - present

    Founding Engineer

    sprintworks · United Kingdom

    First engineer, building client products from zero on bi-weekly sprints: the architecture, the delivery habits and much of the code, from Next.js frontends through Go and Node.js services to AWS.

    TypeScript · Node.js · Go · Rust · React · Next.js · PostgreSQL · SQS · AWS · GitHub Actions · Sentry

  2. May 2024 - Nov 2024

    Senior Software Engineer

    Visa

    Payments infrastructure: led a greenfield Bank of England integration across multiple teams, built observability from scratch for a cross-border collections service, and mentored engineers on Java microservice standards.

    Java 17+ · Spring Boot · Microservices · Datadog

  3. Nov 2022 - May 2024

    Software Engineer

    Civil Service

    Event-driven Java, Go and Node.js microservices on Kafka and Kubernetes for national-scale programmes, with React and Next.js frontends built to GOV.UK accessibility standards.

    Java · Go · Node.js · React · Next.js · Kafka · Kubernetes · Grafana · Rust · C++

  4. Aug 2019 - Nov 2022

    Software Engineer

    Tombola

    Real-money games built end to end, React interfaces and their backend services, including leading a live game’s migration from Vue.js to React.

    React · Vue.js

Education & credentials

  • BSc (Hons) Cyber Security, First Class Honours

    University of Sunderland · 2022

  • AWS Certified Solutions Architect - Associate

    Amazon Web Services ·

    Verify
  • AWS Certified Developer - Associate

    Amazon Web Services ·

    Verify
  • PJPT: Practical Junior Penetration Tester

    TCM Security ·

    Verify
  • Career Development Mentorship

    MentorCruise ·

    Verify
All certifications

Three layers, one engineer.

Product & interface

The part people touch. Fast, accessible, and consistent at scale.

  • React & Next.js
  • Design systems & Storybook
  • Accessibility & Web Vitals

APIs & data

Typed contracts and schemas that stay sane as the product grows.

  • TypeScript, Java & Go services
  • REST, GraphQL & gRPC
  • PostgreSQL, DynamoDB & Kafka

Cloud & delivery

Ship it, then keep it boring. Alarms before users notice.

  • AWS (2× certified)
  • SST, CDK & Terraform
  • CI/CD, Kubernetes & observability

Security is part of how I build, not a separate hat.

I read cyber security at university, hold the PJPT, and the habit never left: I threat-model in the design review, not after the incident.

Security writing
  • BSc (Hons) Cyber Security, First Class Honours
  • STRIDE threat modelling in design reviews
  • Web application security with Burp Suite and PortSwigger Academy
  • PJPT: Practical Junior Penetration Tester (TCM Security)
  • Research writeups on shellcode obfuscation and AV evasion

The short version.

I'm the founding engineer at sprintworks, which means I own features the whole way down: Next.js and React at the top, Node and Go in the middle, AWS underneath. Before that: real-money games at Tombola, national-scale event-driven services in the Civil Service, and payments infrastructure at Visa. I like types that make bad states impossible and deploys boring enough for a Friday afternoon. I read cyber security at university and the habit never left: I threat-model in the design review, not after the incident. Lately: the correctness problems of systems that move money, on-chain and off.

aidan@dev-aidan.com
$ whoami
aidan · full-stack software engineer · united kingdom
$ cat now.txt
founding engineer @ sprintworks
focus: all things engineering!
$ ls side-projects/
market-settlement-engine  ukdevjobs  aws-profile-switcher  skye  skyerise

Pixel-art avatar
me, in 16×16 pixels. The rest of the site is the higher-resolution version.

Notes from the build.

Architecture calls, delivery habits and the occasional security writeup, written down while the lesson was fresh.

5 min read

Why working at a startup made me a better engineer

Owning products end to end, shipping daily, and living with the consequences of every trade-off, why I think every engineer should spend a couple of years at a startup.

startupcareerengineering
5 min readinfo

Masking Shellcode with IPv4

A technique for slipping shellcode past Windows Defender by encoding the bytes as IPv4 address strings, and how to put it back together at runtime.

securityshellcodeipv4
2 min read

Hello from the new site

A short note on rebuilding dev-aidan.com from scratch, what changed, what didn't, and why I'm off AWS.

metanextjsvercel

Wanna talk?

Questions about a project, a write-up, or how something here was built are always welcome. LinkedIn is the fastest way to reach me; GitHub if you'd rather read the code first.