Five years shipping real-time systems, auth & RBAC architecture, e-commerce, and AI product frontends — React 19, Next.js 16, TypeScript, Convex.

Three products. One problem, solved three times. An optimistic message racing its own confirmation. Four browser tabs racing to refresh the same token. A classroom's four screens racing to agree on a vote count. Different systems, same fight — and the same fix: pick one source of truth, and make everything else answer to it.
A peer-to-peer marketplace built for live buyer–seller chat. The obvious version shows your message the instant you hit send, mirrors it back over the socket to confirm delivery, and swaps in whatever ID the server assigns once it lands.
Three versions of one message.
The temp ID is swapped for the real one, the echo is de-duped, and every consumer of the cache sees exactly one message, once.
Got it — see you at 3.
Got it — see you at 3.
Got it — see you at 3.
Every open tab of the admin dashboard holds its own copy of an expiring auth token. Left alone, an expiring token in four tabs means four races to refresh it — and whichever loses logs the others out from under them.
A Web Locks single-flight refresh makes every tab wait for one winner, then agree.
Student, instructor, projector, and admin — four surfaces of one question list. Wiring them together with sockets means four chances to disagree. Instead every surface subscribes to the same Convex reactive source, so there is nothing to keep in sync — consistency is a property of the data layer.





I'm Funsho Cornelius Olusumbo. I care about the parts of frontend people don't see — auth that never races, realtime that never stutters — as much as the parts they do. Currently a Web & Systems Engineer at Technocrat Technologies.
Besides shipping, I teach React at Pedagon Academy, where I designed the full 8-week curriculum — live coding, code reviews, and debugging alongside learners.