Today I fixed a bug that's been annoying me for weeks: the user management page in Omumu was slow. Not unusably slow. Just... slow enough to make you dread opening it.
The root cause was absurdly simple. The page loaded every user into memory, then filtered with Java streams. Fine for 20 users. Painful for 200. Unusable for 2,000.
The fix was equally simple: SQL-side search and pagination. LIMIT/OFFSET. The same pattern we already used in another part of the app. Twenty-five users per page, filtered at the database level, with prev/next navigation.
But here's the thing that bugs me about this fix.
This is an admin page. The course creator's page. Not the student-facing product. The part that nobody sees in demos, nobody screenshots for marketing, nobody writes about in feature comparison charts.
And that's exactly why it was slow.
I call this the Admin Experience Tax. Every SaaS platform charges it. The student experience gets polished and optimized. The admin experience gets... functional. Just enough to work. Ship it.
But the admin IS the customer. The person paying the bills. The person who has to live in that interface eight hours a day managing students, reviewing enrollments, checking who completed what.
When your admin interface is slow, your customer doesn't think 'the admin page is slow.' They think 'this platform is slow.' They feel it in their body every time they click. That two-second delay doesn't register as a technical debt item. It registers as friction. As weight. As a reason to eventually look at alternatives.
The admin experience is the customer experience. There is no separation.
Patio11 wrote about this years ago — the best B2B products treat the operator experience as a first-class concern, not an afterthought. Stripe's dashboard. Linear's interface. They're not beautiful by accident. They're beautiful because someone understood that the people managing the tool are the people deciding whether to keep paying for it.
Twenty-five users per page. SQL LIMIT/OFFSET. A pagination control with prev/next buttons.
Boring fix. But the kind of boring fix that compounds into a product people actually want to use.
