A competitive programming platform featuring real-time matchmaking, Glicko-2 ratings, and a highly polished interactive learning engine.

The Motivation
I have a deep interest in competitive programming, but when I was learning advanced algorithms, I noticed a recurring problem: the resources were plentiful, but they were rarely structured or interactive.
I wanted to build a platform that didn't just dump walls of text on the user. CodeMortem 2.0 was designed to bridge this gap by combining interactive, structured learning modules with the thrill of real-time 1v1 algorithmic duels.
Core Features


Learning Engine
Lessons in CodeMortem are not standard text. I built a custom RichLessonPrimitives system to teach complex concepts like Segment Trees or Heavy-Light Decomposition.
Content is authored in specialized blocks supporting diagrams, code, and callouts (insights, warnings). I also wrote a custom markdown parser that dynamically handles syntax like base^exp to correctly render math superscripts directly inside React components using KaTeX.
Module Highlights

Architecture
The platform demands extreme speed for live duels. The backend is written in Go 1.26 using the Fiber framework, which provides a massive performance boost and a low memory footprint.
Real-time communication is handled by gofiber/contrib/websocket. The system is containerized with Docker, utilizing PostgreSQL for persistent storage and Redis for caching, session management, and fast matchmaking queues.
Infrastructure
Tech Stack