FULL-STACK SOFTWARE ENGINEER
· London, UK

Ronnie Kiyegga

Full–Stack Engineer building operational systems, analytics platforms, and product infrastructure.

I design products in Figma, build them in TypeScript, and optimise them for production.

  • TypeScript
  • React
  • Next.js
  • Node
  • Docker
  • Figma
Numerix Theme, design preview
NUMERIX AI
Numerix, design preview
NUMERIX AI
Spree Clothing, design preview
SPREE CLOTHING
Student Files, design preview
EDUFEEDBACKPRO
Truefounders Choose, design preview
TRUEFOUNDERS
Truefounders Possibilities, design preview
TRUEFOUNDERS
Tutoring Path, design preview
MS MARYAM'S
MS MARYAM'S
Numerix Theme, design preview
NUMERIX AI
Numerix, design preview
NUMERIX AI
Spree Clothing, design preview
SPREE CLOTHING
Student Files, design preview
EDUFEEDBACKPRO
Truefounders Choose, design preview
TRUEFOUNDERS
Truefounders Possibilities, design preview
TRUEFOUNDERS
Tutoring Path, design preview
MS MARYAM'S
MS MARYAM'S
Bespoke Garments, design preview
BESPOKE GARMENTS
John Canary, design preview
JOHN CANARY
Tutoring Benefits, design preview
MS MARYAM'S
Tutoring Faq, design preview
MS MARYAM'S
Tutoring Lesson, design preview
MS MARYAM'S
Tutoring Testimonials, design preview
MS MARYAM'S
Bespoke Garments, design preview
BESPOKE GARMENTS
John Canary, design preview
JOHN CANARY
Tutoring Benefits, design preview
MS MARYAM'S
Tutoring Faq, design preview
MS MARYAM'S
Tutoring Lesson, design preview
MS MARYAM'S
Tutoring Testimonials, design preview
MS MARYAM'S
Things I've Built
ANALYTICS PLATFORM

EduFeedbackPro

Operational analytics platform for a 1,000+ student institution. Teachers needed answers in the five minutes between lessons, not after a weekly reporting meeting, so the architecture prioritised fast operational workflows over perfectly fresh reporting.

  • reports3min to <10sec
  • release10 to 5 days
  • 1,000+students
  • TypeScript
  • Next.js
  • PostgreSQL
  • BigQuery
  • SSE
  • Playwright
  • Docker
  • Redis
EduFeedbackPro
Student Analytics DashboardPerformance, risk signals, and cohort-level insights
Architectural Decisions

Postgres for ops state, BigQuery for reporting

Dashboard aggregations were degrading write latency during peak marking windows. Splitting the workloads bought predictable writes; reports became eventually consistent, usually within minutes, which teachers never noticed.

  • SSE over WebSockets

    Updates only flowed server to browser. SSE rides plain HTTP, survives school proxies, and reconnects natively; WebSockets would have added a second operational surface for bidirectional capability nothing used.

  • Capabilities over role hierarchy

    Staff responsibilities changed faster than job titles. Modelling permissions as capabilities made access changes data updates rather than code changes.

  • Inference moved on-device

    Server round-trips on 600+ low-spec iPads cost 2s per prediction. Moving model execution to TensorFlow.js in the browser cut it to 600ms and removed the network from the prediction path entirely.

API INFRASTRUCTURE

Subscription API

Subscription management API shaped around one rule: auth and validation run before any handler touches business logic. Transport, service layer, and persistence stay decoupled so billing routes stay stable as scopes grow.

  • RBAC scopes
  • Edge rate limits
  • Zod at the boundary
  • Node.js
  • Express
  • TypeScript
  • Prisma
  • Postgres
  • JWT
  • Zod
Subscription API
Auth boundaryJWT verification and request-level access control before handlers run
Architectural Decisions

Auth Boundary Before Handlers

JWT verification and request-level access control run in middleware so route handlers never assume trust. Failure modes stay consistent under load because unauthorized requests never reach service code.

  • Service Layer Over Fat Routes

    Subscription creation and billing writes sit behind a small, stable business layer. Routes stay thin; data access and domain rules live in one place when product requirements shift.

  • Schema Validation at the Edge

    Zod validates inputs before Prisma touches Postgres. Invalid payloads fail fast with predictable errors instead of leaking database exceptions to clients.

EDTECH PLATFORM

Ms Maryam's Maths

Solo-built B2C maths platform for GCSE and A-Level students. Owned end to end: Figma-validated workflows, marketing site, authenticated dashboard, six-course catalogue, and automated deployment on a self-hosted VPS.

  • deploy20+min to <3min
  • 6course types
  • CI/CDon every push
  • TypeScript
  • Next.js
  • Tailwind
  • Clerk
  • PostgreSQL
  • DigitalOcean
  • Nginx
  • GitHub Actions
Ms Maryam's Maths
Student Learning DashboardTrack progress, performance, and engagement across subjects
Architectural Decisions

Figma validation before code

Marketing sections and the course structure were validated in Figma before implementation, so build effort went into flows that had already survived design scrutiny rather than speculative UI.

  • Automated deploys over manual SSH

    GitHub Actions builds, transfers, and reloads PM2 behind Nginx on every push. Releases went from 20+ minutes of manual steps to under 3, repeatable by anyone.

  • Separate public from authenticated systems

    The marketing site and the learning platform deploy independently, so content changes never risk the authenticated application and each side evolves on its own release cadence.

  • One VPS, no Kubernetes

    Single-tenant product, single node. Docker and Nginx gave zero-downtime container swaps without a cluster to operate, and the scaling triggers that would change this are documented, not guessed at.

Writing

Engineering Notes

Engineering Decisions, Production notes on architecture, APIs, operational analytics, distributed systems, and the trade-offs behind the software I build.

Career

Work Experience

Jan 2026 – Present

Software EngineerIndependent Consultant| SaaS, Analytics & EdTech

Aug 2023 – Jan 2026

Software EngineerSchool Of Research Science

Jun 2020 – Aug 2023

Software EngineerIndependent Contractor(Clients: Spree Clothing, John Canary, SpotOnEnterprise)

Aug 2019 – Dec 2019

Software Engineer InternAdaptive