Epic debugging challenges in ephemeral Linux sandboxes powered by Daytona
Boss Battles are CodeJam’s ultimate coding challenges. Fight epic debugging scenarios in real ephemeral Linux sandboxes where you diagnose memory leaks, fix infinite loops, and debug production incidents.
Boss Battles require completing prerequisite campaign nodes. You’ll need boss keys earned from challenges to unlock these encounters.
Boss Battles transform debugging into an esports experience. Instead of toy problems, you face realistic “Live Incidents” - production-style bugs running in actual Linux environments.
Real Sandboxes
Powered by Daytona, each battle runs in an ephemeral Linux container with full language runtime support.
Live Incidents
Debug memory leaks, race conditions, and performance bottlenecks like a production engineer.
Multi-Language
Supports Python, TypeScript, and JavaScript scenarios with full execution environments.
Session Persistence
Your work is saved. Resume boss battles across sessions.
Each Boss Battle presents a “Live Incident” - a production-style debugging scenario:
Memory Leak
Scenario: Your web app is consuming unbounded memory.Challenge: Identify the leaking closure or event listener and patch it.Languages: JavaScript, TypeScriptDifficulty: Advanced
Infinite Loop
Scenario: A background job is stuck in an infinite loop, blocking the main thread.Challenge: Identify the loop condition and fix the termination logic.Languages: Python, JavaScriptDifficulty: Intermediate
Race Condition
Scenario: Asynchronous operations are producing inconsistent results.Challenge: Debug the race condition using proper synchronization.Languages: Python (asyncio), JavaScript (Promises)Difficulty: Expert
Performance Bottleneck
Scenario: API responses are taking 10+ seconds.Challenge: Profile the code and optimize the O(n²) algorithm.Languages: Python, TypeScriptDifficulty: Advanced
Boss Battles require the DAYTONA_API_KEY environment variable to be configured on your Convex backend.
// From convex/daytona.ts:7-11const getDaytona = () => { const apiKey = process.env.DAYTONA_API_KEY; if (!apiKey) throw new Error("DAYTONA_API_KEY not configured"); return new Daytona({ apiKey });};