Skip to content
yf_
← Work

RingTwice

Senior Full-Stack Engineer

2025 — Present

Modernising a Rails marketplace: a 500% gain on critical API endpoints, a migration to Rails 8, automated invoicing over Peppol, and AI woven into the day-to-day engineering loop.

500%
Performance improvement on critical API endpoints
Rails 8
Legacy architecture brought to current standards
E2E
Automated coverage across core user journeys

Making the critical path fast

The endpoints that carried the most traffic were also the slowest. Rather than reaching for infrastructure, I profiled the hot paths and went after the backend work directly: the query patterns, the serialisation, and the work being repeated per request.

The result was a 500% performance improvement on critical API endpoints: the same hardware, the same product surface, materially faster responses.

Bringing the architecture forward

A long-lived Rails application accumulates decisions that were reasonable at the time and are no longer. I migrated legacy code to modern Ruby on Rails 8 standards, modernising the application architecture rather than freezing it behind a compatibility layer.

Automating invoicing

Invoice generation was brought in-house and automated through the Invopop platform, with distribution handled over the Peppol network, the European standard for structured e-invoicing. What had been a manual step in the billing cycle became part of the system.

A QA tool that removes the setup tax

Testing a marketplace means reproducing states that are expensive to reach by hand: a user in a particular country, on a particular subscription, with a rating history and a payment record. Every manual test started with minutes of setup.

I built a comprehensive internal QA tool that simulates those states instantly, creating and manipulating the underlying records on demand. Testing scenarios that previously required manual construction became a single action, which changed how often they actually got tested.

Alongside it, I established fully automated end-to-end testing for the core user journeys, so the flows that matter most are verified on every change rather than on every release.

AI in the engineering loop

Two pieces of tooling, both aimed at developer time rather than product features:

  • Automated bug triage. Custom AI-driven workflows analyse incoming bug tickets and pull the relevant context from the logging and monitoring tools before a developer opens them. The investigation starts with the evidence already gathered, significantly reducing resolution time.
  • Automated code review. AI reviews run against every change to enforce project structure and coding standards consistently across the engineering team, keeping conventions from drifting without turning humans into linters.

Across the stack

Day to day, this is end-to-end feature work: Ruby on Rails on the backend, React on the web, and React Native on mobile, carrying the same features through every layer they touch.

Stack

  • Ruby on Rails 8
  • React
  • React Native
  • PostgreSQL
  • Invopop
  • Peppol
  • End-to-end testing
  • OpenAI