Jan Mátl

Class

Class

ReactReact
Node.jsNode.js
TypeScript
Material UI
View project

The next-generation virtual classroom for learning & development — live instructor-led experiences built for Zoom and Microsoft Teams, with deep LMS integration.

Full Stack Engineer · Full-time · November 2023 – Present · Remote

Idea

Class turns Zoom and Microsoft Teams into a real virtual classroom — not another generic meeting with a shared screen. The product spans the full class lifecycle. Before: LMS sync, course templates, and persistent rooms so instructors are not rebuilding the same session every week. During: engagement tools embedded in the live experience, breakout monitoring, and real-time analytics so facilitators can actually see what is happening. After: interactive recordings and insights on participation and retention. That loop is what L&D teams in business, government, higher ed, and K-12 need when live instructor-led training has to feel like a classroom, not a webinar.

Implementation

I joined Class as a full-stack engineer on the virtual classroom product — React and TypeScript with Material UI on the front end, Node.js services behind it — shipping features that have to hold up while a live class is running. Day to day I own feature slices end to end: UI in the classroom and admin surfaces, the API contracts those screens depend on, and the edge cases around live session state. A lot of the work sits at integration seams. Pre-class flows have to stay aligned with LMS data, reusable course templates, and persistent room setup so instructors are not rebuilding the same session every week. In-session tooling has to feel immediate — engagement surfaces, breakout visibility, and live signals facilitators can act on without leaving the classroom. Post-class work turns what happened in the session into recordings and participation insights that feed back into the same L&D workflow. Reliability during a live class is the real constraint. When something breaks mid-session, facilitators and learners feel it immediately, so I spend time on consistent state, sensible failure modes, and keeping Zoom / Teams and LMS integrations coherent instead of three disconnected products glued together. Stack-wise it is a modern TypeScript full-stack codebase: component-heavy React interfaces, Node services, and the usual production concerns around third-party seams and data that has to stay consistent before, during, and after class.