<?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: Muhammad Tayyab</title>
    <description>The latest articles on DEV Community by Muhammad Tayyab (@muhammadtayyab_10).</description>
    <link>https://dev.to/muhammadtayyab_10</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%2F4200330%2F753d320c-ebd6-4355-a6e4-96524d19c9a9.png</url>
      <title>DEV Community: Muhammad Tayyab</title>
      <link>https://dev.to/muhammadtayyab_10</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/muhammadtayyab_10"/>
    <language>en</language>
    <item>
      <title>TrueNorth: catching the wrong number before a form is submitted</title>
      <dc:creator>Muhammad Tayyab</dc:creator>
      <pubDate>Wed, 04 Nov 2026 17:53:56 +0000</pubDate>
      <link>https://dev.to/muhammadtayyab_10/truenorth-catching-the-wrong-number-before-a-form-is-submitted-177h</link>
      <guid>https://dev.to/muhammadtayyab_10/truenorth-catching-the-wrong-number-before-a-form-is-submitted-177h</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/mlh-hackathon"&gt;MLH x DEV Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;In April 2024, a Citigroup employee entered a payment of $81 trillion instead of $280, according to the Financial Times. The amount field was pre-filled with 15 zeros that nobody adjusted. Two people missed it and a third caught it 90 minutes later. It was reversed and no funds left the bank, but only because of a last check.&lt;/p&gt;

&lt;p&gt;During Hacktoberfest '26, I built &lt;strong&gt;TrueNorth&lt;/strong&gt; to catch that kind of mistake before a form is submitted. It is an open-source verification engine that checks whether a value makes sense in context and matches its supporting document, which standard client-side validation cannot do.&lt;/p&gt;

&lt;p&gt;It works in two ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 15 web workspace:&lt;/strong&gt; upload a document, inspect each finding next to its evidence, resolve it, and release the reviewed batch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manifest V3 Chromium extension:&lt;/strong&gt; reads a live form and holds back a suspicious value, with the reason shown, before submission.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both use the same checks, so a number is judged the same way whether it comes from a file or is typed into a form.&lt;/p&gt;

&lt;p&gt;The evidence, finding, human resolution and release pattern was inspired by an existing quality-gate tool called Pokayoke. The document reading, the Gemma 4 layer, the extension and the code are my own.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/mtayyab-10/true-north" rel="noopener noreferrer"&gt;TrueNorth on GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Results:&lt;/strong&gt; 1st place, Best Open-Source AI Project, and Best Use of Gemma 4 (special award), Hacktoberfest '26 at NIC Faisalabad&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Partner Technologies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 4 (26B), through the Gemini API:&lt;/strong&gt; extracts structured fields from documents, checks whether a value makes sense in context, and quotes the source line as evidence for each flag.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Verification runs in four layers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic rules:&lt;/strong&gt; totals add up, formats are valid.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Statistical benchmarks:&lt;/strong&gt; flags outliers against baseline data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 4 reasoning:&lt;/strong&gt; checks cross-field validity and context.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Form bridge:&lt;/strong&gt; the extension maps verified values back into the browser form.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Code and the person reviewing hold the gate. Gemma supplies context and evidence, which keeps the result predictable and easy to audit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hackathon Experience
&lt;/h2&gt;

&lt;p&gt;I built TrueNorth in one day at Hacktoberfest '26 at NIC Faisalabad and tested the extension against live web forms.&lt;/p&gt;

&lt;p&gt;What I learned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reading is not judging.&lt;/strong&gt; The system worked best when plain code made the pass or fail call and Gemma only read the document and explained the context.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Say "could not read" instead of guessing.&lt;/strong&gt; Messy input is where a model goes wrong, so an honest gap beats a confident error.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Catch it where it happens.&lt;/strong&gt; The extension showed me that a warning at the moment someone types a number is what would have stopped the Citi error.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With more time, I would measure how often each field is read correctly across many more real documents.&lt;/p&gt;

&lt;p&gt;Thanks to MLH and DEV for the challenge.&lt;/p&gt;

</description>
      <category>mlhacks</category>
      <category>devchallenge</category>
      <category>hackathon</category>
    </item>
  </channel>
</rss>
