<?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: Hemalatha Nambiradje</title>
    <description>The latest articles on DEV Community by Hemalatha Nambiradje (@hema_nambi_66c9).</description>
    <link>https://dev.to/hema_nambi_66c9</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3880718%2Fb6057d0e-5a6f-4dca-b79d-c36220a132dc.png</url>
      <title>DEV Community: Hemalatha Nambiradje</title>
      <link>https://dev.to/hema_nambi_66c9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hema_nambi_66c9"/>
    <language>en</language>
    <item>
      <title>Google I/O 2026 Blew My Mind — Here's What It Means for the Family App I'm Building</title>
      <dc:creator>Hemalatha Nambiradje</dc:creator>
      <pubDate>Thu, 21 May 2026 18:37:46 +0000</pubDate>
      <link>https://dev.to/hema_nambi_66c9/google-io-2026-blew-my-mind-heres-what-it-means-for-the-family-app-im-building-2fm7</link>
      <guid>https://dev.to/hema_nambi_66c9/google-io-2026-blew-my-mind-heres-what-it-means-for-the-family-app-im-building-2fm7</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the Google I/O Writing Challenge&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I went into Google I/O 2026 as someone still finding her footing in app development. I came out the other side genuinely excited — and a little overwhelmed — about how fast everything is moving.&lt;/p&gt;

&lt;p&gt;I am an SDET with 9 years in software testing. A few months ago I started learning AI fundamentals and building my first real app: a family super-app that combines grocery tracking, shopping budgets, family calendar planning, and weekend activity planning all in one place. I am building it in Google AI Studio using Gemini 3 Flash Preview.&lt;/p&gt;

&lt;p&gt;So when I watched Google I/O this week, I wasn't watching as a passive observer. I was watching as someone actively building — and almost every announcement had me pausing the stream thinking &lt;em&gt;"wait, that changes what I'm building."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here are the moments that hit hardest.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Antigravity Built a Full OS in 12 Hours for Under $1,000
&lt;/h2&gt;

&lt;p&gt;This was the jaw-drop moment of the entire keynote for me.&lt;/p&gt;

&lt;p&gt;Google unveiled Antigravity 2.0, their agent-first development platform with a new Antigravity CLI for orchestrating and building agents. But the live demo went further than any announcement slide could capture — an AI agent was given a single prompt and built a functioning operating system in approximately 12 hours at a cost of under $1,000.&lt;/p&gt;

&lt;p&gt;Let that sink in. A full OS. Twelve hours. Less than a thousand dollars.&lt;/p&gt;

&lt;p&gt;As someone coming from a quality engineering background with limited development experience, this felt like the ground shifting. The barrier to building software just got dramatically lower. I have been spending weeks learning how to wire up a Node.js backend. Antigravity is showing a future where you describe what you want and the agent scaffolds it, writes it, and tests it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What this means for my app:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I am building a family app with multiple moving parts — grocery lists, budget tracking, a family calendar, a weekend planner. Normally that scope would take a solo developer months. With agentic coding tools like Antigravity, I can see a future where I describe a feature in plain English, the agent writes the code, and I use my QE skills to review and test what it produced.&lt;/p&gt;

&lt;p&gt;That is a workflow I genuinely understand. I have been testing other people's code for 9 years. Now the "other developer" is an AI agent, and my job is the same: find the gaps, validate the output, ship with confidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Agentic Coding in Search — Robby Stein's Demo
&lt;/h2&gt;

&lt;p&gt;The Search keynote by Robby Stein was the section I rewatched twice.&lt;/p&gt;

&lt;p&gt;Google Search introduced an AI-powered experience that generates contextual answers, images, and short videos, making it more assistant-like in function. Generative UI was also unveiled, dynamically adjusting how results appear based on user intent.&lt;/p&gt;

&lt;p&gt;What struck me was how Search is no longer just a lookup tool. It is starting to reason. It doesn't just find — it understands what you are trying to accomplish and adapts the results to help you get there.&lt;/p&gt;

&lt;p&gt;As someone building a family app, this matters because families don't search like developers do. A parent doesn't type "quinoa recipe low sodium 4 servings." They type "something healthy for dinner the kids won't complain about." The new Search understands that intent. It adapts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What this means for my app:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I want to build a search experience inside my family app that works the same way. Not a filter. Not a dropdown. A natural language input where a family member types "we have chicken and we're on a budget this week" and the app understands the whole context — the ingredients they have, their budget remaining, what's already on the grocery list — and surfaces a meal plan that fits.&lt;/p&gt;

&lt;p&gt;That's the bar Google just set. And it's the bar I'm now designing toward.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Gemini Spark — The 24/7 Background Agent
&lt;/h2&gt;

&lt;p&gt;Gemini Spark is a new AI agent that lives in the cloud and works proactively on tasks in the background, continuing to work even when you're not actively using it.&lt;/p&gt;

&lt;p&gt;This one I am still processing. An agent that doesn't wait for you to ask. It monitors, plans, and acts — all while you go about your day.&lt;/p&gt;

&lt;p&gt;For a family app, the implications are significant. Most family planning apps are reactive — you open the app, you add something, you check a list. Gemini Spark represents a shift to proactive. The agent notices that your grocery budget is running low mid-week, checks the family calendar and sees there's a dinner party on Saturday, and quietly starts building a shopping list without you having to ask.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What this means for my app:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Weekend Planner feature I've been designing fits perfectly here. Right now I was planning it as a manual feature — family members add activities, the app shows a view. But after watching Spark, I'm rethinking it as a proactive agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monday: Spark notices the weekend is approaching and checks the family calendar&lt;/li&gt;
&lt;li&gt;Tuesday: Spark suggests 3 weekend activity options based on past preferences and local weather&lt;/li&gt;
&lt;li&gt;Wednesday: Family approves a plan — Spark generates the shopping list and budget estimate&lt;/li&gt;
&lt;li&gt;Friday: Spark sends a reminder with the full weekend plan and what's still needed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's not a feature. That's a family assistant. And Google just showed us it's possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Universal Cart — The Feature I Am Most Excited to Integrate
&lt;/h2&gt;

&lt;p&gt;Universal Cart uses AI to proactively check your cart and understands context — like knowing which parts you're buying for a PC build — across multiple retailers.&lt;/p&gt;

&lt;p&gt;This was the announcement I immediately started sketching integration ideas for.&lt;/p&gt;

&lt;p&gt;Families don't shop at one store. We go to Costco for bulk, Metro for fresh produce, Shoppers for pharmacy items. Every week we're mentally tracking prices across multiple places. Universal Cart is Google saying: you shouldn't have to do that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What this means for my app — in detail:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here is exactly how I see Universal Cart fitting into the family app I am building:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smart grocery sourcing:&lt;/strong&gt;&lt;br&gt;
A family member adds "Greek yogurt" to the shared grocery list. Universal Cart checks across nearby stores, finds the best price per unit, and flags it. The app shows: &lt;em&gt;"Metro has this $1.20 cheaper this week."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Budget-aware shopping:&lt;/strong&gt;&lt;br&gt;
The family sets a $200 weekly grocery budget. As items get added to the list, the app estimates the Universal Cart total in real time. When you hit $180, the app flags it: &lt;em&gt;"You're close to your budget — here are 3 items with cheaper alternatives."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Weekend planner tie-in:&lt;/strong&gt;&lt;br&gt;
Planning a family BBQ this weekend? The weekend planner generates a suggested menu. Universal Cart sources every ingredient across nearby stores, finds the best combination of stores to hit, and estimates the total cost before anyone leaves the house.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Receipt reconciliation with ReceiptMind:&lt;/strong&gt;&lt;br&gt;
After shopping, you photograph the receipt in ReceiptMind. The app compares what Universal Cart estimated vs what you actually spent. Over time, this builds a real picture of where estimates were off and which stores are consistently cheaper for your family's actual buying habits.&lt;/p&gt;

&lt;p&gt;This integration is my north star for the next phase of this app.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Intelligent Eyewear — I Already Live in This World (Sort Of)
&lt;/h2&gt;

&lt;p&gt;Google's collaboration with Samsung brought working demos of intelligent eyewear designed by Warby Parker and Gentle Monster, with deep Gemini integration to perform tasks through voice commands.&lt;/p&gt;

&lt;p&gt;Here's my personal take on this one: I own a pair of Meta Ray-Bans.&lt;/p&gt;

&lt;p&gt;I love them. I use them for calls. I take photos with them. But that is essentially it. The AI assistant on them feels like a novelty — it can answer general questions but it doesn't know anything about me, my context, or what I'm actually trying to do.&lt;/p&gt;

&lt;p&gt;What Google showed at I/O is a fundamentally different vision. Gemini embedded in glasses that actually understand your context — what you're looking at, where you are, what you're trying to accomplish — and assists without you having to pull out your phone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What this means for families:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I walked into a grocery store last Saturday with a list on my phone. I kept having to unlock it, find the list, check off items, put it back. It's friction. Small friction, but friction.&lt;/p&gt;

&lt;p&gt;Intelligent eyewear with Gemini could eliminate that entirely. Walk into Metro, say &lt;em&gt;"what do we still need?"&lt;/em&gt; — the glasses check the family list, see what's already in the cart via camera, and tell you what's missing. No phone. No unlocking. No friction.&lt;/p&gt;

&lt;p&gt;For my family app, this is a future integration worth designing toward today — even if the hardware isn't available yet. Building the API layer to support a glasses interface means we're ready when the hardware ships this fall.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bigger Picture — What Google I/O Meant to Me Personally
&lt;/h2&gt;

&lt;p&gt;I came into this as an SDET who made a decision a few months ago to stop watching AI from the sidelines and start building.&lt;/p&gt;

&lt;p&gt;Google I/O showed me how fast the gap between "idea" and "working software" is closing. Antigravity is compressing development time. Search is raising the bar for what users expect from interfaces. Spark is redefining what "proactive" means in software. Universal Cart is eliminating friction that users didn't even know they were tolerating.&lt;/p&gt;

&lt;p&gt;As a quality engineer, my job has always been to ask: &lt;em&gt;does this actually work for the person using it?&lt;/em&gt; That question doesn't change with AI. If anything, it gets more important — because when AI agents are doing the building and the reasoning and the planning, the human who validates the output becomes more valuable, not less.&lt;/p&gt;

&lt;p&gt;That's the role I'm stepping into. And Google I/O 2026 gave me a much clearer picture of what I'm stepping into it for.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm Building Next
&lt;/h2&gt;

&lt;p&gt;Immediately after I/O, I added three things to my roadmap for the family app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Weekend Planner v2&lt;/strong&gt; — redesign as a proactive agent, not a manual feature&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Universal Cart integration&lt;/strong&gt; — research the API, start designing the budget overlay&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice-first grocery list&lt;/strong&gt; — design the UX today so it's glasses-ready when the hardware ships&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The deadline for this writing challenge is May 24. My app has no deadline. But Google I/O just gave it a much clearer direction.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hemalatha — SDET and app builder patiently waiting for the Gemini upgrade&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Building a family super-app with Google AI Studio + Gemini 3 Flash Preview&lt;/em&gt;&lt;/p&gt;

</description>
      <category>googleiochallenge</category>
      <category>devchallenge</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
    <item>
      <title>I Built an AI Receipt Scanner with Gemma 4 — As an SDET with No Dev Background</title>
      <dc:creator>Hemalatha Nambiradje</dc:creator>
      <pubDate>Tue, 19 May 2026 13:42:05 +0000</pubDate>
      <link>https://dev.to/hema_nambi_66c9/i-built-an-ai-receipt-scanner-with-gemma-4-as-an-sdet-with-no-dev-background-4go2</link>
      <guid>https://dev.to/hema_nambi_66c9/i-built-an-ai-receipt-scanner-with-gemma-4-as-an-sdet-with-no-dev-background-4go2</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the Gemma 4 Challenge: Build with Gemma 4&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;My Honest Starting Point&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I want to be upfront about something before diving in: I am an SDET — a Software Development Engineer in Test. My world is test automation, quality assurance, and finding bugs, not building apps from scratch. I have spent the last few weeks learning AI fundamentals, experimenting with different models, trying to understand how this whole ecosystem actually works beneath the surface.&lt;br&gt;
When I came across this hackathon, my first instinct was to scroll past it. This is for developers. But then I thought — why not? The worst that happens is I learn something.&lt;br&gt;
What followed was equal parts confusion, accidental discovery, and a working app I am genuinely proud of.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;The Gemini vs Gemma Confusion (I Suspect I'm Not Alone)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;My first stop was Google AI Studio. And honestly? It was fantastic for getting ideas off the ground quickly. I built a small app there, got a feel for prompt engineering, and started to understand how multimodal models work.&lt;br&gt;
But there was a problem: every time I tried to use Gemma 4, Google AI Studio kept routing me to Gemini Flash Preview — the latest hosted model. No matter what I selected, it defaulted back to Gemini.&lt;br&gt;
I spent an embarrassing amount of time thinking I was using Gemma 4 when I wasn't.&lt;br&gt;
That confusion forced me to actually sit down and research the difference. And that is when it clicked:&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.amazonaws.com%2Fuploads%2Farticles%2Frw6jvb2s8cnaj63u88li.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.amazonaws.com%2Fuploads%2Farticles%2Frw6jvb2s8cnaj63u88li.png" alt=" " width="691" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gemma is not a smaller Gemini. They share research lineage, but the deployment story is completely different. Once I understood that, everything else fell into place.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;What I Built: ReceiptMind&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;ReceiptMind is an AI-powered receipt scanner that extracts structured data from receipt photos and builds an expense dashboard automatically.&lt;br&gt;
You take a photo of a receipt — any receipt, any store — upload it, and Gemma 4 reads the image and returns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Merchant name&lt;/li&gt;
&lt;li&gt;Total amount&lt;/li&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;Expense category (Food &amp;amp; Dining, Groceries, Transport, Healthcare, Entertainment)&lt;/li&gt;
&lt;li&gt;Tax amount&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No manual entry. No OCR pipeline. No template matching. Just Gemma 4 looking at the image and understanding it.&lt;br&gt;
This started as a feature I wanted to add to a personal finance app I have been quietly building on the side. The hackathon gave me the deadline I needed to actually ship something.&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.amazonaws.com%2Fuploads%2Farticles%2F1eu5bxxj2dyjmogcscsr.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2F1eu5bxxj2dyjmogcscsr.jpg" alt=" " width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Why Gemma 4 26B MoE — Not the Other Models&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This is the question I care most about answering, because I made this choice deliberately.&lt;br&gt;
The Gemma 4 family has four models:&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.amazonaws.com%2Fuploads%2Farticles%2Fu8n5kl8b4bmawxhvj6ha.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.amazonaws.com%2Fuploads%2Farticles%2Fu8n5kl8b4bmawxhvj6ha.png" alt=" " width="718" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I chose the 26B MoE (A4B) for two specific reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;It is the only model in the family with native image input.&lt;br&gt;
ReceiptMind's entire value is reading receipt photos. Without multimodal vision, there is no product. The E2B and E4B are text-only. The 31B dense is text-only. Only the 26B MoE can receive an image and reason about what it sees.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Despite 26B total parameters, only 4B activate per token.&lt;br&gt;
This is the Mixture-of-Experts efficiency. The model routes each token through only the most relevant expert layers — so I get near-31B quality visual reasoning at a fraction of the compute cost. For a hobby project running on a free API tier, this matters enormously.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I also used the 256K context window to pass multiple receipts in a single prompt when generating monthly spending insights — no chunking, no retrieval, just the full history in one shot.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;The Tech Stack&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Frontend   →  HTML + Vanilla JavaScript&lt;br&gt;
Backend    →  Node.js + Express&lt;br&gt;
AI         →  Gemma 4 26B MoE via OpenRouter (free tier)&lt;br&gt;
Database   →  Neon Postgres (serverless)&lt;br&gt;
File Upload → Multer (in-memory buffer → base64)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why OpenRouter?&lt;/strong&gt;&lt;br&gt;
Google AI Studio kept routing me to Gemini Flash. OpenRouter gave me direct access to google/gemma-4-26b-a4b-it:free with no credit card and no routing surprises. Once I found it, the API worked on the first try.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;How It Works — The Architecture&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;User uploads receipt image&lt;br&gt;
        ↓&lt;br&gt;
Express backend receives file via multer&lt;br&gt;
        ↓&lt;br&gt;
Image converted to base64&lt;br&gt;
        ↓&lt;br&gt;
Sent to OpenRouter → Gemma 4 26B MoE (multimodal)&lt;br&gt;
        ↓&lt;br&gt;
Gemma reads the image, returns structured JSON&lt;br&gt;
        ↓&lt;br&gt;
JSON saved to Neon Postgres&lt;br&gt;
        ↓&lt;br&gt;
Dashboard updates with new receipt + running totals&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;The Core API Call&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Here is the exact call that makes ReceiptMind work. The key is the image_url content block — this is what tells Gemma 4 to look at the receipt image:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://openrouter.ai/api/v1/chat/completions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Authorization&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Bearer &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;OPENROUTER_API_KEY&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Content-Type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;google/gemma-4-26b-a4b-it:free&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
          &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;image_url&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;image_url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`data:&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;mimeType&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;;base64,&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;base64Image&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
          &lt;span class="p"&gt;},&lt;/span&gt;
          &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Look at this receipt and extract the data. 
            Reply ONLY with JSON:
            {
              "merchant": "store name",
              "amount": 12.50,
              "date": "2026-05-14",
              "category": "Food &amp;amp; Dining",
              "tax": 1.10
            }`&lt;/span&gt;
          &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No OCR library. No preprocessing. No regex parsing of receipt text. Gemma reads the image exactly like a human would and returns clean structured data.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Test Receipts — What Gemma 4 Had to Handle&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I tested with 5 real-world receipt types, each designed to stress-test different extraction challenges:&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.amazonaws.com%2Fuploads%2Farticles%2Fqht1imfqavjjxcdbrw9e.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.amazonaws.com%2Fuploads%2Farticles%2Fqht1imfqavjjxcdbrw9e.png" alt=" " width="690" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The gas receipt was the toughest — 42.45L @ $1.649/L = $69.96. Gemma extracted both the unit price and total correctly without any hints.&lt;/p&gt;

&lt;p&gt;The entertainment receipt had a discount applied before tax, which changes the subtotal calculation. Gemma handled it correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What Broke (And How I Fixed It)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;**Problem 1: **The request would hang indefinitely&lt;br&gt;
The free-tier model on OpenRouter can be slow during peak hours. I added a 30-second AbortController timeout so the frontend shows a proper error instead of spinning forever.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const controller = new AbortController();&lt;br&gt;
const timeout = setTimeout(() =&amp;gt; controller.abort(), 30000);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 2:&lt;/strong&gt; Gemma sometimes wraps JSON in markdown code fences&lt;br&gt;
The model would return&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;json { ... }&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
 instead of raw JSON. Fixed with a one-liner:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const clean = rawText.replace(/&lt;/code&gt;&lt;code&gt;json|&lt;/code&gt;&lt;code&gt;/g, "").trim();&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 3:&lt;/strong&gt; &lt;strong&gt;I had no idea what was failing&lt;/strong&gt;&lt;br&gt;
As an SDET, my instinct was to add logging everywhere. I added console.log checkpoints at every step (file received → base64 converted → API called → response received → JSON parsed → DB saved). This immediately showed me exactly where things were failing during development.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Expense Dashboard&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;After scanning receipts, the dashboard shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Running total across all receipts&lt;/li&gt;
&lt;li&gt;Breakdown by category (Food &amp;amp; Dining, Groceries, Transport, etc.)&lt;/li&gt;
&lt;li&gt;Full receipt log with merchant, amount, date, and category&lt;/li&gt;
&lt;li&gt;Per-receipt tax tracking (useful for expense reports)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After scanning all 5 test receipts, the dashboard showed a combined $369.70 across 5 categories — exactly matching the manual totals.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What This Means for My Pet Project&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;ReceiptMind started as one feature of a larger personal finance app I have been building. The plan is to integrate it so users can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scan receipts throughout the month&lt;/li&gt;
&lt;li&gt;Get AI-generated spending summaries ("You spent 40% more on dining this month")&lt;/li&gt;
&lt;li&gt;Set budget alerts by category&lt;/li&gt;
&lt;li&gt;Export expense reports for tax season&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The 256K context window is what makes the spending insight feature viable — I can pass the entire month's worth of receipts in one prompt and ask Gemma to reason across all of them at once.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What I Learned as an SDET Doing This&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A few things surprised me:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1. Prompt engineering is just test case design.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Writing a good prompt felt exactly like writing a good test spec — be precise, cover the edge cases, define the expected output format. The skills transferred more than I expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;2. The model choice matters more than I thought.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
I initially assumed any capable model would work. But switching from text-only to multimodal was the difference between having a product and not having one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;3. The confusion between Gemini and Gemma is real.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
If you are just getting started, burn this into your memory: Gemma = open weights you run yourself. Gemini = Google's hosted API. They are different products built from related research.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;4. Ship something small and real.&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
I could have tried to build the full personal finance app. Instead I picked one feature, made it work end-to-end, and learned more in a week than I had in the previous month of reading documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository&lt;/strong&gt;&lt;br&gt;
🔗 &lt;a href="https://github.com/Hema-Nambi/ReceiptMind" rel="noopener noreferrer"&gt;https://github.com/Hema-Nambi/ReceiptMind&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Try It Yourself&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Requirements:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js 18+&lt;/li&gt;
&lt;li&gt;Free OpenRouter account → openrouter.ai&lt;/li&gt;
&lt;li&gt;Free Neon database → neon.tech
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Hema-Nambi/receiptmind
&lt;span class="nb"&gt;cd &lt;/span&gt;receiptmind
npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;span class="c"&gt;# Add your keys to .env&lt;/span&gt;
node server.js
&lt;span class="c"&gt;# Open http://localhost:3000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Built during the Gemma 4 Challenge — May 2026&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemmachallenge</category>
      <category>gemma</category>
      <category>ai</category>
    </item>
    <item>
      <title>When Prompts Go Wrong: Hidden Risks in AI Every QA Engineer Must Know</title>
      <dc:creator>Hemalatha Nambiradje</dc:creator>
      <pubDate>Thu, 14 May 2026 03:07:40 +0000</pubDate>
      <link>https://dev.to/hema_nambi_66c9/when-prompts-go-wrong-hidden-risks-in-ai-every-qa-engineer-must-know-p67</link>
      <guid>https://dev.to/hema_nambi_66c9/when-prompts-go-wrong-hidden-risks-in-ai-every-qa-engineer-must-know-p67</guid>
      <description>&lt;p&gt;🚨 AI systems are only as secure as their prompts.&lt;/p&gt;

&lt;p&gt;As QA engineers, we test inputs every day — but are we testing our AI prompts the same way?&lt;/p&gt;

&lt;p&gt;I explored 5 real prompt risks that can silently break AI systems:&lt;/p&gt;

&lt;p&gt;🔴 Prompt Injection — users override system rules with malicious instructions&lt;br&gt;
🔴 Prompt Hijacking — tasks get redirected to extract hidden instructions&lt;br&gt;
🔴 Prompt Poisoning — bad data corrupts model outputs&lt;br&gt;
🔴 Prompt Leaking — hidden system prompts get exposed&lt;br&gt;
🔴 Jailbreaking — safety guardrails get bypassed entirely&lt;/p&gt;

&lt;p&gt;These aren't theoretical. They are testable, production-level risks.&lt;/p&gt;

&lt;p&gt;And QA engineers are exactly the right people to catch them. 🎯&lt;/p&gt;

&lt;p&gt;📖 Read the full breakdown with real examples here:&lt;br&gt;
👉 &lt;a href="https://hemaai.hashnode.dev/when-prompts-go-wrong-hidden-risks-in-ai-every-qa-engineer-must-know" rel="noopener noreferrer"&gt;https://hemaai.hashnode.dev/when-prompts-go-wrong-hidden-risks-in-ai-every-qa-engineer-must-know&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Prompt engineering is not just about better answers — it's about building safe and reliable AI. 🛡️&lt;/p&gt;

&lt;h1&gt;
  
  
  QualityEngineering #AITesting #PromptEngineering #PromptInjection #SDET #QA #AISecurity #LearningInPublic
&lt;/h1&gt;

</description>
      <category>promptengineering</category>
      <category>ai</category>
      <category>learning</category>
      <category>security</category>
    </item>
    <item>
      <title>How QA Evaluates Generative AI Models</title>
      <dc:creator>Hemalatha Nambiradje</dc:creator>
      <pubDate>Thu, 30 Apr 2026 13:18:54 +0000</pubDate>
      <link>https://dev.to/hema_nambi_66c9/how-qa-evaluates-generative-ai-models-3h8j</link>
      <guid>https://dev.to/hema_nambi_66c9/how-qa-evaluates-generative-ai-models-3h8j</guid>
      <description>&lt;p&gt;Evaluating Generative AI is not just about a single accuracy score. Metrics like ROUGE, BLEU, and BERTScore each measure different aspects of quality — coverage, precision, and meaning.&lt;/p&gt;

&lt;p&gt;From a QA perspective, real confidence comes from combining:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;automated metrics&lt;/li&gt;
&lt;li&gt;human evaluation&lt;/li&gt;
&lt;li&gt;business expectations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wrote a deeper breakdown here&lt;br&gt;
Read more: &lt;a href="https://hemaai.hashnode.dev/why-one-metric-is-never-enough-to-evaluate-generative-ai" rel="noopener noreferrer"&gt;https://hemaai.hashnode.dev/why-one-metric-is-never-enough-to-evaluate-generative-ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learning and sharing one concept at a time &lt;/p&gt;

</description>
      <category>ai</category>
      <category>learning</category>
      <category>qualityengineering</category>
      <category>modelevaluation</category>
    </item>
    <item>
      <title>Fine‑Tuning Isn’t Optional for Production‑Ready AI</title>
      <dc:creator>Hemalatha Nambiradje</dc:creator>
      <pubDate>Wed, 29 Apr 2026 13:15:55 +0000</pubDate>
      <link>https://dev.to/hema_nambi_66c9/fine-tuning-isnt-optional-for-production-ready-ai-263j</link>
      <guid>https://dev.to/hema_nambi_66c9/fine-tuning-isnt-optional-for-production-ready-ai-263j</guid>
      <description>&lt;p&gt;Foundation models are powerful, but out‑of‑the‑box they’re rarely production‑ready. Fine‑tuning is what helps align AI systems with real business needs, safety expectations, and quality standards.&lt;br&gt;
From a QA engineer’s perspective, fine‑tuning—through approaches like instruction tuning and RLHF—is critical for improving reliability, consistency, and trust in AI outputs.&lt;br&gt;
I’ve shared a deeper breakdown of:&lt;/p&gt;

&lt;p&gt;what fine‑tuning really means&lt;br&gt;
why it’s needed for production systems&lt;br&gt;
how QA principles apply to data preparation and evaluation&lt;/p&gt;

&lt;p&gt;Read the full post here:&lt;br&gt;
&lt;a href="https://hemaai.hashnode.dev/fine-tuning-isn-t-optional-how-qa-engineers-make-ai-models-production-ready" rel="noopener noreferrer"&gt;https://hemaai.hashnode.dev/fine-tuning-isn-t-optional-how-qa-engineers-make-ai-models-production-ready&lt;/a&gt;&lt;br&gt;
Learning and sharing one day at a time&lt;/p&gt;

</description>
      <category>finetuning</category>
      <category>qualityengineering</category>
      <category>learning</category>
      <category>ai</category>
    </item>
    <item>
      <title>Understanding the Generative AI Application Lifecycle</title>
      <dc:creator>Hemalatha Nambiradje</dc:creator>
      <pubDate>Thu, 23 Apr 2026 12:59:23 +0000</pubDate>
      <link>https://dev.to/hema_nambi_66c9/understanding-the-generative-ai-application-lifecycle-1k78</link>
      <guid>https://dev.to/hema_nambi_66c9/understanding-the-generative-ai-application-lifecycle-1k78</guid>
      <description>&lt;p&gt;Generative AI isn’t just about writing prompts — real applications follow a clear lifecycle: defining a use case, selecting the right foundation model, improving performance, evaluating results, and deploying responsibly.&lt;br&gt;
Understanding this lifecycle is key to building AI systems that are reliable, testable, and useful in the real world.&lt;br&gt;
I’ve shared a concise breakdown of the Generative AI application lifecycle here &lt;br&gt;
👉 Read more: &lt;a href="https://hemaai.hashnode.dev/building-generative-ai-applications-the-right-way" rel="noopener noreferrer"&gt;https://hemaai.hashnode.dev/building-generative-ai-applications-the-right-way&lt;/a&gt;&lt;br&gt;
Learning and sharing one concept at a time 🚀&lt;/p&gt;

&lt;h1&gt;
  
  
  GenerativeAI #ArtificialIntelligence #SoftwareEngineering #LearningInPublic #QualityEngineering
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>qualityengineering</category>
      <category>softwareengineering</category>
      <category>generativeai</category>
    </item>
    <item>
      <title>Why ML Models Break After Deployment</title>
      <dc:creator>Hemalatha Nambiradje</dc:creator>
      <pubDate>Tue, 21 Apr 2026 13:08:28 +0000</pubDate>
      <link>https://dev.to/hema_nambi_66c9/why-ml-models-break-after-deployment-4d42</link>
      <guid>https://dev.to/hema_nambi_66c9/why-ml-models-break-after-deployment-4d42</guid>
      <description>&lt;p&gt;Many machine learning models perform great during training—but start failing once they reach production.&lt;br&gt;
From my recent learning in MLOps and AI testing, I’ve realized that the issue isn’t usually the model itself. It’s the lack of operational practices like monitoring, drift detection, safe deployments, and retraining.&lt;br&gt;
I wrote a short post explaining:&lt;/p&gt;

&lt;p&gt;why ML models degrade in production&lt;br&gt;
how data and concept drift impact predictions&lt;br&gt;
where MLOps and QA make a real difference&lt;/p&gt;

&lt;p&gt;Read the full article here:&lt;br&gt;
&lt;a href="https://hemaai.hashnode.dev/why-machine-learning-models-break-after-deployment" rel="noopener noreferrer"&gt;https://hemaai.hashnode.dev/why-machine-learning-models-break-after-deployment&lt;/a&gt;&lt;br&gt;
Would love to hear how your teams handle ML failures in production &lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>testing</category>
      <category>learning</category>
    </item>
    <item>
      <title>QA Engineers Have an Unfair Advantage in Machine Learning</title>
      <dc:creator>Hemalatha Nambiradje</dc:creator>
      <pubDate>Sat, 18 Apr 2026 01:07:34 +0000</pubDate>
      <link>https://dev.to/hema_nambi_66c9/qa-engineers-have-an-unfair-advantage-in-machine-learning-3iim</link>
      <guid>https://dev.to/hema_nambi_66c9/qa-engineers-have-an-unfair-advantage-in-machine-learning-3iim</guid>
      <description>&lt;p&gt;Most ML models don’t fail because of bad algorithms.&lt;br&gt;
They fail because no one properly evaluates them.&lt;/p&gt;

&lt;p&gt;That’s where a QA mindset changes everything.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Think Like a Tester, Not Just a Builder&lt;/p&gt;

&lt;p&gt;In ML:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Training = writing code&lt;/li&gt;
&lt;li&gt;Validation = testing &amp;amp; tuning&lt;/li&gt;
&lt;li&gt;Test set = final regression&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Sound familiar?&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;⚖️ The Real Risk Isn’t Accuracy&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Overfitting → model memorizes data&lt;/li&gt;
&lt;li&gt;Underfitting → model misses patterns&lt;/li&gt;
&lt;li&gt;Goal → a balanced model that generalizes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 “High accuracy” can still mean a bad model.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;📊 Metrics That Actually Matter&lt;/p&gt;

&lt;p&gt;Stop relying only on accuracy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Precision → Are predicted defects actually defects?&lt;/li&gt;
&lt;li&gt;Recall → Are we missing critical defects?&lt;/li&gt;
&lt;li&gt;MSE / R² → For predicting numbers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 In QA terms: Missing a bug is worse than a false alarm.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;💼 If It Doesn’t Help the Business, It’s Useless&lt;/p&gt;

&lt;p&gt;A model isn’t successful because it scores well.&lt;br&gt;
It’s successful if it creates impact.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A/B testing&lt;/li&gt;
&lt;li&gt;Canary deployments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Same principles as production rollouts in QA.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;💭 Final Thought&lt;/p&gt;

&lt;p&gt;We’re not just testing features anymore.&lt;br&gt;
We’re testing intelligence.&lt;/p&gt;

&lt;p&gt;And honestly? QA engineers are built for this.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;🔗 Read the full breakdown:&lt;br&gt;
&lt;a href="https://hemaai.hashnode.dev/evaluating-ml-models-like-a-qa-engineer-not-a-data-scientist" rel="noopener noreferrer"&gt;https://hemaai.hashnode.dev/evaluating-ml-models-like-a-qa-engineer-not-a-data-scientist&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>qa</category>
      <category>testing</category>
    </item>
    <item>
      <title>Breaking Things and Building Better Tests: A Hackathon Snapshot</title>
      <dc:creator>Hemalatha Nambiradje</dc:creator>
      <pubDate>Thu, 16 Apr 2026 20:18:12 +0000</pubDate>
      <link>https://dev.to/hema_nambi_66c9/breaking-things-and-building-better-tests-a-hackathon-snapshot-2337</link>
      <guid>https://dev.to/hema_nambi_66c9/breaking-things-and-building-better-tests-a-hackathon-snapshot-2337</guid>
      <description>&lt;p&gt;I recently participated in the Breaking Things Hackathon hosted by Hashnode and sponsored by Bug0, and it turned out to be a genuinely fun and refreshing experience.&lt;br&gt;
What made this hackathon special for me was how closely it aligned with my day‑to‑day work. As a Senior SDET, I use Playwright extensively with a traditional Page Object Model (POM) approach—defining locators, managing workflows, handling inheritance, and constantly maintaining selectors as the UI evolves. While powerful, this style often means spending more time on framework maintenance than on actual testing.&lt;br&gt;
During the hackathon, I explored Playwright with Passmark, and the difference was immediately noticeable.&lt;br&gt;
I didn’t have to worry about finding each element, writing XPath selectors, or structuring complex POM classes. Instead, I could focus on user flows and test intent. The tests were easy to read—even for someone without a strong coding background—and extremely quick to create. In a short time, I wrote close to 30 regression tests that were fast, stable, and surprisingly resilient thanks to self‑healing capabilities.&lt;br&gt;
Another highlight was how effortless cross‑browser testing felt. With minimal setup, I could execute tests across browsers without additional configuration or boilerplate.&lt;br&gt;
This hackathon challenged a few long‑held assumptions for me:&lt;/p&gt;

&lt;p&gt;Automation doesn’t need to be complex to be effective&lt;br&gt;
Tests don’t have to be hard to read to be reliable&lt;br&gt;
AI can genuinely boost tester productivity, not complicate it&lt;/p&gt;

&lt;p&gt;You can find the project I worked on here:&lt;br&gt;
&lt;a href="https://github.com/Hema-Nambi/passmark-project" rel="noopener noreferrer"&gt;https://github.com/Hema-Nambi/passmark-project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A big thank you to Hashnode for hosting and Bug0 for sponsoring such a great event. Hackathons like this encourage learning by doing and make space for testers to explore modern, AI‑driven approaches to quality engineering.&lt;/p&gt;

&lt;p&gt;Read the full post on Hashnode: &lt;a href="https://hemaai.hashnode.dev/breaking-things-and-building-better-tests-my-hackathon-experience" rel="noopener noreferrer"&gt;https://hemaai.hashnode.dev/breaking-things-and-building-better-tests-my-hackathon-experience&lt;/a&gt;?&lt;/p&gt;

</description>
      <category>hackathon</category>
      <category>testing</category>
      <category>playwright</category>
      <category>automation</category>
    </item>
    <item>
      <title>Making AI Work With Humans — Not Against Them</title>
      <dc:creator>Hemalatha Nambiradje</dc:creator>
      <pubDate>Wed, 15 Apr 2026 19:00:56 +0000</pubDate>
      <link>https://dev.to/hema_nambi_66c9/making-ai-work-with-humans-not-against-them-9b8</link>
      <guid>https://dev.to/hema_nambi_66c9/making-ai-work-with-humans-not-against-them-9b8</guid>
      <description>&lt;p&gt;AI is getting smarter every day — but today I learned something more important than model size or accuracy.&lt;/p&gt;

&lt;p&gt;AI is only valuable if it works with humans, not instead of them.&lt;br&gt;
Today’s learning focused on human‑centered AI, feedback‑driven learning, and safety — the pillars that turn AI from a risky black box into a trusted partner.&lt;br&gt;
Key Takeaways&lt;/p&gt;

&lt;p&gt;Human‑Centered Design (HCD)&lt;br&gt;
AI should support human decision‑making, not override it.&lt;br&gt;
Good AI explains uncertainty, highlights risks, and keeps humans in control.&lt;/p&gt;

&lt;p&gt;Reinforcement Learning from Human Feedback (RLHF)&lt;br&gt;
AI improves by learning from human preferences — not just data.&lt;br&gt;
This is what makes modern AI more helpful, aligned, and safer.&lt;/p&gt;

&lt;p&gt;Safety &amp;amp; Transparency&lt;br&gt;
Powerful AI without explainability is a liability.&lt;br&gt;
Trust comes from knowing why a model behaves the way it does — and when humans should step in.&lt;/p&gt;

&lt;p&gt;Why This Matters for QA &amp;amp; Engineering&lt;br&gt;
Testing AI isn’t just about accuracy and performance.&lt;br&gt;
It’s about trust, explainability, bias detection, and safe failure paths.&lt;br&gt;
QA teams are becoming the ethical guardians of AI systems.&lt;br&gt;
The future of AI isn’t autonomous — it’s collaborative.&lt;/p&gt;

&lt;p&gt;Read the full post on Hashnode:&lt;br&gt;
&lt;a href="https://hemaai.hashnode.dev/making-ai-work-with-humans-not-against-them" rel="noopener noreferrer"&gt;https://hemaai.hashnode.dev/making-ai-work-with-humans-not-against-them&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
      <category>learning</category>
      <category>qa</category>
    </item>
    <item>
      <title>The Machine Learning Development Lifecycle (And Why QA Matters)</title>
      <dc:creator>Hemalatha Nambiradje</dc:creator>
      <pubDate>Wed, 15 Apr 2026 16:45:57 +0000</pubDate>
      <link>https://dev.to/hema_nambi_66c9/the-machine-learning-development-lifecycle-and-why-qa-matters-10lb</link>
      <guid>https://dev.to/hema_nambi_66c9/the-machine-learning-development-lifecycle-and-why-qa-matters-10lb</guid>
      <description>&lt;p&gt;Machine learning doesn’t fail because models are bad.&lt;br&gt;
It fails because quality is ignored across the lifecycle.&lt;br&gt;
As a Quality Engineer, this realization was eye‑opening.&lt;br&gt;
ML isn’t just training a model — it’s a continuous lifecycle:&lt;/p&gt;

&lt;p&gt;business goals&lt;br&gt;
problem framing&lt;br&gt;
data processing&lt;br&gt;
model development&lt;br&gt;
deployment&lt;br&gt;
monitoring&lt;br&gt;
retraining&lt;/p&gt;

&lt;p&gt;And QA has a role in every single stage — from defining testable goals to detecting data drift and regression issues in retrained models.&lt;br&gt;
If ML systems are probabilistic, data-driven, and constantly evolving…&lt;br&gt;
then testing must focus on behavior, not just logic.&lt;br&gt;
👉 Read the full deep dive on Hashnode:&lt;br&gt;
&lt;a href="https://hemaai.hashnode.dev/the-machine-learning-development-lifecycle-and-why-qa-is-critical-at-every-stage" rel="noopener noreferrer"&gt;https://hemaai.hashnode.dev/the-machine-learning-development-lifecycle-and-why-qa-is-critical-at-every-stage&lt;/a&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>testing</category>
      <category>ai</category>
      <category>learning</category>
    </item>
    <item>
      <title>First Post on DEV — A Quick Hello</title>
      <dc:creator>Hemalatha Nambiradje</dc:creator>
      <pubDate>Wed, 15 Apr 2026 15:14:42 +0000</pubDate>
      <link>https://dev.to/hema_nambi_66c9/first-post-on-dev-a-quick-hello-19eh</link>
      <guid>https://dev.to/hema_nambi_66c9/first-post-on-dev-a-quick-hello-19eh</guid>
      <description>&lt;p&gt;This is my first article on DEV.to, and I’m excited to share my learning journey here.&lt;br&gt;
I’m a Senior SDET with 9 years of experience in software testing and quality engineering, and I’ve recently started learning how machine learning and AI systems are built, deployed, and tested. Through this series, I’m documenting what I learn—from a QA and testing perspective—and sharing practical insights that engineers can apply in real systems.&lt;br&gt;
If you’re a:&lt;/p&gt;

&lt;p&gt;QA / SDET&lt;br&gt;
Software engineer&lt;br&gt;
Data or ML practitioner&lt;br&gt;
Or someone curious about testing AI systems&lt;/p&gt;

&lt;p&gt;…I hope you’ll find this useful.&lt;br&gt;
I’d love your feedback, questions, or different perspectives in the comments &lt;br&gt;
Let’s learn together.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>testing</category>
      <category>qualityassurance</category>
    </item>
  </channel>
</rss>
