<?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: Gulrez Qayyum</title>
    <description>The latest articles on DEV Community by Gulrez Qayyum (@gulrez).</description>
    <link>https://dev.to/gulrez</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%2F3896088%2F3bed8ac5-9f4a-421e-b25c-ad651cba8135.png</url>
      <title>DEV Community: Gulrez Qayyum</title>
      <link>https://dev.to/gulrez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gulrez"/>
    <language>en</language>
    <item>
      <title>Can LLMs Keep Score? I Benchmarked Tennis and Padel Score-Tracking</title>
      <dc:creator>Gulrez Qayyum</dc:creator>
      <pubDate>Sat, 10 Oct 2026 18:28:23 +0000</pubDate>
      <link>https://dev.to/gulrez/can-llms-keep-score-i-benchmarked-tennis-and-padel-score-tracking-7ol</link>
      <guid>https://dev.to/gulrez/can-llms-keep-score-i-benchmarked-tennis-and-padel-score-tracking-7ol</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/kaggle-2026-09-23"&gt;Kaggle Benchmarking Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I wanted a test where the right answer is unambiguous, so I picked something simple that is surprisingly easy to get wrong: keeping score in a match.&lt;/p&gt;

&lt;p&gt;Each case gives a model a list of points in order ("A A B A B ...", each letter is who won that point). The model has to report the state right after the last point: sets, games, points in the current game, and who serves next. I wrote a small scoring engine in Python that computes the true answer, so every reply is simply right or wrong. No judge model is involved.&lt;/p&gt;

&lt;p&gt;The benchmark covers tennis (advantage scoring) and padel (golden point). It includes sequences of 30, 60 and 100 points, plus special cases forced into a 6-6 tiebreak, where the serving order is awkward. Every point sequence is asked twice: once with the full rules written in the prompt, and once with only "Sport: padel (golden point scoring...)", so the model has to rely on what it already knows. The final benchmark has 48 cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Models Tested
&lt;/h2&gt;

&lt;p&gt;I ran it on five models available in Kaggle Benchmarks: Gemini 3.7 Flash, gpt-oss-20b, Claude Haiku 4.5, GPT-5.4 nano, and Gemma 4 26B A4B (this one errored on Kaggle, so it has no score). I chose a mix of a strong fast model, a small reasoning model, and small models that answer quickly, because I expected the score to depend on how much a model works things out step by step. Everything ran with default settings, once per case.&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%2Ffww09n5yz5g8g2sd1kjt.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%2Ffww09n5yz5g8g2sd1kjt.png" alt=" " width="799" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Findings
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Accuracy (48 cases)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 3.7 Flash&lt;/td&gt;
&lt;td&gt;0.96 (46/48)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gpt-oss-20b&lt;/td&gt;
&lt;td&gt;0.42 (20/48)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Haiku 4.5&lt;/td&gt;
&lt;td&gt;0.00 on the Kaggle leaderboard (1/48 when I reran it myself)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4 nano&lt;/td&gt;
&lt;td&gt;0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemma 4 26B A4B&lt;/td&gt;
&lt;td&gt;error&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fei80tc8rncx3drv4yd73.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%2Fei80tc8rncx3drv4yd73.png" alt=" " width="799" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Score vs. total cost for the three models Kaggle had cost data for (gpt-oss-20b and Gemma 4 are not shown). Claude Haiku 4.5 spent about $0.29 and scored about 0, so spending more tokens didn't help it.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The spread is huge.&lt;/strong&gt; Keeping score in a match is easy for a person, and two models got almost none of 48 right. The rough 95% ranges are about 86-99% for Gemini and 29-56% for gpt-oss-20b, so those two do separate clearly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not working it out vs working it out badly.&lt;/strong&gt; GPT-5.4 nano wrote about 25 tokens per case, just the answer line, and guessed. Some answers were impossible states, such as a match at 2-1 in sets while it was still going. Claude Haiku 4.5 wrote about 1,100 tokens of step-by-step counting per case and still scored about 0. I checked whether this was a formatting problem: every Haiku reply I looked at ended with a correctly formatted answer line that my scorer parsed. The mistakes were in game counts and who serves next. So writing out the counting isn't enough on its own.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Some of the errors were noise.&lt;/strong&gt; In an earlier 100-case run, all 5 of Gemini's mistakes were in the no-rules condition, which looked like "the model needs the rules." I reran those 5 cases twice and 9 of 10 passed. With only 10 reruns that is consistent with noise but not proof (the plausible range is roughly 60-98%). Haiku shows the same variation: 0.00 on the leaderboard, 1/48 in my own rerun. Single-run results overstate differences between conditions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I did not find a padel weakness or a rules effect.&lt;/strong&gt; The 48 cases are really 24 point sequences, each asked twice (rules in the prompt, rules not in the prompt), so the two conditions are paired. The right way to compare them is to count the sequences where the answer changed between the two prompts. I had 5 such cases, which isn't enough to claim an effect. Padel and tennis scores for Gemini were within one error of each other.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I'd Measure Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Run each case several times, because one run per case is too noisy to compare conditions.&lt;/li&gt;
&lt;li&gt;Turn on extended reasoning for the models that scored 0.00, to see whether the problem is the model or the default setting.&lt;/li&gt;
&lt;li&gt;Get per-sport and per-length results for every model, not just Gemini.&lt;/li&gt;
&lt;li&gt;Try 200-point sequences, since the best model was close to the ceiling.&lt;/li&gt;
&lt;li&gt;Compare with-rules vs without-rules as paired results (count the sequences whose answer flips) instead of two separate averages.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;48 cases (24 point sequences, each asked twice), one run per case, default settings, and only a handful of models. Differences between close results aren't reliable.&lt;/li&gt;
&lt;li&gt;Run-to-run variation is real: Haiku scored 0.00 on the leaderboard and 1/48 in a rerun, and some of Gemini's early errors disappeared on rerun.&lt;/li&gt;
&lt;li&gt;A score of 0/48 only rules out a true rate above roughly 7%.&lt;/li&gt;
&lt;li&gt;I checked the padel rules (golden point, tiebreak serving order, who serves first in the next set) against padel rules sources, but real events sometimes use a super tiebreak in the third set, which this benchmark doesn't model.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Benchmark
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.kaggle.com/benchmarks/gulrezqayyum/tennis-and-padel-state-tracking-benchmark" rel="noopener noreferrer"&gt;https://www.kaggle.com/benchmarks/gulrezqayyum/tennis-and-padel-state-tracking-benchmark&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>kagglechallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Board Game Rule Conflict Resolver</title>
      <dc:creator>Gulrez Qayyum</dc:creator>
      <pubDate>Sun, 04 Oct 2026 14:53:08 +0000</pubDate>
      <link>https://dev.to/gulrez/board-game-rule-conflict-resolver-1nob</link>
      <guid>https://dev.to/gulrez/board-game-rule-conflict-resolver-1nob</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/sanity-2026-09-16"&gt;Sanity Challenge, Path One: Ship an Agent That Queries Real Content&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Board Game Rule Conflict Resolver is a source-grounded tournament judge for resolving ambiguous board game interactions.&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%2Fnajj1bht0s9f2kox9k2l.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%2Fnajj1bht0s9f2kox9k2l.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Players enter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The cards involved&lt;/li&gt;
&lt;li&gt;The current game phase&lt;/li&gt;
&lt;li&gt;Their rules question&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent retrieves structured card text, official interaction rulings, errata, and core rule priorities from Sanity before producing a ruling.&lt;/p&gt;

&lt;p&gt;The resolver is designed to avoid inventing rules. When Sanity does not contain enough authoritative information, it returns a low-confidence response explaining that there is insufficient official data rather than guessing.&lt;/p&gt;

&lt;p&gt;The demo dataset contains fictional board game content, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Card mechanics and effect text&lt;/li&gt;
&lt;li&gt;Trigger phases and keywords&lt;/li&gt;
&lt;li&gt;Core rule priorities&lt;/li&gt;
&lt;li&gt;Explicit multi-card interaction rulings&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Try the deployed application:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://boardgame-rule-agent.vercel.app" rel="noopener noreferrer"&gt;Open Board Game Rule Conflict Resolver&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Recommended demo flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the resolver.&lt;/li&gt;
&lt;li&gt;Ask about &lt;code&gt;Mirror Shield&lt;/code&gt; versus &lt;code&gt;Piercing Bolt&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Try the three-card interaction involving &lt;code&gt;Chain Lightning&lt;/code&gt;, &lt;code&gt;Sanctuary Zone&lt;/code&gt;, and &lt;code&gt;Blood Pact&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Try an unknown card such as &lt;code&gt;Mystic Dragon&lt;/code&gt; to see the strict low-confidence fallback.&lt;/li&gt;
&lt;li&gt;Open Sanity Studio at &lt;code&gt;/studio&lt;/code&gt; and update the official ruling for an interaction.&lt;/li&gt;
&lt;li&gt;Submit the same question again and observe how the retrieved Sanity content changes the answer.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/GulrezQayyum/boardgame-rule-agent" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The main implementation is organized around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js App Router&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/api/resolve-conflict&lt;/code&gt; agent endpoint&lt;/li&gt;
&lt;li&gt;Sanity schemas and seeded content&lt;/li&gt;
&lt;li&gt;GROQ-backed local tools&lt;/li&gt;
&lt;li&gt;Sanity Context MCP integration&lt;/li&gt;
&lt;li&gt;A browser-based resolver UI&lt;/li&gt;
&lt;li&gt;An end-to-end agent test suite&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%2Fwq80vfpso0uwg5s8089v.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%2Fwq80vfpso0uwg5s8089v.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used Sanity
&lt;/h2&gt;

&lt;p&gt;Sanity is the structured source of truth for the agent.&lt;/p&gt;

&lt;p&gt;I modeled three document types:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;gameCard&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Card name&lt;/li&gt;
&lt;li&gt;Stable card slug&lt;/li&gt;
&lt;li&gt;Card type&lt;/li&gt;
&lt;li&gt;Trigger phase&lt;/li&gt;
&lt;li&gt;Keywords&lt;/li&gt;
&lt;li&gt;Effect text&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;gameRule&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rule title&lt;/li&gt;
&lt;li&gt;Rule code&lt;/li&gt;
&lt;li&gt;Rule category&lt;/li&gt;
&lt;li&gt;Priority order&lt;/li&gt;
&lt;li&gt;Rule text&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;interactionConflict&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conflict title&lt;/li&gt;
&lt;li&gt;Linked cards&lt;/li&gt;
&lt;li&gt;Conflict description&lt;/li&gt;
&lt;li&gt;Official ruling&lt;/li&gt;
&lt;li&gt;Governing rule&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent exposes tools for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Looking up card documents by name or slug&lt;/li&gt;
&lt;li&gt;Finding interaction conflicts linked to the retrieved cards&lt;/li&gt;
&lt;li&gt;Retrieving ordered core rules by category&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The intended agent workflow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Retrieve every named card from Sanity.&lt;/li&gt;
&lt;li&gt;Use the returned card identifiers to search for linked conflict and errata documents.&lt;/li&gt;
&lt;li&gt;Retrieve relevant rule-priority documents.&lt;/li&gt;
&lt;li&gt;Use the official ruling as primary evidence when an explicit conflict document exists.&lt;/li&gt;
&lt;li&gt;Return a JSON ruling with a verdict, reasoning, cited documents, and confidence level.&lt;/li&gt;
&lt;/ol&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%2F7ffn64z39wh75lh0gwqz.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%2F7ffn64z39wh75lh0gwqz.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The server can use Sanity Context MCP tools when configured. It also includes local GROQ-backed tools for the same structured content workflow.&lt;/p&gt;

&lt;p&gt;The agent is explicitly instructed to rely only on retrieved Sanity context. If no definitive card, conflict, errata, or rule data exists, it returns:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Insufficient official data in Sanity Content Lake to render an absolute judgment.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This makes content editors part of the rules-maintenance workflow: updating a ruling in Sanity changes the evidence used by the resolver without changing application code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sanity Project Details
&lt;/h2&gt;

&lt;p&gt;Sanity project ID: kjwkn2a2&lt;br&gt;
Dataset: production&lt;/p&gt;

&lt;p&gt;The project contains the structured demo cards, core rules, and interaction conflict documents used by the resolver.&lt;/p&gt;

&lt;p&gt;The seeded content is fictional demo content created for this challenge. It is intended to demonstrate the content architecture and agent workflow rather than represent official rules for an existing commercial game.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Highlights
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Next.js 16 App Router&lt;/li&gt;
&lt;li&gt;React 19&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Sanity Studio&lt;/li&gt;
&lt;li&gt;GROQ queries&lt;/li&gt;
&lt;li&gt;Sanity Context MCP&lt;/li&gt;
&lt;li&gt;Groq-compatible model tool calling&lt;/li&gt;
&lt;li&gt;Strict JSON ruling responses&lt;/li&gt;
&lt;li&gt;Low-confidence fallback for unknown content&lt;/li&gt;
&lt;li&gt;Vercel production deployment&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
      <category>sanity</category>
      <category>ai</category>
    </item>
    <item>
      <title>GiveBack — Turn Generosity Into Action</title>
      <dc:creator>Gulrez Qayyum</dc:creator>
      <pubDate>Sun, 06 Sep 2026 16:01:55 +0000</pubDate>
      <link>https://dev.to/gulrez/giveback-turn-generosity-into-action-294p</link>
      <guid>https://dev.to/gulrez/giveback-turn-generosity-into-action-294p</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-09-03"&gt;Weekend Challenge: Generosity Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;GiveBack is an AI-powered platform designed to make generosity easier and more actionable.&lt;/p&gt;

&lt;p&gt;The idea is simple: people often want to help others, but don't always know how they can contribute, where their help is needed, or what meaningful action they can take.&lt;/p&gt;

&lt;p&gt;GiveBack uses AI to turn a user's intention to help into practical suggestions and actions.&lt;/p&gt;

&lt;p&gt;Instead of simply asking:&lt;/p&gt;

&lt;p&gt;"How can I donate?"&lt;/p&gt;

&lt;p&gt;GiveBack focuses on:&lt;/p&gt;

&lt;p&gt;"What can I do today that actually helps someone?"&lt;/p&gt;

&lt;p&gt;The goal is to encourage everyday generosity — whether that's donating resources, volunteering time, helping someone in the community, or contributing in another meaningful way.&lt;/p&gt;

&lt;p&gt;I wanted to build something that demonstrates that AI doesn't always need to be about productivity or automation. It can also be used to encourage people to help each other.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Live Application:&lt;/strong&gt; &lt;a href="https://give-back-five.vercel.app/" rel="noopener noreferrer"&gt;https://give-back-five.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/GulrezQayyum/give-back" rel="noopener noreferrer"&gt;https://github.com/GulrezQayyum/give-back&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project contains the frontend and backend components of GiveBack.&lt;/p&gt;

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

&lt;p&gt;I built GiveBack with a simple full-stack architecture:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The frontend was built with React + Vite.&lt;/p&gt;

&lt;p&gt;It provides the user interface where people can interact with GiveBack and describe how they would like to contribute.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The backend was built with Python and FastAPI.&lt;/p&gt;

&lt;p&gt;The backend handles application logic and acts as the bridge between the frontend and the AI functionality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The core AI functionality uses Google AI / Gemini.&lt;/p&gt;

&lt;p&gt;Gemini is used to understand the user's intent and generate meaningful, context-aware suggestions for ways they can give back.&lt;/p&gt;

&lt;p&gt;Rather than returning generic suggestions, the goal is to make the interaction feel like a conversation:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User intention → AI understands the situation → GiveBack suggests meaningful actions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why AI?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Generosity is highly contextual.&lt;/p&gt;

&lt;p&gt;Someone might have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;time but no money&lt;/li&gt;
&lt;li&gt;money but limited time&lt;/li&gt;
&lt;li&gt;technical skills they want to contribute&lt;/li&gt;
&lt;li&gt;resources they don't need anymore&lt;/li&gt;
&lt;li&gt;a desire to help their local community&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI provides a natural way to understand these different situations and suggest possibilities based on what a person is actually able and willing to give.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Google AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GiveBack is submitted for Best Use of Google AI.&lt;/p&gt;

&lt;p&gt;I integrated Google Gemini into the application to understand user intentions and generate personalized suggestions for meaningful acts of generosity.&lt;/p&gt;

&lt;p&gt;The AI isn't being used simply as a chatbot. It is part of the core experience: helping users move from "I want to help" to "Here's something meaningful I can actually do."&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;The idea behind GiveBack came from a simple observation:&lt;/p&gt;

&lt;p&gt;We often think generosity requires money.&lt;/p&gt;

&lt;p&gt;But generosity can also be time, knowledge, skills, attention, resources, or simply helping someone who needs it.&lt;/p&gt;

&lt;p&gt;I wanted to experiment with how AI could help people discover those opportunities.&lt;/p&gt;

&lt;p&gt;GiveBack is my attempt to build technology around a more human goal:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use AI not only to help us do more, but to help us give more.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
    <item>
      <title>RAGBench: Stop Guessing, Start Measuring Your RAG Pipeline</title>
      <dc:creator>Gulrez Qayyum</dc:creator>
      <pubDate>Wed, 02 Sep 2026 16:43:14 +0000</pubDate>
      <link>https://dev.to/gulrez/ragbench-stop-guessing-start-measuring-your-rag-pipeline-npn</link>
      <guid>https://dev.to/gulrez/ragbench-stop-guessing-start-measuring-your-rag-pipeline-npn</guid>
      <description>&lt;p&gt;Hey builders&lt;/p&gt;

&lt;p&gt;RAGBench just hit Hugging Face.&lt;/p&gt;

&lt;p&gt;It's an open evaluation framework for RAG systems, built for developers, with the goal of making RAG evaluation more practical and reproducible.&lt;/p&gt;

&lt;p&gt;Instead of guessing whether your chunking strategy actually works, test it. Compare it. Measure it.&lt;/p&gt;

&lt;p&gt;I built RAGBench to make it easier to evaluate different RAG approaches using the same documents, queries, and evaluation metrics.&lt;/p&gt;

&lt;p&gt;So far, I've focused on comparing semantic, document-level, and parent-child chunking and measuring how they affect retrieval and answer quality.&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;Stop guessing. Start measuring.&lt;/p&gt;

&lt;p&gt;RAGBench is:&lt;br&gt;
• Open source&lt;br&gt;
• Open data&lt;br&gt;
• Reproducible&lt;br&gt;
• Built for community feedback&lt;/p&gt;

&lt;p&gt;Try the interactive benchmark:&lt;br&gt;
&lt;a href="https://huggingface.co/spaces/Gul55555/ragbench" rel="noopener noreferrer"&gt;https://huggingface.co/spaces/Gul55555/ragbench&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contributions and feedback are welcome.&lt;/p&gt;

&lt;p&gt;I'm especially interested in:&lt;br&gt;
• What RAG evaluation metrics do you actually use?&lt;br&gt;
• What chunking strategies have worked best for you?&lt;br&gt;
• What problems have you encountered when evaluating RAG?&lt;br&gt;
• What should I add to RAGBench next?&lt;/p&gt;

&lt;p&gt;What's broken in your RAG pipeline?&lt;/p&gt;

&lt;p&gt;I'd love to hear what you're working on.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>ai</category>
      <category>rag</category>
      <category>opensource</category>
    </item>
    <item>
      <title>🍝 Pasta Shape Guide — An Interactive Guide to the Pasta We Love</title>
      <dc:creator>Gulrez Qayyum</dc:creator>
      <pubDate>Sat, 15 Aug 2026 16:47:55 +0000</pubDate>
      <link>https://dev.to/gulrez/pasta-shape-guide-an-interactive-guide-to-the-pasta-we-love-2cpo</link>
      <guid>https://dev.to/gulrez/pasta-shape-guide-an-interactive-guide-to-the-pasta-we-love-2cpo</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend-2026-07-29"&gt;Frontend Challenge - Comfort Food Edition, Perfect Landing&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;For the Frontend Challenge: Comfort Food Edition, I decided to build around one of my favorite comfort foods: pasta. 🍝&lt;/p&gt;

&lt;p&gt;Instead of creating a simple recipe landing page, I wanted to make something people could actually explore.&lt;/p&gt;

&lt;p&gt;So I built Pasta Shape Guide, an interactive guide to different pasta shapes, their origins, cooking times, recommended sauces, recipes, and cooking tips.&lt;/p&gt;

&lt;p&gt;You can:&lt;/p&gt;

&lt;p&gt;🔍 Search pasta by name or sauce&lt;br&gt;
🍝 Browse different pasta shapes&lt;br&gt;
🌍 Learn about their origins&lt;br&gt;
⏱️ Check recommended cooking times&lt;br&gt;
🍅 Discover sauce pairings&lt;br&gt;
📖 Read detailed recipes and cooking tips&lt;/p&gt;
&lt;h2&gt;
  
  
  Built With
&lt;/h2&gt;

&lt;p&gt;React&lt;br&gt;
Vite&lt;br&gt;
Tailwind CSS&lt;br&gt;
React Router&lt;br&gt;
JavaScript&lt;br&gt;
Vercel&lt;br&gt;
Pexels for the pasta imagery&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://pasta-guide-with-react.vercel.app/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;pasta-guide-with-react.vercel.app&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;This project was especially interesting for me because it was my first React project.&lt;/p&gt;

&lt;p&gt;I'm more familiar with Flutter development, so moving into React gave me a chance to learn a different approach to building interfaces.&lt;/p&gt;

&lt;p&gt;During the project, I learned about component-based architecture, React state, client-side routing, dynamic URLs, filtering data, responsive design, and deploying a production React application.&lt;/p&gt;

&lt;p&gt;One thing I particularly enjoyed was making the application data-driven.&lt;/p&gt;

&lt;p&gt;The pasta information is separated from the UI, so adding another pasta doesn't require creating an entirely new component. The same components can render the new information automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm Proud Of
&lt;/h2&gt;

&lt;p&gt;I'm most proud that I turned what could have been a static landing page into an actual little interactive experience.&lt;/p&gt;

&lt;p&gt;The user isn't just looking at a pasta image.&lt;/p&gt;

&lt;p&gt;They can:&lt;/p&gt;

&lt;p&gt;Discover → Search → Explore → Learn → Find a Sauce → Try a Recipe&lt;/p&gt;

&lt;p&gt;That was the experience I wanted to create.&lt;/p&gt;

&lt;p&gt;I'd love to know: what pasta shape would you add to the guide? 🍝&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>frontendchallenge</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Building an AI-Powered Network Traffic Analyzer with FastAPI and Scapy (Looking for Contributors)</title>
      <dc:creator>Gulrez Qayyum</dc:creator>
      <pubDate>Fri, 17 Jul 2026 12:11:12 +0000</pubDate>
      <link>https://dev.to/gulrez/building-an-ai-powered-network-traffic-analyzer-with-fastapi-and-scapy-looking-for-contributors-1dkl</link>
      <guid>https://dev.to/gulrez/building-an-ai-powered-network-traffic-analyzer-with-fastapi-and-scapy-looking-for-contributors-1dkl</guid>
      <description>&lt;p&gt;Over the past few weeks I've been building NetGuard, an open-source AI-powered Network Traffic Analyzer and Active Defense Platform.&lt;/p&gt;

&lt;p&gt;The goal is to combine traditional intrusion detection with machine learning into a single platform capable of:&lt;/p&gt;

&lt;p&gt;Capturing live packets using Scapy&lt;br&gt;
Detecting suspicious traffic using IDS rules&lt;br&gt;
Classifying traffic with a Random Forest model&lt;br&gt;
Automatically blocking malicious IPs&lt;br&gt;
Providing remediation recommendations&lt;br&gt;
Generating incident reports&lt;/p&gt;

&lt;p&gt;Most of the system is already working, including packet capture, IDS detection, remediation, dashboard integration, and IP blocking.&lt;/p&gt;

&lt;p&gt;The remaining work is mainly around integration.&lt;/p&gt;

&lt;p&gt;The most interesting bug is that the FastAPI orchestrator successfully receives HTTP 200 OK from the classifier service, yet ai_result is always returned as null.&lt;/p&gt;

&lt;p&gt;I've investigated payload formatting, response parsing, and model loading, but I'm convinced another pair of eyes could spot what I'm missing.&lt;/p&gt;

&lt;p&gt;I've documented the architecture, setup instructions, debugging notes, and open issues in the repository.&lt;/p&gt;

&lt;p&gt;If you're interested in Python, FastAPI, networking, cybersecurity, or machine learning, I'd love your feedback or contributions.&lt;/p&gt;

&lt;p&gt;Repository:&lt;br&gt;
&lt;a href="https://github.com/GulrezQayyum/netguard" rel="noopener noreferrer"&gt;https://github.com/GulrezQayyum/netguard&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open-source is one of the best ways to learn, so even documentation improvements or code reviews are welcome.&lt;/p&gt;

</description>
      <category>contributorswanted</category>
      <category>python</category>
      <category>opensource</category>
      <category>github</category>
    </item>
    <item>
      <title>Apex F1 – The Ultimate Formula 1 Racing Simulator</title>
      <dc:creator>Gulrez Qayyum</dc:creator>
      <pubDate>Mon, 13 Jul 2026 12:51:08 +0000</pubDate>
      <link>https://dev.to/gulrez/apex-f1-the-ultimate-formula-1-racing-simulator-77o</link>
      <guid>https://dev.to/gulrez/apex-f1-the-ultimate-formula-1-racing-simulator-77o</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;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://apex-f1-159.web.app" rel="noopener noreferrer"&gt;https://apex-f1-159.web.app&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/GulrezQayyum/apex-f1" rel="noopener noreferrer"&gt;https://github.com/GulrezQayyum/apex-f1&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;Formula 1 has always fascinated me because it's not just about speed—it's a sport driven by strategy, teamwork, weather, tyre management, and split-second decisions. I wanted to capture those elements in a mobile app rather than building a traditional arcade racing game. Apex F1 is my attempt to recreate the excitement of managing a race weekend while combining my passion for Formula 1 with Flutter development.&lt;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;Apex F1&lt;/strong&gt; entirely with &lt;strong&gt;Flutter&lt;/strong&gt;, focusing on creating a realistic Formula 1 racing and strategy experience for mobile devices. As a huge Formula 1 fan, I wanted to go beyond a simple racing game and recreate the tactical decisions that make the sport exciting.&lt;/p&gt;

&lt;p&gt;The project started with designing the app's architecture and user interface in Flutter. I then developed the race simulation engine, which powers every lap of the race. The simulator considers factors such as tyre degradation, fuel strategy, weather conditions, pit stops, safety cars, and AI driver behavior to produce dynamic race outcomes.&lt;/p&gt;

&lt;p&gt;To make each race feel unique, I implemented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GPS-inspired circuit layouts based on real Formula 1 tracks.&lt;/li&gt;
&lt;li&gt;Twenty AI-controlled drivers with different performance characteristics.&lt;/li&gt;
&lt;li&gt;Dynamic weather that can change race strategy.&lt;/li&gt;
&lt;li&gt;Tyre wear and pit stop strategy affecting lap times.&lt;/li&gt;
&lt;li&gt;Championship standings that carry progress across an entire season.&lt;/li&gt;
&lt;li&gt;Multiple seasons (2023–2025) with updated teams and drivers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The UI was designed to be clean and immersive, allowing users to follow race events, monitor strategy, and track championship progress without feeling overwhelmed.&lt;/p&gt;

&lt;p&gt;The biggest challenge was balancing realism with performance. Building a simulation that remained responsive on mobile devices required careful optimization and repeated testing. I refined the race logic over many iterations until the races felt both competitive and unpredictable.&lt;/p&gt;

&lt;p&gt;Overall, Apex F1 combines my interests in Flutter development, simulation programming, and Formula 1 into a single project that reflects both my technical skills and my passion for the sport.&lt;/p&gt;

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

&lt;p&gt;Best Use of Google AI&lt;/p&gt;

&lt;p&gt;Apex F1 integrates Google Gemini AI to enhance the racing experience beyond traditional simulation. Google AI powers intelligent race insights and assists users with strategy recommendations, making the app more interactive and engaging. By combining AI-driven assistance with a realistic Formula 1 race simulator built in Flutter, Apex F1 delivers a smarter and more immersive experience for F1 fans.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built by:&lt;/strong&gt; Gulrez Qayyum — an indie developer passionate about Flutter, AI, and Formula 1.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
    <item>
      <title>Built a Network Traffic Classifier with Random Forest (96.8% Accuracy)</title>
      <dc:creator>Gulrez Qayyum</dc:creator>
      <pubDate>Sun, 17 May 2026 18:47:18 +0000</pubDate>
      <link>https://dev.to/gulrez/built-a-network-traffic-classifier-with-random-forest-968-accuracy-52ai</link>
      <guid>https://dev.to/gulrez/built-a-network-traffic-classifier-with-random-forest-968-accuracy-52ai</guid>
      <description>&lt;p&gt;I recently completed a cybersecurity + machine learning project where I trained a Random Forest model to classify network traffic into multiple attack categories using the NSL-KDD dataset.&lt;/p&gt;

&lt;p&gt;The classifier can detect:&lt;/p&gt;

&lt;p&gt;DoS attacks&lt;br&gt;
Probe/reconnaissance traffic&lt;br&gt;
R2L brute-force attempts&lt;br&gt;
U2R privilege escalation&lt;br&gt;
Normal traffic&lt;br&gt;
Stack&lt;br&gt;
Python&lt;br&gt;
Scikit-learn&lt;br&gt;
FastAPI&lt;br&gt;
Pandas / NumPy&lt;br&gt;
Results&lt;br&gt;
96.8% Accuracy&lt;br&gt;
&amp;lt;1ms inference time&lt;br&gt;
Production-ready model packaging&lt;/p&gt;

&lt;p&gt;I also wrote a detailed Medium article covering:&lt;/p&gt;

&lt;p&gt;Dataset preprocessing&lt;br&gt;
Feature selection&lt;br&gt;
Model training&lt;br&gt;
API integration&lt;br&gt;
Real-world deployment considerations&lt;br&gt;
Challenges working with synthetic vs real traffic data&lt;/p&gt;

&lt;p&gt;Would appreciate feedback from the community, especially from people working in:&lt;/p&gt;

&lt;p&gt;Cybersecurity&lt;br&gt;
ML Engineering&lt;br&gt;
Intrusion Detection&lt;br&gt;
Backend Systems&lt;/p&gt;

&lt;p&gt;Article: &lt;a href="https://medium.com/@gulrezqayyum/building-a-production-ready-network-traffic-classifier-with-random-forest-and-nsl-kdd-b9559346e197" rel="noopener noreferrer"&gt;https://medium.com/@gulrezqayyum/building-a-production-ready-network-traffic-classifier-with-random-forest-and-nsl-kdd-b9559346e197&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/GulrezQayyum" rel="noopener noreferrer"&gt;https://github.com/GulrezQayyum&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LinkedIn:&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/gulrez-qayyum-999345322/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/gulrez-qayyum-999345322/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>cybersecurity</category>
      <category>python</category>
    </item>
  </channel>
</rss>
