Over the past few months, I've been working on a project called CodeComplex (live at codecomplex.site). It started with a simple observation: while platforms like LeetCode and HackerRank are great for learning algorithms, practicing solo in a static editor often lacks the urgency and pressure of real engineering scenarios like debugging broken legacy code or pairing under a deadline.
I wanted to build a platform that makes competitive coding feel dynamic, interactive, and closer to real-world development.
Here is a breakdown of what CodeComplex is, the engineering challenges I faced building it, and how it works under the hood.
CodeComplex is a real-time competitive coding platform where developers can challenge each other or practice solo across multiple battle arenas:
Building a real-time execution platform requires juggling low-latency sockets, secure sandboxing, and resilient state management. Here are a few key architectural decisions:
Running untrusted user code safely is the biggest challenge for any online judge.
Matches run on a strict countdown timer with instant score broadcasts:
$max
-style updates) so lower scoring attempts never overwrite higher team achievements.We also built CodeComplex to be discoverable and usable by AI coding agents:
`/.well-known/mcp/server-card.json`
.`/.well-known/api-catalog`
), OAuth metadata (`/.well-known/oauth-protected-resource`
), and Markdown content negotiation (Accept: text/markdown
) are standard across the site.Building CodeComplex taught me that developer experience in competitive tools comes down to speed and clarity:
CodeComplex is live at ** codecomplex.site**.
Whether you want to test your speed in 1v1 DSA battles, fix bugs under a timer, or try a solo practice round, I'd love for you to check it out and share your feedback!
What feature do you find most useful when practicing coding online? Let me know in the comments below.