EdTech, Engineering case study

K-12 Education
SaaS.

One curriculum-aligned platform used by real schools: subject-mapped content, a quiz engine and AI performance insights, running against a production database of 995 schools.

Role
Full-stack + AI features
Client
AU education-tech company
Scale
995 schools / 12,495 users
Tools
.NET 9, Angular, PostgreSQL, MAUI

Scroll to watch it work. Or hold.

Feature 01Course variants
01 / One subject02 / Variants03 / Shared core04 / One school
variants 0/7

Biology is not one course.

Schools teach it as IB, AP, senior, stage 1 or 2, or units 1 to 4.

Seven syllabuses, seven trees.

Each variant has its own topic hierarchy, so content cannot simply be copied between them.

One engine underneath.

Every variant plugs into the same quiz engine and the same results pipeline.

Each school sees only its own.

A school licence decides which variants appear in its subject picker.

Feature 02Content tree
01 / Drill down02 / Scale03 / Assign04 / Offline
level 1/4

Unit, area, topic, sub-topic.

Content is four levels deep and opens one level at a time.

Hundreds of nodes, still instant.

Only the open branch is drawn, so a big subject stays fast and readable.

A quiz at any node.

Attach a Level 1 or Level 2 quiz to a whole unit or a single sub-topic.

Downloaded for bad wifi.

Licensed variants cache to the device, so a lesson survives a dropped school connection.

Feature 03Quiz engine
01 / Bank02 / Map03 / Types04 / Review

Hundreds of questions.

A long linear list stops working past a few dozen items.

A hex grid you can jump around.

Every question is one cell, coloured by status, so a teacher goes straight to it.

The question sets the control.

Single choice, multi select and short answer each get their own answer control.

Key and feedback in place.

Each question carries its answer key and the feedback students see.

Feature 04AI insights
01 / Results02 / Summarise03 / Honest zero04 / Send

Quiz results, every class.

Submissions and scores from six classes feed one fortnightly window.

The AI reads the numbers.

It drafts completion, topic accuracy and which class needs a nudge.

No data says so.

A class with no submissions reads no data yet, never a misleading 0 percent.

Preview, then email.

Teachers preview the summary in the app before it goes out on schedule.

Feature 05Production debugging
01 / Symptom02 / Rule out03 / Trace04 / Resolve
queued 0

9,800 emails, stuck.

A backlog builds while the sending job keeps reporting success.

Same bytes as tested.

Decompiling the shipped DLLs shows the build matches what passed testing.

Not the code. The provider.

The SMTP provider was silently rate limiting, so sends queued with no error.

The queue drains at its pace.

The sending code was never at fault, and the backlog clears at the provider limit.

Feature 06On the phone
01 / Laptop02 / Reflow03 / Phone04 / Answer

Built wide first.

The subject grid, lesson list and quiz sit side by side.

One column, not shrunk.

Tiles go two to a row and answer controls stack.

Same content, in reach.

One tap per step: pick a subject, open a lesson, start the quiz.

Marked as you tap.

Answer A turns mint and the bb cell in the Punnett square lights up.

course view
My subjectsGlossaryResultsSaved itemsQuiz hub?AK
SCIENCE 10 › Genetics › Inheritance patterns
Level 1Level 2TasksQuiz
Inheritance patterns
Dominant and recessive traits
Punnett squares
Sex-linked inheritance
Haploid and diploid cells
Genetic variation in a population
Mutation and its effects
Modelling a monohybrid cross
The topic tree on the left, the levelled lesson list on the right. Same subject, different curriculum, different tree underneath.
subject picker
My subjects?AK
Choose a subject
Biology
Units 3 & 4
Biology
Year 10
Chemistry
Units 1 & 2
Physics
Year 10
Biology
Year 11
Chemistry
Year 10
Forensics
Year 10
11 course variants downloadedOffline content ready
Every course variant a school has licensed, downloaded for offline use so a lesson survives a bad school connection.
quiz engine
My subjectsGlossaryResultsSaved itemsQuiz hub?AK
Genetics › Inheritance patterns › Level 1
Q1/10LEVEL 1
A recessive trait can appear in a child even when neither parent shows the trait.
TRUEFALSE
One question at a time, scoped to a level, with the question type driving which answer control is shown.
class insights
My subjectsGlossaryResultsSaved itemsQuiz hub?AK
Fortnight avg scoreFortnight to 21 Aug
72ON TRACK
Two classes finished the Genetics unit ahead of pace. Punnett squares is the weakest topic across all four groups, with the biggest gap in Class B.
Email this to my teachers
71%
AVG COMPLETION
Punnett squares
WEAKEST TOPIC
Class D
NEEDS A NUDGE
Class performanceFortnight to 21 Aug
ClassStudentsQuiz completionAvg
Class A · Science 102886%74
Class B · Science 102671%68
Class C · Biology 112492%81
Class D · Biology 112234%no data yet
Class E · Chemistry 102778%70
Class F · Physics 102564%66
Topic accuracy across all classes
Punnett squares48%
Sex-linked inheritance57%
Mutation and its effects63%
Dominant traits88%
Recent quiz activity
Class ALevel 2
Inheritance patterns
24/28 submitted
Class CLevel 1
Punnett squares
22/24 submitted
Class ELevel 1
Reaction rates
19/27 submitted
Class FLevel 2
Forces and motion
16/25 submitted
Subject breakdown · avg quiz score
All classes, this fortnight
Biology76
Chemistry69
Physics66
Forensics72
The fortnightly AI summary a teacher actually reads: completion, topic accuracy, and which class needs a nudge. Classes with no submissions say so rather than reporting a misleading zero.

An illustrated recreation of the product, not real screenshots. This is an NDA client engagement: the screens follow the real layout so the work is legible, while no product name, logo, school, teacher or student data is reproduced anywhere.

Read the full write-up
01Problem

One curriculum, a dozen course variants.

Schools don't all teach the same syllabus. A single subject like Biology needs separate content trees for different curricula, year levels and course types (IB, AP, senior, stage 1/2, units 1 to 4), each with its own topic hierarchy, while still sharing one quiz engine and one results pipeline underneath.

02Goal

18 features, shipped against a live production database.

This wasn't a greenfield build. It was 18 features delivered into an existing system already running for thousands of real teachers and students, where every change had to be verified against production data before it shipped, not just against a local seed database.

03Curriculum engine

Deep, navigable content trees.

Content is organised unit → area of study → topic → sub-topic, expandable per level, with quizzes assignable at any node. The tree has to stay fast and legible even when a single subject has hundreds of nodes across multiple curriculum variants.

04Quiz engine

A question bank that scales past hundreds of items.

The quiz review UI needed to stay usable at scale: a compact hex-grid question map so a teacher can jump straight to any question, full answer keys, and feedback text, without paging through a long linear list.

05AI feature

AI-generated performance insights, sent on a schedule.

One of three AI features on this engagement: a fortnightly class-performance summary generated from real quiz results and sent by email, with an in-app preview so a teacher can check the content before it goes out.

Production debugging, not just feature work

Two of the harder bugs on this engagement never touched a keyboard shortcut: decompiling shipped DLLs to prove a deploy was byte-identical to what was tested, and tracing a 9.8K-email backlog back to an SMTP provider's silent rate limit rather than a bug in the sending code.

06On the phone

The same content, reflowed for mobile.

Students open this on a school-issued tablet as often as a laptop. The subject grid, the lesson list and the quiz all reflow to a single column rather than being shrunk down.

My subjectsAK
Biology
Units 3 & 4
Biology
Year 10
Chemistry
Units 1 & 2
Physics
Year 10
Biology
Year 11
Chemistry
Year 10
Subject tiles, two to a row.
QuizAK
Genetics › Inheritance patterns › Level 1
Q1/10LEVEL 1
A recessive trait can appear in a child even when neither parent shows the trait.
TRUEFALSE
Answer controls stack instead of sitting side by side.
GeneticsAK
SCIENCE 10 › Genetics
Level 1Level 2Quiz
Inheritance patterns
Dominant and recessive traits
Punnett squares
Sex-linked inheritance
Haploid and diploid cells
Genetic variation in a population
Mutation and its effects
Modelling a monohybrid cross
The lesson list, full width.
07Outcome

Live, serving real schools.

All 18 features are live in production. The system now runs integration tests against isolated containers instead of a shared dev database, after a silently-rejected auth token bug made the case for it. The kind of fix that only shows up once you stop trusting the happy path.

Outcome in numbers: 995 schools on the live production system, 12,495 users on that system, 18 features shipped into it, 9,800 stuck emails traced to a silent SMTP rate limit.

Next case study
Content Automation Pipeline