<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Deepak</title>
    <description>The latest articles on DEV Community by Deepak (@deepak-).</description>
    <link>https://dev.to/deepak-</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3813231%2F5d8c4d67-f129-4392-b6d5-98cc38201201.png</url>
      <title>DEV Community: Deepak</title>
      <link>https://dev.to/deepak-</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/deepak-"/>
    <language>en</language>
    <item>
      <title>Debug For Competitive Programming 🐛</title>
      <dc:creator>Deepak</dc:creator>
      <pubDate>Sat, 11 Jul 2026 03:50:13 +0000</pubDate>
      <link>https://dev.to/deepak-/debug-for-competitive-programming-197o</link>
      <guid>https://dev.to/deepak-/debug-for-competitive-programming-197o</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-07-09"&gt;Weekend Challenge: Passion Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Debug App
&lt;/h1&gt;

&lt;h2&gt;
  
  
  An AI-powered differential debugger for competitive programming
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;Debug App&lt;/strong&gt; from a very real frustration I face while solving coding problems.&lt;/p&gt;

&lt;p&gt;Imagine this: you are solving a problem on Codeforces or a similar platform. You write your code, test it on the sample inputs given in the statement, and everything looks fine. You submit with confidence… and the verdict comes back: &lt;strong&gt;Wrong Answer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Now the actual struggle begins.&lt;/p&gt;

&lt;p&gt;Your code is failing on some hidden internal testcase, but you do not know which one. At the same time, your friend solved the same problem and got &lt;strong&gt;Accepted&lt;/strong&gt;, so you know the issue is somewhere in your logic. The next step is debugging — and debugging itself is not the problem. In fact, debugging is an important part of learning. The difficult part is finding a &lt;strong&gt;good testcase&lt;/strong&gt; that actually exposes the bug.&lt;/p&gt;

&lt;p&gt;Sometimes that testcase is easy to spot. But many times, especially in competitive programming, the bug appears only on a very specific edge case: a corner condition, a duplicate-heavy input, a boundary value, a strange ordering, or a case that you simply did not think of. Finding that one failing input can take much longer than expected.&lt;/p&gt;

&lt;p&gt;So naturally, the next idea is: “why not ask AI for a failing testcase?”&lt;/p&gt;

&lt;p&gt;That sounds good in theory, but in practice, normal AI often struggles here. It may confidently suggest a testcase, but when you actually run the code on that input, both versions produce the same output. Then when you tell it that the testcase does not fail, it responds with something like: &lt;em&gt;“You are right, let me give another testcase.”&lt;/em&gt; At that point, the weakness becomes obvious: the model is guessing, not verifying.&lt;/p&gt;

&lt;p&gt;That is exactly why I built &lt;strong&gt;Debug App&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of only &lt;em&gt;suggesting&lt;/em&gt; what might fail, Debug App takes a stronger approach: it &lt;strong&gt;tests both codes, checks whether the outputs actually differ, confirms the failing testcase, and only then moves to diagnosis&lt;/strong&gt;. The goal is to turn debugging from a guessing game into a verified workflow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkam8kjr2kimqp9sat2sy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkam8kjr2kimqp9sat2sy.png" alt=" " width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://debug-app-inky.vercel.app/" rel="noopener noreferrer"&gt;https://debug-app-inky.vercel.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/DeepakReddy08K/debug-app/" rel="noopener noreferrer"&gt;https://github.com/DeepakReddy08K/debug-app/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Debug App is an &lt;strong&gt;AI-powered differential debugger&lt;/strong&gt; for competitive programming.&lt;/p&gt;

&lt;p&gt;The core idea is simple: if one solution is buggy and another correct solution is accepted, then there must exist some input on which they behave differently. So instead of asking AI to “just guess the bug,” I built a system that uses both &lt;strong&gt;reasoning&lt;/strong&gt; and &lt;strong&gt;verification&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The user pastes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;their buggy code&lt;/li&gt;
&lt;li&gt;a correct reference solution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From there, the app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;detects the programming language&lt;/li&gt;
&lt;li&gt;analyzes the problem structure&lt;/li&gt;
&lt;li&gt;checks for syntax issues&lt;/li&gt;
&lt;li&gt;generates adversarial or edge-case inputs&lt;/li&gt;
&lt;li&gt;runs both codes on those testcases&lt;/li&gt;
&lt;li&gt;compares the outputs&lt;/li&gt;
&lt;li&gt;identifies an actual failing testcase&lt;/li&gt;
&lt;li&gt;explains the likely bug and suggests a fix&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app also includes a custom single-test runner, AI chat for debugging follow-ups, and full debug history so users can revisit previous sessions.&lt;/p&gt;

&lt;p&gt;This makes the experience much more useful than a normal chatbot conversation, because the debugging is grounded in &lt;strong&gt;actual execution&lt;/strong&gt; rather than only text-based reasoning.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem it solves
&lt;/h2&gt;

&lt;p&gt;The real pain point in competitive programming is often not writing the initial solution — it is finding the exact testcase where your logic breaks.&lt;/p&gt;

&lt;p&gt;A lot of developers use two separate tabs or windows for this process:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one tab to run their buggy solution&lt;/li&gt;
&lt;li&gt;another tab to run a correct version&lt;/li&gt;
&lt;li&gt;then manually copy the same input into both places&lt;/li&gt;
&lt;li&gt;compare outputs line by line&lt;/li&gt;
&lt;li&gt;go back and try again&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That works, but it is slow and repetitive.&lt;/p&gt;

&lt;p&gt;I wanted a workflow where both codes could be compiled and tested &lt;strong&gt;at the same place&lt;/strong&gt;, on the same input, with the result immediately visible. Once that part becomes easy, debugging becomes much more focused.&lt;/p&gt;

&lt;p&gt;Debug App is designed around exactly that need.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the app works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Paste both codes
&lt;/h3&gt;

&lt;p&gt;The workflow starts by providing two versions of the solution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the buggy implementation&lt;/li&gt;
&lt;li&gt;the correct reference implementation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the foundation of the app. Instead of debugging in isolation, the tool uses &lt;strong&gt;comparison&lt;/strong&gt; as the main strategy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fderqacxlzi22okhqvm6x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fderqacxlzi22okhqvm6x.png" alt=" " width="799" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Analyze before testing
&lt;/h3&gt;

&lt;p&gt;Before execution, the app uses AI to understand the code and infer the structure of the problem. It tries to detect the language, understand likely input/output format, and reason about what kind of edge cases may reveal the issue.&lt;/p&gt;

&lt;p&gt;This matters because random testcase generation is often not enough. The tool should generate testcases with intent.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Find the failing testcase
&lt;/h3&gt;

&lt;p&gt;This is the most important feature of the project.&lt;/p&gt;

&lt;p&gt;Instead of just saying “your code might fail on edge cases,” the app actively tries to &lt;strong&gt;find one testcase that really fails&lt;/strong&gt;. It generates candidate testcases, executes both codes, and keeps checking whether the outputs differ.&lt;/p&gt;

&lt;p&gt;That verification step is what makes the workflow reliable.&lt;/p&gt;

&lt;p&gt;If both codes behave the same way, then that testcase is not useful. If the outputs differ, then the app has found something valuable: a confirmed failing testcase that the user can inspect and learn from.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhg3dk6v87tmiarkc41ox.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhg3dk6v87tmiarkc41ox.png" alt=" " width="800" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is especially useful for bugs involving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;boundary conditions&lt;/li&gt;
&lt;li&gt;off-by-one errors&lt;/li&gt;
&lt;li&gt;mishandled duplicates&lt;/li&gt;
&lt;li&gt;wrong assumptions about sorted order&lt;/li&gt;
&lt;li&gt;integer overflow or type issues&lt;/li&gt;
&lt;li&gt;missed corner cases in loops or conditionals&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Run both codes at the same place
&lt;/h3&gt;

&lt;p&gt;This is another feature I cared about a lot.&lt;/p&gt;

&lt;p&gt;Usually, if I want to compare outputs manually, I have to use separate tabs, separate compilers, or repeated copy-paste. That creates unnecessary friction.&lt;/p&gt;

&lt;p&gt;So I built a feature where the user can provide a custom input and run &lt;strong&gt;both codes at the same place&lt;/strong&gt;. The app executes both versions side by side and shows the outputs together.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdn0aburdnxh9j1d4gu2n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdn0aburdnxh9j1d4gu2n.png" alt=" " width="799" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This makes comparison much easier because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the input is shared&lt;/li&gt;
&lt;li&gt;the outputs are visible together&lt;/li&gt;
&lt;li&gt;the mismatch becomes obvious immediately&lt;/li&gt;
&lt;li&gt;there is no need to keep switching contexts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It sounds like a small convenience feature, but for real debugging it saves a surprising amount of time.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Diagnose the bug with AI
&lt;/h3&gt;

&lt;p&gt;Once an actual mismatch is confirmed, the app moves to diagnosis.&lt;/p&gt;

&lt;p&gt;At this point, AI becomes much more useful because it is no longer working from a vague prompt. It already has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;both code versions&lt;/li&gt;
&lt;li&gt;the failing testcase&lt;/li&gt;
&lt;li&gt;the execution results&lt;/li&gt;
&lt;li&gt;the exact mismatch&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gives it a much stronger base for explanation.&lt;/p&gt;

&lt;p&gt;The diagnosis stage tries to identify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the likely root cause&lt;/li&gt;
&lt;li&gt;the line or logic area involved&lt;/li&gt;
&lt;li&gt;the reason the bug appears&lt;/li&gt;
&lt;li&gt;the kind of change that would fix it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2mwhivjuswkf7r7m0o5i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2mwhivjuswkf7r7m0o5i.png" alt=" " width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is much more practical than generic advice, because the explanation is tied to a real failing case rather than guesswork.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Find failing testcases automatically
&lt;/h3&gt;

&lt;p&gt;This is the headline feature. The app generates adversarial inputs and verifies them through execution until it finds a testcase that actually exposes the difference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Compare both codes on one input
&lt;/h3&gt;

&lt;p&gt;The single-test runner lets users run both solutions on the same custom input in one place. That removes the need to use multiple tabs or external compilers just to compare outputs.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI-powered bug diagnosis
&lt;/h3&gt;

&lt;p&gt;After the mismatch is confirmed, the app explains the likely bug, root cause, and possible fix. This turns raw output difference into actionable debugging help.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI chat for debugging follow-up
&lt;/h3&gt;

&lt;p&gt;Debugging is rarely finished after one answer. Often the next question is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;why exactly did this testcase fail?&lt;/li&gt;
&lt;li&gt;is my fix correct?&lt;/li&gt;
&lt;li&gt;what other edge cases should I try?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why I added a context-aware AI chat assistant for each debugging session.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyh6o062aqg5gkt50o7eo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyh6o062aqg5gkt50o7eo.png" alt=" " width="392" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This makes the app feel less like a one-time analyzer and more like a debugging companion.&lt;/p&gt;

&lt;h3&gt;
  
  
  Debug history
&lt;/h3&gt;

&lt;p&gt;Every debug session is saved for up to three months with important details:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;code versions&lt;/li&gt;
&lt;li&gt;generated testcase&lt;/li&gt;
&lt;li&gt;outputs&lt;/li&gt;
&lt;li&gt;diagnosis&lt;/li&gt;
&lt;li&gt;chat context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fikn2qt4hnshmpjpikvmy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fikn2qt4hnshmpjpikvmy.png" alt=" " width="799" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is useful because debugging patterns repeat. Looking back at old mistakes can actually help programmers improve their thinking over time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Syntax and runtime detection
&lt;/h3&gt;

&lt;p&gt;Before deeper analysis, the app also checks for syntax or runtime issues. That prevents unnecessary debugging effort when the problem is simply that the code does not compile or crashes early.&lt;/p&gt;

&lt;h3&gt;
  
  
  Responsive UI with dark/light mode
&lt;/h3&gt;

&lt;p&gt;The interface is designed to be clean and developer-focused across devices, from desktop to mobile.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm0x1ee77oz485dcpjqx2.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm0x1ee77oz485dcpjqx2.jpeg" alt=" " width="540" height="1204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;p&gt;The frontend is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;React + Vite&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bootstrap&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monaco Editor&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lucide React&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Monaco Editor was a natural choice because it gives a coding experience that feels familiar and professional. Since the product is aimed at programmers, the editor experience had to feel strong.&lt;/p&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;p&gt;The backend is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Node.js&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Express&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL (Neon)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I used this stack to support the debugging pipeline, session storage, authentication, chat context, and history persistence.&lt;/p&gt;

&lt;h3&gt;
  
  
  Authentication and session management
&lt;/h3&gt;

&lt;p&gt;To make the app feel complete, I added:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Passport.js with Google OAuth&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;express-session&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;connect-pg-simple&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That allows users to log in, save sessions, and return to their debugging history later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftxz3r6tqzru3cmihx4ch.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftxz3r6tqzru3cmihx4ch.png" alt=" " width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  AI and execution pipeline
&lt;/h3&gt;

&lt;p&gt;This is the heart of the project.&lt;/p&gt;

&lt;p&gt;For AI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NVIDIA Nemotron&lt;/strong&gt; for reasoning and testcase generation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NVIDIA Llama 3.1 8B&lt;/strong&gt; for syntax checks and chat&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NVIDIA Nemotron Super 49B&lt;/strong&gt; for bug diagnosis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For execution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Judge0&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Judge0 fallback&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OnlineCompiler.io&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One thing I especially wanted to solve was reliability. Code execution APIs can fail, timeout, or behave inconsistently, so I built a fallback-based execution setup. That means the app is not dependent on a single code runner.&lt;/p&gt;

&lt;p&gt;This was important because if the goal is to verify failing testcases, then execution reliability is not optional — it is central to the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this project is personal
&lt;/h2&gt;

&lt;p&gt;This project is directly connected to how I practice coding.&lt;/p&gt;

&lt;p&gt;As someone who spends time solving problems and improving in competitive programming, I wanted to build something that solves a real difficulty I face. I did not want to make a generic “AI coding assistant.” I wanted to make a focused tool for a specific workflow: &lt;strong&gt;finding the testcase, verifying the mismatch, and understanding the bug&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That focus is what makes Debug App special to me.&lt;/p&gt;

&lt;p&gt;It respects the fact that debugging is part of learning, but it tries to reduce the unproductive part — the repeated trial-and-error of finding the right failing input and comparing outputs manually.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s next
&lt;/h2&gt;

&lt;p&gt;There is still a lot of room to improve this idea further. Some directions I would like to explore are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;better testcase generation strategies&lt;/li&gt;
&lt;li&gt;more language support&lt;/li&gt;
&lt;li&gt;richer diff visualization&lt;/li&gt;
&lt;li&gt;stronger explanation quality for diagnosis&lt;/li&gt;
&lt;li&gt;tighter integration with contest workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But even in its current form, Debug App already solves a problem I genuinely care about.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;This is a general submission for the &lt;strong&gt;Weekend Challenge: Passion Edition&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing thoughts
&lt;/h2&gt;

&lt;p&gt;Debug App started from a simple but frustrating scenario: my code fails on a hidden testcase, the sample tests all pass, and I need to figure out where the logic breaks.&lt;/p&gt;

&lt;p&gt;Traditional AI can help with ideas, but for complex debugging it often stops short of what really matters: &lt;strong&gt;verification&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is the gap I wanted to close.&lt;/p&gt;

&lt;p&gt;So instead of only asking AI to reason, I built a workflow where AI can reason &lt;strong&gt;and&lt;/strong&gt; the system can test. The result is a debugging tool that helps find actual failing testcases, compare both codes in one place, and turn wrong answers into something understandable.&lt;/p&gt;

&lt;p&gt;For a project built around passion, this felt like the right one to make.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>competitive</category>
      <category>programming</category>
    </item>
    <item>
      <title>de-BUG</title>
      <dc:creator>Deepak</dc:creator>
      <pubDate>Sun, 08 Mar 2026 17:40:39 +0000</pubDate>
      <link>https://dev.to/deepak-/de-bug-1724</link>
      <guid>https://dev.to/deepak-/de-bug-1724</guid>
      <description>&lt;p&gt;I Built a Tool to Find the Exact Test Case Where Your Competitive Programming Code Fails 🚀&lt;/p&gt;

&lt;p&gt;If you do competitive programming, you’ve probably faced this frustrating situation.&lt;/p&gt;

&lt;p&gt;Your code works for all the test cases you tried.&lt;/p&gt;

&lt;p&gt;But the judge still says:&lt;/p&gt;

&lt;p&gt;«Wrong Answer»&lt;/p&gt;

&lt;p&gt;You test again.&lt;br&gt;
You try more cases.&lt;br&gt;
Everything still works.&lt;/p&gt;

&lt;p&gt;Then your friend submits almost the same logic and it gets Accepted.&lt;/p&gt;

&lt;p&gt;So the question becomes:&lt;/p&gt;

&lt;p&gt;Where exactly is my code failing?&lt;/p&gt;




&lt;p&gt;The Real Problem&lt;/p&gt;

&lt;p&gt;Most of the time the issue is not obvious.&lt;/p&gt;

&lt;p&gt;Typical problems include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Edge cases you didn’t think of&lt;/li&gt;
&lt;li&gt;Constraints behaving differently&lt;/li&gt;
&lt;li&gt;Integer overflow&lt;/li&gt;
&lt;li&gt;Boundary conditions&lt;/li&gt;
&lt;li&gt;Incorrect assumptions in logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can try generating test cases manually, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It takes time&lt;/li&gt;
&lt;li&gt;You might miss the failing case&lt;/li&gt;
&lt;li&gt;AI sometimes hallucinates incorrect cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I thought:&lt;/p&gt;

&lt;p&gt;Why not build a tool that automatically finds the failing test case?&lt;/p&gt;




&lt;p&gt;Introducing: Debug Tool for Competitive Programming&lt;/p&gt;

&lt;p&gt;I built a web application that helps you detect exactly where your code fails.&lt;/p&gt;

&lt;p&gt;Instead of guessing the failing test case, the tool automatically finds it.&lt;/p&gt;

&lt;p&gt;How it works&lt;/p&gt;

&lt;p&gt;You simply provide:&lt;/p&gt;

&lt;p&gt;1️⃣ Your buggy code&lt;br&gt;
2️⃣ The correct code&lt;br&gt;
3️⃣ The problem constraints&lt;/p&gt;

&lt;p&gt;The application then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generates multiple valid test cases&lt;/li&gt;
&lt;li&gt;Runs both programs&lt;/li&gt;
&lt;li&gt;Compares outputs&lt;/li&gt;
&lt;li&gt;Detects the first failing test case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also tries to show the possible reason for failure, helping you debug faster.&lt;/p&gt;




&lt;p&gt;Why This Is Better Than Asking AI&lt;/p&gt;

&lt;p&gt;Many people paste code into AI and ask:&lt;/p&gt;

&lt;p&gt;«“Find the failing test case”»&lt;/p&gt;

&lt;p&gt;But AI can sometimes:&lt;/p&gt;

&lt;p&gt;❌ generate invalid test cases&lt;br&gt;
❌ misunderstand constraints&lt;br&gt;
❌ guess incorrect edge cases&lt;/p&gt;

&lt;p&gt;This tool instead:&lt;/p&gt;

&lt;p&gt;✅ Compiles and runs the code&lt;br&gt;
✅ Tests multiple generated test cases&lt;br&gt;
✅ Detects the real failing case&lt;/p&gt;

&lt;p&gt;So the result is based on actual execution, not guessing.&lt;/p&gt;




&lt;p&gt;Example Situations Where This Helps&lt;/p&gt;

&lt;p&gt;This tool is useful when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your code works locally but fails on the judge&lt;/li&gt;
&lt;li&gt;Your friend's solution works but yours doesn't&lt;/li&gt;
&lt;li&gt;You can't figure out the edge case&lt;/li&gt;
&lt;li&gt;Hidden test cases cause Wrong Answer in contests&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Built with Lovable + Vibe Coding&lt;/p&gt;

&lt;p&gt;This project was completely built using Lovable with vibe coding.&lt;/p&gt;

&lt;p&gt;It was an experiment to see how quickly a useful developer tool could be built using modern AI-assisted workflows.&lt;/p&gt;




&lt;p&gt;Try the Tool&lt;/p&gt;

&lt;p&gt;You can try the application here:&lt;/p&gt;

&lt;p&gt;🔗 Live Demo:&lt;br&gt;
&lt;a href="https://preview--debugforcompetitiveprogramming.lovable.app/login" rel="noopener noreferrer"&gt;https://preview--debugforcompetitiveprogramming.lovable.app/login&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Paste your buggy code, correct code, and problem constraints, and the tool will try to detect the failing test case automatically.&lt;/p&gt;




&lt;p&gt;Feedback Welcome&lt;/p&gt;

&lt;p&gt;This is still an early version and I would love feedback from the competitive programming community.&lt;/p&gt;

&lt;p&gt;Some ideas I’m considering next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Supporting multiple programming languages&lt;/li&gt;
&lt;li&gt;Generating stronger adversarial test cases&lt;/li&gt;
&lt;li&gt;Better explanations for why the code fails&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you try the tool, let me know what you think! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
