← all systems
Edtech / School OS
ROLE // BACKEND SOFTWARE ENGINEER
Scholelabs logo

Scholelabs

Run an entire school from one platform: grading, enrolment, staff and communication.

NestJSFastifySequelize ORMBullMQRedisResendRailwaySentry
the problem

Schools across Nigeria run on fragmented spreadsheets and handwritten logs: slow, insecure and error-prone. A shared platform must serve many schools at once without any school ever seeing another's data.

the solution

Owned the backend of a multi-tenant school management platform through to launch. Wrote the REST APIs and domain services behind student grading, bulk enrolment, performance data and staff portal management, and enforced role-based access control across administrators, staff and student records.

the system

TypeScript on NestJS with Fastify, Sequelize over PostgreSQL, BullMQ workers on Redis for bulk operations, Resend for email, and Sentry telemetry. Tenant-scoping middleware isolates every institution's data. Deployed continuously on Railway.

the hard part

Tenant identity is resolved once per request and injected into every query scope, so cross-tenant reads are structurally impossible rather than guarded case by case. Bulk enrolment runs as prioritised BullMQ jobs with retry and dead-letter handling.

why this stack

NestJS gives enforceable module boundaries for a growing domain; Fastify keeps request overhead low; BullMQ moves slow bulk work off the request path so grading stays responsive.

the innovation

Onboarding a whole school in days: bulk enrolment, role-based portals and CRM messaging arrive as one product instead of a stack of tools.

the potential

A single operating system for schools of every size across Africa.

next system
Topnorch