This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend.
What I Built
A friend of mine regularly practices DSA and kept running into the same problem:
"I often get stuck deciding which DSA topic to study next and spend too much time searching for the right problems. I also struggle to understand why my solution is wrong when practising."
The problem wasn't a lack of solutions. There are already plenty of platforms that can give you the answer.
The problem was getting unstuck without immediately being handed the answer.
So I built AlgoBuddy — Your DSA Problem-Solving Mentor.
The core idea is simple:
Think first. Hint second. Solution last.
Instead of acting like another answer generator, AlgoBuddy is designed to behave more like a mentor.
It currently has three main modes:
Problem Mode
Paste a DSA problem and work through it step by step.
AlgoBuddy guides the learner through:
- Understanding the constraints
- Thinking about a brute-force approach
- Identifying the underlying pattern
- Progressive hints
- Optimized approach
- Time and space complexity
- Full solution only when the learner asks for it
The hints become progressively stronger:
Nudge → Hint → Strong Hint → Explain → Show Solution
The goal is to help the learner discover the solution rather than simply copy it.
Concept Mode
Concept Mode is designed for DSA revision.
Instead of only defining a topic, AlgoBuddy focuses on:
- What the concept means
- When to recognize it
- Common patterns
- Complexity
- Common mistakes
- Practice questions
Code Mode
Paste your own code and ask AlgoBuddy to mentor you through it.
It can help identify:
- Correctness issues
- Time complexity
- Space complexity
- Bottlenecks
- Optimisation opportunities
Again, the mentor tries to guide the learner before revealing a complete solution.
Demo
Try AlgoBuddy here:
https://algo-buddy-gamma.vercel.app
The deployed version uses real AI-powered mentoring with Google Gemma 3 12B Instruct.

AlgoBuddy's landing page — a focused DSA mentor built around three modes: Problem Solving, Concept Learning, and Code Optimisation.

Problem Mode in action — Gemma guides the learner through the problem instead of immediately revealing the solution.

Concept Mode — structured DSA revision with recognition triggers, patterns, complexity, common traps, and mentor guidance.
Code
The complete project is open source:
https://github.com/hrishu802/AlgoBuddy
The project is built with:
- React
- Vite
- TypeScript
- Tailwind CSS
- Vercel
- Hugging Face Inference Providers
- Google Gemma 3 12B Instruct
The AI integration is kept behind a server-side /api/gemma endpoint so the Hugging Face token is never exposed to the browser.
How I Built It
The core AI model powering AlgoBuddy is Google Gemma 3 12B Instruct, an open-weight model served through Hugging Face Inference Providers.
The architecture is intentionally simple:
User
↓
React + TypeScript Frontend
↓
Vercel /api/gemma
↓
Hugging Face Inference Providers
↓
Google Gemma 3 12B Instruct
↓
Mentor Response
The interesting part isn't just connecting a model to a chat interface.
I wanted the AI to follow a specific teaching philosophy.
AlgoBuddy uses a dedicated pedagogical system prompt built around:
Think first. Hint second. Solution last.
Instead of immediately giving the learner a solution, the mentor is designed to ask questions, explore the constraints, and provide progressively stronger hints.
For example, when a learner says:
"I don't know how to solve this. Don't give me the solution yet."
The mentor starts by asking about the constraints and how the learner might approach the problem manually.
This makes the interaction feel more like tutoring than a traditional chatbot.
I also kept the AI layer modular, so the model or inference provider can be changed without rebuilding the entire application.
For this project, I chose hosted Gemma inference rather than local inference so I could deploy the complete experience quickly.
Why Does Open Innovation Matter?
Open-weight AI makes it possible to build applications where the model and the experience around it can be customized rather than treating a closed API as a black box.
For AlgoBuddy, that matters because the goal isn't simply to generate an answer.
It's to control how the AI teaches.
The pedagogical system, progressive hinting, problem flow, and learning experience are all designed specifically for DSA education.
Using an open-weight model also gives the project room to evolve:
- Different Gemma models can be tested
- Inference providers can be changed
- Local inference can be explored
- The mentoring behavior can be further customized
- The experience can eventually become more personalized
For this version, Gemma 3 12B Instruct provides the conversational capability needed for the mentoring experience while keeping the project centered around an open-weight model.
Building for a Real Friend
After building the first version, I gave it to the friend I originally built it for.
Their feedback was especially useful because it wasn't just about whether the app worked.
They said:
"The interface feels simple and focused on learning. I liked having guidance instead of jumping between multiple websites."
They also found the structured learning experience useful:
"The structured recommendations and explanations helped me understand concepts faster. The topic-wise organisation made it easier to track progress."
But they also pointed out something I hadn't focused on enough:
"Some buttons/features weren't immediately obvious. I wasn't always sure what to do next after finishing a problem. More onboarding would help."
That is now one of the clearest areas I want to improve.
They also requested:
- Personalised study plans
- Company-wise problem lists
- Mock interview mode
- Contest reminders
- Better personalised recommendations
- Continued progress tracking
Most importantly, they said:
"Yes, especially if it consistently recommends the right problems and tracks my progress. I would use it alongside LeetCode rather than as a complete replacement."
That last point is important to me.
AlgoBuddy isn't trying to replace platforms like LeetCode.
It's meant to sit alongside them as the mentor that helps you understand what you're doing and why you're doing it.
What I Learned
The biggest lesson from this project was that building for one person changes how you make product decisions.
Instead of asking:
"What features can I add?"
I started asking:
"What would actually help my friend get unstuck?"
That led me away from building another giant DSA platform and toward a smaller, more focused experience.
I also learned that adding AI to an application isn't enough.
The interesting engineering challenge is designing the interaction around the model.
For AlgoBuddy, that meant deciding:
- When should the AI ask a question?
- When should it provide a hint?
- How strong should that hint be?
- When should it explain a concept?
- When should it finally show the solution?
Those decisions are what turn a general-purpose model into a more focused learning tool.
Prize Category
Best Use of Gemma
I'm entering Best Use of Gemma because Google Gemma 3 12B Instruct is the core model powering AlgoBuddy's mentoring experience.
Rather than using Gemma as a generic chatbot, I built a teaching workflow around it that prioritises guided problem-solving over immediately generating solutions.
What's Next
The next version of AlgoBuddy would focus heavily on personalisation.
Some of the ideas from my friend's feedback include:
- Personalised DSA study plans
- Smarter problem recommendations
- Company-wise problem sets
- Mock interview mode
- Contest reminders
- Better onboarding
- More detailed learning analytics
The goal remains the same:
Don't just get the answer. Learn how to find it.
Links
Live Demo:
https://algo-buddy-gamma.vercel.app
GitHub:
https://github.com/hrishu802/AlgoBuddy
Thanks for checking out AlgoBuddy!
Top comments (0)