Teminife ObafemiBackend engineer · Nairobi

One backend for four frontends

JobStash runs four frontends on a single NestJS backend-for-frontend. I have been its only backend engineer since 2023.

Click an app to load a page, then turn on data loaders and caching and watch the database queries drop.

4 frontends

1 backend

Backend for frontendCache: savedCache: reused

Database

Knowledge graph
Group the 16 small lookups into 2Reuse a recent answer for the next app

Each page load, illustrative numbers

App asks
1
Database queries
17
Rough wait
~240 ms

App 1 loaded a page of 8 jobs. The backend looked up each job's company and tags one at a time: 17queries.

Each app asks the backend once per page, and the backend does the talking to the database. The example page and its numbers are made up to show the shape. The real backend serves four separate frontends and has held 99.9% across 250 endpoints.

I designed the that four frontends build against, in NestJS and TypeScript. It serves 150,000 monthly active users at roughly 500ms p99 and has held 99.9% across 250 endpoints.

I made the case for observability, built the pipelines, and led root-cause work when things broke.

Neo4j or Postgres

I ran the evaluation for moving our Neo4j store to PostgreSQL, query by query: which questions a graph answers cheaply, and which a relational model does.