Inspiration

Coding interview anxiety is real many developers struggle with live coding under pressure. I wanted to create a safe, judgment-free space where users could practice with an encouraging AI guide before facing real interviews.

What it does

Spark pairs users with an AI guide for real-time coding practice sessions where they solve LeetCode-style problems, receive progressive hints when stuck, and get instant feedback on test cases. Problems unlock progressively as users complete them, building confidence and skills throughout their learning journey.

How we built it

I built Spark as a full-stack application combining Next.js 15 with Monaco editor for a smooth code writing experience on the frontend, LiveKit for WebRTC-based real-time voice interaction, LangGraph for orchestrating the interview workflow and hint system, and Judge0 API for running and testing user code across multiple languages. The Python FastAPI backend coordinates the entire experience, enabling seamless synchronization between voice, code execution, and test feedback in real-time.

Challenges we ran into

Coordinating voice streaming, code state, execution results, and hint delivery across multiple systems required careful timing and state management to keep everything in sync without latency issues. The biggest UX challenge was tuning the AI to provide genuinely helpful guidance without spoiling the solution, requiring me to balance between being too vague and too direct. Achieving natural conversational flow over WebRTC also required significant optimization and careful handling of network variability to keep voice interaction feeling fluid.

Accomplishments that we're proud of

I built a genuinely conversational AI guide that feels like mentoring from a real senior engineer rather than a scripted chatbot, with a hint system using progressive leveling that actually helps users think through problems independently. The progressive unlock system creates a satisfying learning curve, and the real-time test feedback loop gives instant validation of solutions—something that's missing from many practice platforms.

What we learned

I discovered that framing and tone are crucial in educational tools, as how feedback is delivered dramatically impacts whether users feel supported or judged. WebRTC adds complexity, but it unlocks a level of natural interaction that text-based interfaces can't achieve, making the effort worthwhile. Getting an AI to be helpful without being a tutor requires very careful prompt engineering and iterative refinement based on real user interactions.

What's next for Spark

I'm expanding the problem library across all difficulty levels with domain-specific categories, adding performance analytics to track user progress and improvement over time, and exploring mobile support to bring voice-based coding practice to mobile devices. I also want to build collaborative features enabling friends to practice problems together in real-time, full mock interview experiences with time constraints and multiple problems, and comprehensive analytics to help users identify and work on their weakest areas.

Built With

Share this project:

Updates

Submission history