<?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: Hiya Lukka</title>
    <description>The latest articles on DEV Community by Hiya Lukka (@hiya_24477).</description>
    <link>https://dev.to/hiya_24477</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%2F3651043%2F66a58638-a9b4-42c8-817a-6192f878c9fe.jpg</url>
      <title>DEV Community: Hiya Lukka</title>
      <link>https://dev.to/hiya_24477</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hiya_24477"/>
    <language>en</language>
    <item>
      <title>My Instagram saves were a graveyard. So I put a sloth on my laptop to dig through it.</title>
      <dc:creator>Hiya Lukka</dc:creator>
      <pubDate>Sun, 25 Oct 2026 07:55:33 +0000</pubDate>
      <link>https://dev.to/hiya_24477/my-instagram-saves-were-a-graveyard-so-i-put-a-sloth-on-my-laptop-to-dig-through-it-28n4</link>
      <guid>https://dev.to/hiya_24477/my-instagram-saves-were-a-graveyard-so-i-put-a-sloth-on-my-laptop-to-dig-through-it-28n4</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I have a folder on Instagram called "python". Another one called "ai". Every time a reel promises to teach me something in 60 seconds, I tap save and feel like I already learned it.&lt;/p&gt;

&lt;p&gt;I have never opened that folder to study. Saving felt like progress, so I never needed to read.&lt;/p&gt;

&lt;p&gt;That folder is the laziest thing about me, so I built the laziest possible fix: I stopped trying to be more disciplined and made a sloth do the reading.&lt;/p&gt;

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

&lt;p&gt;SlothShelf is a local-first AI that reads the links you saved and never opened, then tells you which few are worth your time.&lt;/p&gt;

&lt;p&gt;You paste links, drop a bookmarks file or a WhatsApp "message yourself" export. A Gemma model running on your own laptop reads every page and writes a card for it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verdict: read, skim or skip, with a one-line reason&lt;/li&gt;
&lt;li&gt;The gist in a short paragraph&lt;/li&gt;
&lt;li&gt;4 to 8 key points: tools, commands, steps, numbers&lt;/li&gt;
&lt;li&gt;A "worth knowing" list of the tools and concepts it mentioned
one thing to try after reading&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On Sunday, it builds &lt;strong&gt;a PDF digest&lt;/strong&gt;: your best picks with the full detail, the rest of the shelf grouped by topic, a safe-to-skip list, and a list of everything it could not read. The idea is that the PDF is the thing you read. The 40 tabs are not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who gets to be lazier?&lt;/strong&gt; Anyone who saves ten things a week and reads none of them. That is me, and probably you.&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%2F3syi93v6fagze2h1pxnl.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%2F3syi93v6fagze2h1pxnl.png" alt=" " width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Live demo page (sample data, so you can click around without installing anything): &lt;a href="https://hiyalukka.github.io/slothshelf/" rel="noopener noreferrer"&gt;https://hiyalukka.github.io/slothshelf/&lt;/a&gt;&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%2F6knuvys6g34cmn41vy43.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%2F6knuvys6g34cmn41vy43.png" alt=" " width="799" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/hiyalukka" rel="noopener noreferrer"&gt;
        hiyalukka
      &lt;/a&gt; / &lt;a href="https://github.com/hiyalukka/slothshelf" rel="noopener noreferrer"&gt;
        slothshelf
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Slothshelf
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;SlothShelf&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Save fast. Read slow. Skip the rest.&lt;/strong&gt;
A local-first AI that reads the links and reels you saved, then tells you which few are worth your time.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hiyalukka.github.io/slothshelf/" rel="nofollow noopener noreferrer"&gt;Live demo&lt;/a&gt; | Built for the DEV Hacktoberfest Open-Source AI Challenge, "Slow and Steady" | Categories: MongoDB Atlas, Gemma&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it does&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Paste links, drop a bookmarks file or a WhatsApp export. A local Gemma model reads each page and writes a card:&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;What you get&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Verdict&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;read&lt;/strong&gt;, &lt;strong&gt;skim&lt;/strong&gt; or &lt;strong&gt;skip&lt;/strong&gt;, with a one-line reason&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gist&lt;/td&gt;
&lt;td&gt;A short paragraph covering the main ideas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Key points&lt;/td&gt;
&lt;td&gt;4 to 8 concrete points: tools, commands, steps, numbers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Worth knowing&lt;/td&gt;
&lt;td&gt;Tools and concepts mentioned, in one line each&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Try this&lt;/td&gt;
&lt;td&gt;One action to take after reading&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Every week it builds a &lt;strong&gt;PDF digest&lt;/strong&gt;: your top picks with full detail, the rest of your shelf grouped by topic, a safe-to-skip list and anything…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/hiyalukka/slothshelf" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;Links → Deduplication → Fetch &amp;amp; Clean → Gemma Card + Embeddings → MongoDB Atlas&lt;/p&gt;

&lt;p&gt;↳ Goals &amp;amp; Taste: Personalization signals that influence the system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The open-source AI:&lt;/strong&gt; Gemma (gemma2:2b) writes the cards, and nomic-embed-text makes the embeddings. Both run through Ollama, so no page text ever leaves the laptop. I use Ollama's structured output: the model has to return JSON that matches a Pydantic schema (verdict, key points, terms, topic), so the app gets data it can store instead of prose it has to parse.&lt;/p&gt;

&lt;p&gt;MongoDB Atlas is the memory, not just the storage. There are three collections:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; one document per link, with the card and a 768-number embedding&lt;br&gt;
&lt;strong&gt;Memory:&lt;/strong&gt; my goals, plus a weight per tag that moves when I react to a card (+1 read, +2 loved, -1 skipped)&lt;br&gt;
&lt;strong&gt;Digests:&lt;/strong&gt; one document per ISO week&lt;/p&gt;

&lt;p&gt;Atlas Vector Search does two jobs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find by meaning: I can type "that thing about evaluating RAG" and get the closest saved links, even if none of them contain those words.&lt;/li&gt;
&lt;li&gt;Taste retrieval: Before Gemma judges a new link, I pull the closest links I previously loved and put them in the prompt.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the sloth does not just score links against a generic idea of "good". It scores them against what I actually kept.&lt;br&gt;
It keeps score on itself. The app shows an agreement rate: of the links I acted on, how often did my choice match the sloth's verdict? A tool that tells you what to read should show you how often it is right.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;A saved-links folder says more about you than almost anything else you own. Mine shows which careers I am eyeing, which skills I feel behind on, which hackathons I am scared of. I did not want to hand that to an API, and with open weights I did not have to.&lt;/p&gt;

&lt;p&gt;Three things open models made possible that a closed API would not:&lt;/p&gt;

&lt;p&gt;Privacy by default: Gemma reads the pages on my machine. Atlas only stores the card, the embedding and my signals.&lt;br&gt;
No meter running: Reading a backlog means hundreds of calls. Locally, a big pile costs time, not money, so nobody has to decide a link is "not worth the tokens".&lt;br&gt;
Swappable parts: The card model is one line in .env. Any model Ollama can run works, and I can inspect or change every prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;Here are my real numbers from running it on my own saves:&lt;/p&gt;

&lt;p&gt;Links imported: 6&lt;br&gt;
Read by Gemma:  5&lt;br&gt;
Verdicts:   3 read / 1 skim / 1 skip&lt;br&gt;
Links I actually opened from the digest:    4&lt;br&gt;
Agreement rate: 78% over 42 links&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of MongoDB Atlas&lt;/strong&gt;: Atlas holds the cards, the memory loop and the weekly digests, and Atlas Vector Search powers both find-by-meaning and taste retrieval.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best use of Gemma:&lt;/strong&gt; Gemma writes every card, locally, with schema-constrained output&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Your Client’s GST Bills Never Leave the Laptop: BillBook</title>
      <dc:creator>Hiya Lukka</dc:creator>
      <pubDate>Fri, 16 Oct 2026 08:05:47 +0000</pubDate>
      <link>https://dev.to/hiya_24477/your-clients-gst-bills-never-leave-the-laptop-billbook-1ml8</link>
      <guid>https://dev.to/hiya_24477/your-clients-gst-bills-never-leave-the-laptop-billbook-1ml8</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Built&lt;/strong&gt;&lt;br&gt;
BillBook turns GST bill photos into verified, import-ready rows for Tally or Excel. It runs entirely in your browser, so client data never leaves the laptop.&lt;/p&gt;

&lt;p&gt;Picture a small accounting practice in the last week of the month. A pile of supplier bills, some photographed at an angle, some in Hindi or Gujarati, all waiting to be typed into Tally by hand. It’s slow, error-prone work, and it’s billed by the hour.&lt;/p&gt;

&lt;p&gt;The obvious fix is to upload every bill to a cloud AI. For an accountant that’s a non-starter. Those bills carry a client’s vendors, GSTINs and margins. And a per-bill API cost eats the thin margin on exactly the small clients who need the help most.&lt;/p&gt;

&lt;p&gt;BillBook takes the other route:&lt;/p&gt;

&lt;p&gt;Drop a bill (photo or PDF) and a Gemma model of your choice reads it on your own device. Pick a smaller one for older laptops or a larger one for harder bills.&lt;br&gt;
Get a structured row: vendor, GSTIN, invoice number, date, taxable value, CGST, SGST, IGST and total.&lt;br&gt;
See a status on every row. Only rows marked OK are safe to import without a look.&lt;br&gt;
Edit any cell and the checks re-run instantly.&lt;br&gt;
Export to CSV for Tally or Excel.&lt;br&gt;
Works for English, English + Hindi, and English + Gujarati bills.&lt;/p&gt;
&lt;h2&gt;
  
  
  Who would pay:
&lt;/h2&gt;

&lt;p&gt;GST practitioners, bookkeepers and small CA offices handling bills for several small-business clients. They bill for data entry today. BillBook cuts the time per bill and costs ₹0 per bill to run.&lt;/p&gt;
&lt;h2&gt;
  
  
  The side hustle:
&lt;/h2&gt;

&lt;p&gt;A freelancer or student bookkeeper can offer “bill digitisation” to local businesses at a flat monthly fee. There’s no API bill and no server to maintain, so the margin is the whole fee.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Demo&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;🔗 Live app: &lt;a href="https://hiyalukka.github.io/Bill-Book/" rel="noopener noreferrer"&gt;https://hiyalukka.github.io/Bill-Book/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Needs a WebGPU browser (Chrome or Edge). The first model load takes a few minutes, then it’s cached locally.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Code&lt;/strong&gt;
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/hiyalukka" rel="noopener noreferrer"&gt;
        hiyalukka
      &lt;/a&gt; / &lt;a href="https://github.com/hiyalukka/Bill-Book" rel="noopener noreferrer"&gt;
        Bill-Book
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🧾 BillBook: bills in, books out&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Turn a photo or PDF of an Indian GST bill into a clean, verified row ready for Excel or Tally. An open-weight AI model reads the bill inside your browser, so the bill itself is never uploaded anywhere.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hiyalukka.github.io/Bill-Book/" rel="nofollow noopener noreferrer"&gt;&lt;strong&gt;Live demo →&lt;/strong&gt;&lt;/a&gt; ·&lt;/p&gt;
&lt;p&gt;Built for the DEV × Hacktoberfest Week 3 challenge, &lt;em&gt;Side Hustle&lt;/em&gt;: open-source AI that someone would actually pay for.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The problem&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;A small accountant or shopkeeper receives bills as WhatsApp photos, crumpled paper, and inconsistent PDFs. Someone then retypes vendor, GSTIN, date, taxable amount, CGST/SGST/IGST, and total into a sheet by hand. It is slow, boring, and one wrong digit can cause a GST mismatch.&lt;/p&gt;
&lt;p&gt;Sending client financial documents to a cloud AI is often not an option, and per-bill API fees eat into a small tool's margin.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What BillBook does&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Cleans the image&lt;/strong&gt; (grayscale, contrast, sensible resizing).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reads the text&lt;/strong&gt;…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/hiyalukka/Bill-Book" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;BillBook is a static site hosted on GitHub Pages, with no backend. All inference happens in the user’s browser.&lt;/p&gt;

&lt;p&gt;Open-weight stack&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Models&lt;/strong&gt;: a picker offering different gemma and qwen models, running on-device via WebGPU. &lt;br&gt;
Text from the bill: OCR engine, or "Gemma reads the image directly", with English, Hindi and Gujarati options&lt;br&gt;
Frontend: html, hosted on GitHub Pages&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why a model picker instead of one fixed model?:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Users have very different hardware. A small Gemma loads fast on a modest laptop but misses more fields. A larger one is more accurate but needs more memory and a longer first download. Rather than guess for everyone, BillBook lets the user choose.&lt;/p&gt;

&lt;p&gt;Gemma is a small model running in a browser tab, and small models make mistakes. In accounting, a confidently wrong ₹11,800 is worse than no answer. So extraction is only half the pipeline. Every row passes three independent checks before it earns an OK:&lt;/p&gt;

&lt;p&gt;GSTIN checksum. A GSTIN carries a check character, so a hallucinated or misread number fails validation.&lt;br&gt;
Tax arithmetic. Taxable value plus CGST, SGST and IGST must reconcile to the total.&lt;br&gt;
Grounding. Every number Gemma outputs must appear in the scanned text. If the model invents a figure that isn’t on the bill, it’s caught.&lt;/p&gt;

&lt;p&gt;The checks are plain deterministic code, so Gemma can be wrong without the user being misled. Failed rows are flagged for review instead of silently imported. Editing a cell re-runs all three checks, so the human fix and the machine verification live in one loop. It also makes the model picker safe: switching to a smaller model is fine because its mistakes get flagged.&lt;/p&gt;

&lt;p&gt;Limits I’m upfront about. PDFs process page 1 only. Handwritten or badly skewed bills fail more often, which is what the status column is for. [Add anything else you found.]&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Does Open Innovation Matter?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Four things BillBook does only because Gemma’s weights are open:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy by architecture, not by policy:&lt;/strong&gt;&lt;br&gt;
 A closed API means sending financial documents to someone else’s servers and trusting their terms. With Gemma running in the browser, the data physically can’t leave the device. For accountants, that turns “can I use AI on client data?” into a yes.&lt;br&gt;
&lt;strong&gt;₹0 per bill is a real business model. Per-token pricing punishes high-volume, low-margin work like bill entry&lt;/strong&gt;. Local inference makes the marginal cost zero, which is what lets a student or freelancer run this as a side hustle.&lt;br&gt;
&lt;strong&gt;Open weights let me design around the model’s weaknesses&lt;/strong&gt;. Because Gemma runs on the user’s own machine, I could watch how it fails on real bills and build the verification layer around those failures. With a hosted API I’d be hoping the vendor’s next update doesn’t change its behaviour on my bills.&lt;br&gt;
&lt;strong&gt;Users choose the trade-off, not a vendor&lt;/strong&gt;. With a closed API you get whichever model the provider serves, at whatever price they set. With open Gemma weights, BillBook offers a size choice and each user picks speed versus accuracy for their own hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  My First User
&lt;/h2&gt;

&lt;p&gt;A small grocery shop owner in my neighbourhood. His shop handles supplier bills every week, and he keeps the records by hand.&lt;/p&gt;

&lt;p&gt;I showed him BillBook on my laptop and walked him through a sample bill. His reaction was about three problems he already lives with:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time&lt;/strong&gt;: Writing up bills by hand takes a long stretch of his day, and the work is tedious and complicated. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fragile records:&lt;/strong&gt; Paper records aren’t permanent. A bill can be lost, damaged or misplaced, and then the record is gone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where the data goes:&lt;/strong&gt; He liked that the bills are read on the device and don’t go to anyone else’s server. For a shop owner, supplier prices and purchase volumes are business information he wants to keep private.&lt;/p&gt;

&lt;p&gt;What struck me is that he didn’t ask about the AI. He cared about the three things above.&lt;/p&gt;

&lt;p&gt;Honest status: he hasn’t paid for it, and this was a first demo, not a long-term trial.&lt;/p&gt;

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

&lt;p&gt;Build with gemma category&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Your Phone Is the Worst Part of a Walk. So I Built an AI That Hides It.</title>
      <dc:creator>Hiya Lukka</dc:creator>
      <pubDate>Sun, 11 Oct 2026 05:46:36 +0000</pubDate>
      <link>https://dev.to/hiya_24477/your-phone-is-the-worst-part-of-a-walk-so-i-built-an-ai-that-hides-it-47hm</link>
      <guid>https://dev.to/hiya_24477/your-phone-is-the-worst-part-of-a-walk-so-i-built-an-ai-that-hides-it-47hm</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Every AI product I know measures success the same way: how long you stay. Sessions, minutes, daily actives. For a challenge about getting people off the screen, that metric is exactly backwards.&lt;/p&gt;

&lt;p&gt;So I built Look First, an AI naturalist with one unusual goal: to be used for as little time as possible.&lt;/p&gt;

&lt;p&gt;Here is how a session goes:&lt;/p&gt;

&lt;p&gt;It refuses to name anything. Instead, it gives you three tiny tasks. Look at the edge of a leaf. Touch the bark. Listen for a repeating call.&lt;br&gt;
The screen goes dark. A phone-away timer takes over the whole page: "Eyes up. I'll be here when you get back, and I'm happiest when you don't need me." Two minutes. You go and look.&lt;br&gt;
You come back and report what you noticed. Only now does it answer, with a best guess, a confidence level (low, medium or high), one honest thing it might be getting wrong, and one tiny next quest nearby.&lt;br&gt;
It tells you how long you spent outside. "You spent 2:00 looking up instead of scrolling." That number goes into a downloadable markdown field journal.&lt;/p&gt;

&lt;p&gt;Most identifiers turn a living thing into a search result. Look First tries to turn you into someone who notices. By the third time you do the tasks, you may not need the answer at all, which is the point.&lt;/p&gt;

&lt;p&gt;It is for anyone who has walked past the same tree every day and never learned what it was: students on campus, new hikers, a parent with a curious kid.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://hiyalukka.github.io/Look-first/" rel="noopener noreferrer"&gt;https://hiyalukka.github.io/Look-first/&lt;/a&gt;&lt;br&gt;
The first visit downloads the model once, then it runs on your device. (Yes, I know the irony of a slow first load in a project about leaving the screen.)&lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/hiyalukka" rel="noopener noreferrer"&gt;
        hiyalukka
      &lt;/a&gt; / &lt;a href="https://github.com/hiyalukka/Look-first" rel="noopener noreferrer"&gt;
        Look-first
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🌿 Look First&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;An AI naturalist that makes you look up before it answers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most plant and bird identifiers keep you staring at a screen. Look First does the opposite: it refuses to name anything until you've actually &lt;em&gt;looked&lt;/em&gt;, then reveals what you found. It runs entirely in your browser using an open-weight model (Gemma), with no server and no API key.&lt;/p&gt;

&lt;p&gt;Built for the &lt;strong&gt;DEV Hacktoberfest Open-Source AI Challenge, Week 1: Touch Grass&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://hiyalukka.github.io/Look-first/" rel="nofollow noopener noreferrer"&gt;▶ Try the live app&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The idea&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;Every AI product measures success by how long you stay. Look First measures success by how little you use it.&lt;/p&gt;


&lt;ol&gt;

&lt;li&gt;

&lt;strong&gt;📍 Say where you are.&lt;/strong&gt; One sentence about what's around you.&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;👀 Get three tiny tasks.&lt;/strong&gt; Look at the leaf edge, touch the bark, listen for the call. The AI will not identify anything yet.&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;⏱ The screen goes dark.&lt;/strong&gt; A two-minute "Eyes up" timer takes over…&lt;/li&gt;

&lt;/ol&gt;&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/hiyalukka/Look-first" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;&lt;br&gt;
One index.html file. No backend, no build step, no API key.

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

&lt;p&gt;The open pieces do all the work:&lt;/p&gt;

&lt;p&gt;Gemma (gemma-2-2b-it, 4-bit quantized), an open-weight model from Google.&lt;br&gt;
WebLLM, open-source in-browser inference that fetches the model into the browser and runs it on the device GPU through WebGPU.&lt;br&gt;
Plain HTML, CSS and JavaScript on top.&lt;/p&gt;

&lt;p&gt;The idea lives in the prompt, not the code. The model gets a strict two-turn script. On turn one it is forbidden from identifying anything and must give exactly three short observation tasks. On turn two it uses my observations to guess, and it must state a confidence level and what it might be wrong about.&lt;/p&gt;

&lt;p&gt;That second rule came from a real worry. A 2B model can sound completely sure while inventing a species. Instead of hiding that weakness, I built it into the product: every answer admits its uncertainty. Because the person has just examined the real thing, they are a better judge of the answer than the model is.&lt;/p&gt;

&lt;p&gt;Why browser-only? Honestly, it started as a workaround. I did not have Ollama installed and the deadline was that same day. But the constraint became a feature: anyone can open a link and run the AI, with nothing to install.&lt;/p&gt;

&lt;p&gt;Known limits:&lt;/p&gt;

&lt;p&gt;It is text-only. You describe what you see, and it does not look at photos yet.&lt;br&gt;
It needs a WebGPU browser (recent Chrome or Edge).&lt;br&gt;
The first load is a large one-time download.&lt;br&gt;
A small model will sometimes be wrong. Check a local field guide.&lt;/p&gt;

&lt;p&gt;My Field Test&lt;/p&gt;

&lt;p&gt;I took Look First to the garden behind my campus library for about 15 minutes, and tried it on three things: a big tree, a small yellow flower and a bird I couldn’t see.&lt;/p&gt;

&lt;p&gt;What it got right. For the tree, it asked me to look at the leaf edge and feel the bark. I typed “leaves smooth-edged, bark grey and peeling in flakes.” It guessed a plane tree with medium confidence and said the peeling bark was the main clue. Checking later, that matched. What I noticed was that I’d walked past that tree for a year and never touched the bark.&lt;/p&gt;

&lt;p&gt;Where it struggled. For the bird, I only had a sound to describe, and I wrote “a repeating chirp, then a short whistle.” The AI gave a guess with low confidence and added that sound alone wasn’t enough to be sure. It was honest, but not very useful. I did what I’d do with a person: I waited, spotted the bird on a branch, and went back to the app with a better description. The second guess was more specific.&lt;/p&gt;

&lt;p&gt;The dark screen. The “Eyes up” timer felt a bit awkward for the first ten seconds, since my hand kept reaching for the phone. By the second minute, I’d noticed that the flower had a fuzzy stem, which I wouldn’t have seen otherwise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;A product that wants you to leave is hard to build on a closed API, because a closed API is a meter that runs while you use it. Look First is the opposite of that business model, and open weights are what make it possible.&lt;/p&gt;

&lt;p&gt;It works where the trail is. Once the model is cached, there is no connection to lose. A hosted API fails exactly where signal does, which is outdoors.&lt;br&gt;
Your location stays yours. What you type says where you are and what is around you. Here it never leaves your device.&lt;br&gt;
There is no meter. No API key, no bill that grows when more people use it, so a student can hand the link to a whole campus club.&lt;br&gt;
The model is swappable. The page lists the Gemma models it finds and lets you choose, so a lighter one can run on a weaker laptop.&lt;/p&gt;

&lt;p&gt;Open weights did not make the model smarter than a frontier model. They made it possible to build something with no incentive to keep you looking at it.&lt;/p&gt;

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

&lt;p&gt;Build with Gemma category&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>A professor couldn't find the right AI tool. So I built a model that isn't allowed to guess.</title>
      <dc:creator>Hiya Lukka</dc:creator>
      <pubDate>Sun, 04 Oct 2026 14:10:17 +0000</pubDate>
      <link>https://dev.to/hiya_24477/a-professor-couldnt-find-the-right-ai-tool-so-i-built-a-model-that-isnt-allowed-to-guess-4dpk</link>
      <guid>https://dev.to/hiya_24477/a-professor-couldnt-find-the-right-ai-tool-so-i-built-a-model-that-isnt-allowed-to-guess-4dpk</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;A tool-finder for a friend of mine who teaches economics and commerce. She needs AI tools for research, note-taking and managing her academic work. The last time she went looking for help with a research paper, she came away confused.&lt;/p&gt;

&lt;p&gt;My read is that "research paper" isn't one job. It's finding papers, reading them, managing references, running the numbers and writing, and each of those has different tools. So she types her goal in her own words, and the tool gives her the kinds of work involved, with tools for each.&lt;/p&gt;

&lt;p&gt;The key design choice is that &lt;strong&gt;the model never names a tool.&lt;/strong&gt; Asking a language model "which AI tool should I use?" is risky: its memory of tools is dated, and it can name products that don't exist. Here, Gemma 4 only decides which of seven fixed task types her goal involves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find papers&lt;/li&gt;
&lt;li&gt;Read&lt;/li&gt;
&lt;li&gt;References&lt;/li&gt;
&lt;li&gt;Analyze data&lt;/li&gt;
&lt;li&gt;Write&lt;/li&gt;
&lt;li&gt;Notes&lt;/li&gt;
&lt;li&gt;Teaching and admin&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plain code then looks up tools for those types in a catalog of 21 tools that I wrote by hand.&lt;/p&gt;

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

&lt;p&gt;It runs on a local model, so there is no hosted link. Screenshots are below.&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%2F0mnujb5g73f7g82wpwor.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%2F0mnujb5g73f7g82wpwor.png" alt=" " width="800" height="1130"&gt;&lt;/a&gt;&lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/hiyalukka" rel="noopener noreferrer"&gt;
        hiyalukka
      &lt;/a&gt; / &lt;a href="https://github.com/hiyalukka/ai-tool-guide" rel="noopener noreferrer"&gt;
        ai-tool-guide
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Local, open-model helper that tells a non-technical professor which AI tools to use. Runs on Gemma 4 through Ollama.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Which AI tool should I use?&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A small local tool built for a professor friend who found it hard to pick AI tools for research, notes and teaching.&lt;/p&gt;
&lt;p&gt;She describes her goal in plain words. A local open model (Gemma 4, through Ollama) decides which kinds of work the goal involves. The page then lists tools for each step from a hand-written catalog. The model never names tools itself, so it cannot invent one. Nothing she types leaves her laptop.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/hiyalukka/ai-tool-guide/demo.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fhiyalukka%2Fai-tool-guide%2FHEAD%2Fdemo.png" alt="demo"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Run it&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;You need Ollama and Python installed.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;ollama pull gemma4:e2b&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;In one terminal: &lt;code&gt;ollama serve&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;In another terminal, in this folder: &lt;code&gt;python serve.py&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Open &lt;a href="http://localhost:8000/ai-tool-guide.html" rel="nofollow noopener noreferrer"&gt;http://localhost:8000/ai-tool-guide.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Switch to &lt;code&gt;gemma4:e4b&lt;/code&gt; with the dropdown for better answers, but slower.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Limits&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;The tool catalog is written by hand and covers 21 tools, aimed at economics research and teaching. Tool descriptions may go out of date.&lt;/li&gt;
&lt;li&gt;I did not run a formal evaluation, so…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/hiyalukka/ai-tool-guide" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; Gemma 4 E2B, run locally through Ollama on a 12 GB student laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured output:&lt;/strong&gt; the model's reply is constrained to a JSON schema whose only allowed values are the seven task ids, at temperature 0. That is what makes an invented tool impossible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Catalog:&lt;/strong&gt; a hand-written array in the page, where each tool is tagged with the task types it serves.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Front end:&lt;/strong&gt; one HTML file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server:&lt;/strong&gt; a small Python script that serves the page and forwards requests to Ollama, because browsers blocked the page from calling Ollama directly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Setup:&lt;/strong&gt; &lt;code&gt;ollama pull gemma4:e2b&lt;/code&gt;, then &lt;code&gt;ollama serve&lt;/code&gt;, then &lt;code&gt;python serve.py&lt;/code&gt;. The repo README has the details.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Her data stays with her.&lt;/strong&gt; Unpublished drafts and student work never go to an API.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No internet needed.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Costs nothing to run.&lt;/strong&gt; No key and no billing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Swappable and editable.&lt;/strong&gt; The page has a model dropdown, and the behaviour lives in two things she can change: the task list and the catalog. No vendor decides what gets recommended.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 4 is Apache 2.0.&lt;/strong&gt; That makes it open-source in the plain sense.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What it cost me
&lt;/h3&gt;

&lt;p&gt;I asked Gemini (Flash, in the Gemini app) for help running a regression on survey data from 300 households in Excel. It suggested Excel's built-in Data Analysis ToolPak, a practical answer that needs no code.&lt;/p&gt;

&lt;p&gt;I gave my tool the same question.&lt;/p&gt;

&lt;p&gt;My catalog has no Excel entry, so it could not give Gemini's answer. The restriction that stops it from inventing products also stops it from knowing the obvious one. For a non-coder with spreadsheet data, that is a real cost, and it's the main thing I learned.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I saw
&lt;/h3&gt;

&lt;p&gt;I did not run a formal evaluation, so I won't give accuracy numbers.&lt;/p&gt;

&lt;p&gt;For "120 answer sheets to grade this weekend and it's taking forever", it chose one category, teaching and admin, and returned Gradescope and Notion. The model made a single decision: the category. Tools within a category are not ranked, so both appear. That run took 56.4 seconds on E2B, probably including model loading, and I did not measure warm runs.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's next
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add tools she already has, like Excel, alongside the AI tools.&lt;/li&gt;
&lt;li&gt;Rank tools within a category.&lt;/li&gt;
&lt;li&gt;Have my friend write 15 of her real requests and label the right answers, then measure it properly.&lt;/li&gt;
&lt;li&gt;Compare E2B with E4B.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Gemma.&lt;/strong&gt; Gemma 4 E2B running locally through Ollama.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>When Impressive Code Isn't Actually Working: A Vibe Coding Epiphany</title>
      <dc:creator>Hiya Lukka</dc:creator>
      <pubDate>Sun, 26 Jul 2026 15:52:31 +0000</pubDate>
      <link>https://dev.to/hiya_24477/when-impressive-code-isnt-actually-working-a-vibe-coding-epiphany-2714</link>
      <guid>https://dev.to/hiya_24477/when-impressive-code-isnt-actually-working-a-vibe-coding-epiphany-2714</guid>
      <description>&lt;p&gt;&lt;strong&gt;- The Setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I've been working on a semantic recall application called VaultAI for AI tools and prompts I've previously used and needed to remember, and somewhere along the way, I realised that I've relied too much on "vibe coding" (describing what I want to code and mostly letting the AI generate the actual implementation) to create a chatbot for recalling those entries via a prompt&lt;/p&gt;

&lt;p&gt;This has ultimately led to the creation of an impressive, working demo, which impressed my AI/ML club peers and got me good positive feedback for a presentation I gave at the club&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- The Bug&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A bug that would have been apparent at first glance of the demo wasn't the real bug; it was discovered later when trying to implement more proper API calls and test the chatbot at a closer distance. I ran into issues with some of the API not being handled correctly, and upon inspecting the code to fix them, I noticed that I couldn't actually understand it&lt;/p&gt;

&lt;p&gt;The code I've been working with wasn't simple and elegant; it was overengineered in a way that the AI thought would make it seem better than it actually was. It took me a while to realize that the bug was my own ignorance of the code I was writing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- The Realization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I realized then and there that I didn't actually want to be a software engineer, creating generic applications and websites with no particular purpose other than to fill requirements&lt;/p&gt;

&lt;p&gt;I want to become a machine learning engineer, and to do so, I have to think like one, not a generic software engineer. Vibe coding let me off the hook by doing the easy way out, and the demo worked well enough for me to get positive feedback from others, but I wasn't thinking properly and assumed the code to be good when it wasn't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- The Resolution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So instead of pushing the commits to fix the API calls, I did the responsible thing and decided to rewrite VaultAI from the ground up, in steps&lt;/p&gt;

&lt;p&gt;First, I wrote the lowest-level implementation of VaultAI I possibly could&lt;/p&gt;

&lt;p&gt;I wrote the CLI and got all of the core logic to work, and made sure I understood every single line of code. With that being said, I began working on the next step: working on the backend, slowly implementing it with SQLite, then ChromaDB for vector storage, then FastAPI for the backend API, making sure to understand each and every part before moving on&lt;/p&gt;

&lt;p&gt;While it did take longer than vibe-coding the whole thing at once, it ultimately helped me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- The Resolution Part 2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The resolution wasn't really fixing the bugs; the resolution was me realizing how far I've been letting myself go. Being able to catch myself before I go too far down a slippery slope is important to me, and this time, I've done exactly that.&lt;/p&gt;

&lt;p&gt;If you find yourself in a similar situation to me, I suggest you take a moment to ask yourself why you are even doing what you're doing. If you can't explain all of the code you've written, there is likely something wrong&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>bugsmash</category>
    </item>
    <item>
      <title>What a Creativity Book Taught Me About Being a Better AI/ML Engineer</title>
      <dc:creator>Hiya Lukka</dc:creator>
      <pubDate>Sat, 25 Jul 2026 05:59:40 +0000</pubDate>
      <link>https://dev.to/hiya_24477/what-a-creativity-book-taught-me-about-being-a-better-aiml-engineer-255c</link>
      <guid>https://dev.to/hiya_24477/what-a-creativity-book-taught-me-about-being-a-better-aiml-engineer-255c</guid>
      <description>&lt;p&gt;I picked up a creativity book expecting a light read between semesters. What I got instead was something that quietly rearranged how I think about engineering itself.&lt;/p&gt;

&lt;p&gt;Here's the thing nobody tells you when you start out in AI/ML: the syllabus teaches you tools. It teaches you Python, it teaches you models, it teaches you the math underneath. What it doesn't teach you is the thing that actually separates a good engineer from someone who just knows how to use tools — and that's the part this book is about.&lt;/p&gt;

&lt;p&gt;Creativity isn't invention. It's problem-solving.&lt;/p&gt;

&lt;p&gt;Most people hear "creativity" and think of inventing something out of nothing. The book reframes it completely: creativity is your ability to find possible solutions to a single, specific problem. That's it. Not magic, not talent you're born with a habit you build.&lt;/p&gt;

&lt;p&gt;And the habit starts somewhere uncomfortable: asking questions out loud.&lt;/p&gt;

&lt;p&gt;I noticed this about myself and about a lot of us in tech: we stay quiet when we don't understand something. We Google silently. We assume. We nod along in lectures and figure it out later, alone, at 1 AM. But that silence is exactly where creativity dies. If you never voice the question, you never get pushed toward the answer that isn't the obvious one.&lt;/p&gt;

&lt;p&gt;Connecting dots is a skill, and it's literally what AI is built on&lt;/p&gt;

&lt;p&gt;One line from the book stuck with me: creative people don't always have more ideas. They just notice connections that others skip past.&lt;/p&gt;

&lt;p&gt;Sit with that for a second as an AI/ML student. Recommendation systems connect your past behavior to future choices. Language models connect patterns across billions of sentences. That's not magic; that's structured dot-connecting, done at a scale humans can't do manually. The systems we're all trying to build are, in a strange way, just automated versions of the exact skill this book is asking me to practice by hand.&lt;/p&gt;

&lt;p&gt;Everyone looks. Very few actually observe.&lt;/p&gt;

&lt;p&gt;This might be the idea I've carried with me the most. Hardas talks about slowing down enough to notice what's already in front of you the details everyone else walks right past.&lt;/p&gt;

&lt;p&gt;Translate that into engineering terms and it becomes almost uncomfortable: before you build any AI solution, you have to actually understand the problem. Not skim it. Not assume you already know it because you've seen something similar before.&lt;/p&gt;

&lt;p&gt;The best AI models don't fail because of bad algorithms. They fail because someone didn't observe the problem carefully enough to begin with. Creativity and good engineering both start with paying attention.&lt;/p&gt;

&lt;p&gt;The line that stayed with me&lt;/p&gt;

&lt;p&gt;"Engineers who can think creatively will build things AI can't automate."&lt;/p&gt;

&lt;p&gt;This book didn't teach me to be an artist. It taught me to be a better engineer.&lt;/p&gt;

&lt;p&gt;That distinction matters more than it sounds like it does. As a second-year student watching AI automate more of the "tool-use" layer of engineering every semester, the actual differentiator isn't going to be who can write code fastest. It's going to be who asks better questions before writing any code at all.&lt;/p&gt;

&lt;p&gt;I'm building VaultAI and learning ML engineering in public — sharing the real process, struggles included. If this resonated, I'd love to hear what you're reading right now that's changed how you think about your own field.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>What Nobody Tells You About Learning to Code in the Age of AI</title>
      <dc:creator>Hiya Lukka</dc:creator>
      <pubDate>Sat, 06 Jun 2026 06:28:32 +0000</pubDate>
      <link>https://dev.to/hiya_24477/what-nobody-tells-you-about-learning-to-code-in-the-age-of-ai-3947</link>
      <guid>https://dev.to/hiya_24477/what-nobody-tells-you-about-learning-to-code-in-the-age-of-ai-3947</guid>
      <description>&lt;p&gt;Six months ago, I sat down with a YouTube playlist, a blank notebook, and one goal: learn Python. What I did not expect was how hard it would be, not the Python itself, but figuring out how to actually learn it.&lt;/p&gt;

&lt;p&gt;I started with a YouTube playlist. Simple enough. Except nobody tells you what to do after you watch a video. Do you rewatch it? Take notes? Jump straight to code? I had no system. I'd watch a concept, feel like I understood it, open VS Code, and stare at a blank file.&lt;/p&gt;

&lt;p&gt;That's when I realized I had fallen into passive learning. And passive learning in the age of AI is a particularly dangerous trap, because it's so easy to confuse activity with progress. I could watch a video, feel good. I could ask Claude to explain a concept, feel good. I could even ask AI to write code, read it, nod along, and feel like I'd learned something. I hadn't. I'd just consumed. There's a difference.&lt;/p&gt;

&lt;p&gt;The real moment of honesty came when I was stuck on a coding problem. My instinct, everyone's instinct now is to open ChatGPT or Claude immediately. And I knew, sitting there with the cursor blinking, that if I did that every single time I got stuck, I was building nothing. My brain would never develop the muscle of working through problems. I would be someone who can prompt AI to code, not someone who can think in code. And in a world where AI can already write decent code, the person who can't think independently isn't valuable. They're replaceable.&lt;/p&gt;

&lt;p&gt;So I had to build a system that forced me to actually learn. After a lot of trial and failure, I landed on a 5-phase checklist that I wrote out by hand and kept next to my laptop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 1:&lt;/strong&gt; is what I call First Contact — watch one focused video, then write a summary purely from memory, then discuss it with an LLM not to get answers but to pressure-test what I thought I understood. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2:&lt;/strong&gt; is Deep Understanding — read a written source, write proper notes, map the concept visually, and list every edge case and exception I can find.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 3:&lt;/strong&gt; is Hands-On Practice — write 3 to 5 small isolated examples from scratch, then intentionally break the code, because understanding why something breaks teaches you more than getting it right. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 4:&lt;/strong&gt; is the Stress Test — ask an LLM to quiz me until I break, teach the concept back to it, and ask "what would an interviewer ask about this?" &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 5:&lt;/strong&gt; is Cement and Connect — use the concept in an active project, write one thing I'd tell a fellow learner about it, and schedule a spaced review.&lt;/p&gt;

&lt;p&gt;The rule I set for myself throughout all of this: AI is a tool for testing and pressure, not a crutch for getting unstuck. When I'm stuck on a problem, I sit with it. I struggle. I come back. Only after genuine effort do I use AI — and even then, I ask it to guide me, not solve it for me. It wasn't comfortable. It still isn't. But six months in, I'm now working through Python libraries and starting ML theory, and for the first time it feels like a foundation, not a facade.&lt;/p&gt;

&lt;p&gt;If you're somewhere in the early weeks of learning to code, the question isn't which resources to use. It's whether you're actually building something in your brain, or just moving content through your eyes. The difference matters more now than it ever did before.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>python</category>
    </item>
    <item>
      <title>I watched a machine do the impossible. Now I'm learning to build one.</title>
      <dc:creator>Hiya Lukka</dc:creator>
      <pubDate>Sat, 30 May 2026 05:53:00 +0000</pubDate>
      <link>https://dev.to/hiya_24477/i-watched-a-machine-do-the-impossible-now-im-learning-to-build-one-353o</link>
      <guid>https://dev.to/hiya_24477/i-watched-a-machine-do-the-impossible-now-im-learning-to-build-one-353o</guid>
      <description>&lt;p&gt;There is a specific kind of silence that happens when you watch something that breaks your understanding of what is possible.&lt;/p&gt;

&lt;p&gt;Not loud surprise. Not excitement.&lt;br&gt;
Silence. The kind where your brain is working so hard to process what just happened that everything else goes quiet.&lt;/p&gt;

&lt;p&gt;I felt that silence watching a machine play a board game.&lt;/p&gt;

&lt;p&gt;Not because the machine won. Because of how it won, by making a move that no human player had ever made, in thousands of years of the game being played. A move the world champion later said he found beautiful. A move that came from no human tradition, no human teacher, no human intuition.&lt;/p&gt;

&lt;p&gt;It came from a model that had learned to find patterns in complexity that the human brain cannot hold simultaneously.&lt;/p&gt;

&lt;p&gt;That was the night I understood what ML engineering actually is.&lt;br&gt;
And that was the night I decided what I want to do with my life.&lt;/p&gt;

&lt;p&gt;What nobody tells you about ML engineering:&lt;br&gt;
The popular version of AI right now is tools. Chatbots. Productivity apps. Automated workflows. And those things are real and useful.&lt;/p&gt;

&lt;p&gt;But they are not what stopped me cold that night.&lt;/p&gt;

&lt;p&gt;What stopped me was this: a machine that nobody explicitly programmed to win, that learned entirely through playing itself, millions of times, with no human data, no human guidance — found a solution that centuries of human expertise had never found.&lt;/p&gt;

&lt;p&gt;That is not automation. That is not a smarter search engine.&lt;/p&gt;

&lt;p&gt;That is a new kind of intelligence finding structure in problems that were structurally unreachable before.&lt;/p&gt;

&lt;p&gt;ML engineering is the first discipline in human history where a person with the right model and the right problem can reach solutions that no human could have arrived at alone. Not improve on existing solutions. Not iterate faster. Reach solutions that were simply not reachable before.&lt;/p&gt;

&lt;p&gt;And the people building those models are not working on productivity apps.&lt;/p&gt;

&lt;p&gt;They are working on protein folding. Drug discovery. Climate systems. Problems that have broken every generation of scientists before ours, not because those scientists weren’t brilliant, but because the tools didn’t exist yet.&lt;/p&gt;

&lt;p&gt;I want to be one of those people.&lt;/p&gt;

&lt;p&gt;Where I actually am right now:&lt;br&gt;
I want to be honest about this part. I am a computer engineering student. I have no internship. No research publication. No industry mentor. I am on Lecture 0 of CS50. I am working through NumPy. I am in the early weeks of ML theory, where everything is still matrices and probability and gradient descent and nothing yet feels like the thing I watched in that documentary.&lt;/p&gt;

&lt;p&gt;Before I started this path, I built ClassFlow — an automated timetable generator that handles faculty constraints, room allocation, semester structures, and conflict detection for college departments. It works. It solves a real problem that colleges across India still solve manually in Excel.&lt;/p&gt;

&lt;p&gt;But it does not learn. It cannot improve from its own mistakes. It has a ceiling, and that ceiling is the exact reason I am here.&lt;/p&gt;

&lt;p&gt;My mornings now start with Python before anything else. Not after breakfast. Not after checking my phone. Before. Then CS50. Then ML theory. Then I watch people who are actually building in this space — not for motivation, but to learn how people inside this field think about problems.&lt;/p&gt;

&lt;p&gt;Some mornings the gap between Lecture 0 and where I want to be feels so large it is almost funny.&lt;/p&gt;

&lt;p&gt;I sit with that feeling. I do not try to resolve it with motivation or affirmations or a highlights reel.&lt;/p&gt;

&lt;p&gt;I just open the laptop and keep going.&lt;/p&gt;

&lt;p&gt;et is Google DeepMind. Or somewhere doing work at that level. Somewhere the question on the table is not how to make a product more engaging — but how to make a model capable of something no model has done before.&lt;/p&gt;

&lt;p&gt;The students who start before they feel ready, who stay in the chair when the gap feels too large — are the ones who actually arrive.&lt;/p&gt;

&lt;p&gt;Demis Hassabis was once sitting in a room full of the most brilliant minds he had ever seen, and he had a thought that most people would have called arrogance: what if we took all of this and aimed it at the problems that actually matter?&lt;/p&gt;

&lt;p&gt;He was not yet building DeepMind. He was just in the room, with the idea, not yet knowing how to execute it.&lt;/p&gt;

&lt;p&gt;I think about that a lot.&lt;/p&gt;

&lt;p&gt;Every ML engineer who ever built something that mattered was once exactly where I am, at the beginning, with the theory still abstract and the application still distant. The difference between the ones who got there and the ones who didn’t was not talent. It was whether they stayed in the chair.&lt;/p&gt;

&lt;p&gt;I’m staying in the chair.&lt;/p&gt;

&lt;p&gt;If you are somewhere in the middle of this path, what is the one resource that genuinely changed how you think about ML? I am building my stack right now, and I want to know what actually moved the needle for people further ahead.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>programming</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
