One platform serving multiple schools: a shared global question repository, live timed exams
with per-click autosave, role-separated administration, and analytics for both students and
institutions — later extended into a public B2C practice platform with live
payments, on the same engine. I went in never having deployed anything to production.
I came out owning all of it.
CASE 01
Owned deployment from zero
First production deploy failed in an environment-config cascade — missing DB connection
string, wrong S3 credentials, each error masking the next. Built a strict environment
checklist that became the platform's permanent deployment runbook.
CASE 02
Fixed a real concurrency crisis
MySQL connection pool exhaustion under concurrent student submissions — cascading request
failures mid-exam. Diagnosed the root cause, introduced gevent async workers with a
dynamically managed pool; later moved production serving to waitress as the platform matured.
CASE 03
Multi-tenant isolation, stated honestly
Per-school data isolation enforced at the route layer — every tenant-scoped route checks
school_id before the query runs. That's route-level discipline, not schema-level
enforcement; pushing the check into the model layer is the named next hardening step.
CASE 04
Global question repository with live-sync
A shared question corrected once propagates to every school's exam at query time — no
fan-out writes. Schools can still override marks locally: the override is scoped to one
school's exam and never touches the master.
CASE 05
Delta-payload autosave engine
Click-triggered saves send only the single answer that changed — not the full exam state.
Third iteration of the design, after timer-based polling and full-array saves. Enables Lazy
Finalization: auto-scoring from the last recorded click-state when a connection drops.
CASE 06
Caught an identifier design flaw
Student IDs embedded class level as a static string — a promoted student would keep a stale
ID forever. Caught after real students had already been assigned IDs; migrated existing
records to a class-agnostic scheme (school code + scoped sequence).
CASE 07
CSV bulk import, done safely
Schema validation before any write, duplicate detection via a normalized composite key
(text / class / subject / chapter / options), and row-level error reporting — good rows
insert, bad rows come back with reasons. No silent failures, no total rollback.
CASE 08
Cohort-level school analytics
Institution-wide view added recently, distinct from the earlier student-facing analytics:
mean, median and distribution stats, subject heatmaps, question-level miss rates — computed
once at result-release and cached server-side.
CASE 09
Extended into a public B2C platform
Self-registration, exam-field selection (NEET, JEE, UPSC, banking), and live Razorpay
payments — order creation, signature verification, subscriptions — reusing the same question
repository and exam engine underneath. No rebuild.