<?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: Snow</title>
    <description>The latest articles on DEV Community by Snow (@icedmist).</description>
    <link>https://dev.to/icedmist</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%2F3618372%2F9e9f9665-54e4-4d63-ad79-c0caad8c72a9.jpg</url>
      <title>DEV Community: Snow</title>
      <link>https://dev.to/icedmist</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/icedmist"/>
    <language>en</language>
    <item>
      <title>Dijaview: What Did I Do Last Tuesday? A Privacy-First Local Activity Engine Powered by Gemma 2</title>
      <dc:creator>Snow</dc:creator>
      <pubDate>Mon, 05 Oct 2026 09:25:11 +0000</pubDate>
      <link>https://dev.to/icedmist/dijaview-what-did-i-do-last-tuesday-a-privacy-first-local-activity-engine-powered-by-gemma-2-11oa</link>
      <guid>https://dev.to/icedmist/dijaview-what-did-i-do-last-tuesday-a-privacy-first-local-activity-engine-powered-by-gemma-2-11oa</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;
  &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FIcedmist%2Fdijaview%2Fmain%2Fassets%2Fdijaview-logo.svg" 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%2Fraw.githubusercontent.com%2FIcedmist%2Fdijaview%2Fmain%2Fassets%2Fdijaview-logo.svg" alt="Dijaview Logo" width="140" height="140"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dijaview&lt;/strong&gt; is an open-source, local-first search engine that lets you ask plain-English questions about everything you have done on your computer, without sending any personal data to the cloud.&lt;/p&gt;

&lt;p&gt;Instead of manually grepping through project directories, scrolling endlessly through shell history, or searching through thousands of browser tabs:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Where did I save that API key documentation I looked at last Tuesday?"&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;"What was that complex curl command with custom headers I ran yesterday?"&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;"Where did I write down the database connection settings?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dijaview indexes your local shell commands, browser history, and notes. It parses time expressions deterministically, filters candidate records using full-text search with BM25 ranking, and uses &lt;strong&gt;Google's Gemma 2 open-weight model&lt;/strong&gt; to synthesize a direct answer with clickable links and source citations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Built for a friend
&lt;/h3&gt;

&lt;p&gt;I built Dijaview for my friend &lt;strong&gt;Mohammed Adamu Aliyu&lt;/strong&gt; (&lt;a href="https://github.com/Adams-404" rel="noopener noreferrer"&gt;@Adams-404&lt;/a&gt;), a software engineer and builder who spends hours in terminal sessions, testing endpoints, and juggling dozens of open documentation tabs across multiple projects.&lt;/p&gt;

&lt;p&gt;Mohammed frequently ran into the friction of retracing past work:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"I was constantly digging through thousands of lines of bash history or searching through browser tabs just to find a curl command or endpoint doc from two days ago. Having a tool on my local machine that lets me ask in plain English where I did something or find a command without uploading my history to anyone else is a game changer."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dijaview solves this directly on his local machine with zero telemetry.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/Icedmist/dijaview" rel="noopener noreferrer"&gt;https://github.com/Icedmist/dijaview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CLI query:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  dijaview query &lt;span class="s2"&gt;"When did I run git status?"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real output from local Gemma 2 2B:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Answer:
  The user ran `git status` on three separate occasions: index 1, 2, and 3. They are located in the .bash_history file.

  Sources Cited:
    [1] (Terminal) Terminal Command: git status
        Location: /home/snow/.bash_history
        Time:     2026-10-02T13:21:37.095089
    [2] (Terminal) Terminal Command: git status
        Location: /home/snow/.bash_history
        Time:     2026-10-02T13:21:37.095089
    [3] (Terminal) Terminal Command: git status
        Location: /home/snow/.bash_history
        Time:     2026-10-02T13:21:37.095089
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;The entire codebase is open-source under the MIT license:&lt;br&gt;
&lt;/p&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/Icedmist" rel="noopener noreferrer"&gt;
        Icedmist
      &lt;/a&gt; / &lt;a href="https://github.com/Icedmist/dijaview" rel="noopener noreferrer"&gt;
        dijaview
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Privacy-first, local-first personal computer activity &amp;amp; context search engine powered by Gemma 2.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/Icedmist/dijaview/assets/dijaview-logo.svg"&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%2FIcedmist%2Fdijaview%2FHEAD%2Fassets%2Fdijaview-logo.svg" alt="Dijaview Logo" width="128" height="128"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Dijaview&lt;/h1&gt;
&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A privacy-first, local search engine for your computer activity powered by Gemma 2.&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Ask questions about what you did on your computer without sending any data to the cloud.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;a href="https://github.com/Icedmist/dijaview/actions/workflows/ci.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/Icedmist/dijaview/actions/workflows/ci.yml/badge.svg" alt="CI"&gt;&lt;/a&gt;
&lt;a href="https://pypi.org/project/dijaview/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/ed2499d0fa5dbf8d26ef4ab42ac4646accb4363b52509c1faf8fa11fa4114921/68747470733a2f2f696d672e736869656c64732e696f2f707970692f762f64696a61766965772e737667" alt="PyPI"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Icedmist/dijaview/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://hacktoberfest.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/359a78a6c36b079b424e81e8d4f42c736fee8b4bef8a291fd8048c5d55af7688/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4861636b746f626572666573742d323032362d6f72616e67652e737667" alt="Hacktoberfest 2026"&gt;&lt;/a&gt;
&lt;a href="https://ai.google.dev/gemma" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/3a9d2bd15c24b98a5753b55a43d315d0df256584816291c0c04620e831be37ed/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6f64656c2d47656d6d61253230322d677265656e2e737667" alt="Model: Gemma 2"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Icedmist/dijaview#privacy-guarantee" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/08955874af69f79715ad0ad7fd5b88fdf31547a3d2f4e88993fb912581436c28/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507269766163792d3130302532352532304c6f63616c2d737563636573732e737667" alt="Local first"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Icedmist/dijaview/CONTRIBUTING.md" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/32274e38be21ab9e684e1954dae7f8c93cb452463d11367252620adf70aa559d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6e747269627574696f6e732d57656c636f6d652d627269676874677265656e2e737667" alt="Open for contributions"&gt;&lt;/a&gt;&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;Developers and computer users lose time every day trying to remember where they saw or did something:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"Where did I save that API key documentation I read last Tuesday?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"What was that complex curl command with custom headers I ran yesterday?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Which browser tab had the article about Fastify CORS configuration?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Where in my notes did I write down the database connection schema?"&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Normally, you have to remember which tool you used, grep through folders, scroll through thousands of shell history lines, or dig through browser history tables.&lt;/p&gt;
&lt;p&gt;Tools like Microsoft Recall tried to solve this, but they generated widespread security criticism. They stored plain text files and sent data across the network. Cloud based tools charge monthly…&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/Icedmist/dijaview" 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;Dijaview is engineered from the ground up around &lt;strong&gt;open-source AI&lt;/strong&gt; and local execution:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+---------------------------------------+
|              Data Sources             |
|   * Shell History (bash/zsh/fish)     |
|   * Browser History (SQLite)          |
|   * Local Notes &amp;amp; Markdown Files      |
+-------------------┬-------------------+
                    |
                    v
+---------------------------------------+
|     Secret Scrubbing &amp;amp; Ingestion      |
|   * Heuristic credential masking      |
|   * Size caps &amp;amp; path permissions      |
+-------------------┬-------------------+
                    |
                    v
+---------------------------------------+
|     Embedded SQLite &amp;amp; BM25 Store      |
|   * FTS5 Full-Text Search             |
|   * User-only file security (0600)    |
|   * Stopword filtering &amp;amp; BM25 rank    |
+-------------------┬-------------------+
                    |
                    v
+---------------------------------------+
|          Gemma 2 RAG Engine           |
|   * Deterministic Temporal Parser     |
|   * Prompt Injection Defense Pass     |
|   * Local Gemma 2 Synthesis           |
|   * Strict Source Citation Protocol   |
+---------------------------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Local Model Synthesis (Gemma 2):&lt;/strong&gt;
We use &lt;strong&gt;Google's Gemma 2 (2B)&lt;/strong&gt; running locally via Ollama. Gemma 2 synthesizes concise answers and extracts source citations from retrieved context. The 2B model is lightweight (1.7 GB) and runs comfortably on CPU with zero external GPUs required. For systems with more memory, the &lt;strong&gt;Gemma 2 9B&lt;/strong&gt; model can be used by changing &lt;code&gt;model.name&lt;/code&gt; in configuration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Time Parsing:&lt;/strong&gt;
Rather than relying on model guessing for dates, &lt;code&gt;temporal.py&lt;/code&gt; parses time expressions like "last Tuesday" or "yesterday" using deterministic regular expressions and Python datetime math to calculate exact start and end timestamps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embedded SQLite with BM25 Ranking:&lt;/strong&gt;
Indexed entries are stored in a local SQLite database (&lt;code&gt;~/.local/share/dijaview/dijaview.db&lt;/code&gt;). Text search strips generic stopwords and uses SQLite FTS5 &lt;code&gt;bm25()&lt;/code&gt; ranking so records matching multiple keywords appear first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proactive Secret Redaction:&lt;/strong&gt;
Every entry passes through an automated regex filter that sanitizes API keys (&lt;code&gt;ghp_&lt;/code&gt;, &lt;code&gt;sk_live_&lt;/code&gt;, &lt;code&gt;pk_live_&lt;/code&gt;), JWTs, CLI passwords (&lt;code&gt;mysql -p&lt;/code&gt;, &lt;code&gt;curl -u&lt;/code&gt;, &lt;code&gt;sshpass -p&lt;/code&gt;), and shell exports before indexing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt Injection Defenses:&lt;/strong&gt;
Retrieved snippets are wrapped in strict passive data tags, code block delimiters are sanitized, and the system prompt explicitly commands Gemma 2 to treat retrieved content as passive historical data, ignoring any embedded instructions like "ignore previous rules".&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Why open matters
&lt;/h2&gt;

&lt;p&gt;Your computer activity log is the &lt;strong&gt;single most intimate record of your digital life&lt;/strong&gt;: every command you typed, every documentation article you read, every draft note you scribbled, and every project you touched. Entrusting this data to a closed system is unacceptable.&lt;/p&gt;

&lt;p&gt;Here is why open architecture is the only viable foundation for personal activity search:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Local Gemma 2 intelligence:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Google's Gemma 2 open weights make it possible to run sophisticated language models entirely on personal hardware. The model runs locally via Ollama or llama.cpp, meaning your questions and retrieved records never leave your machine. You get the benefits of modern AI without sending your digital life to a corporate server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Absolute zero telemetry:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Closed commercial software routinely phones home with diagnostic logs, usage metrics, and behavioral telemetry. Dijaview has zero network telemetry. There are no tracking beacons, no analytics pings, and no cloud dependencies. The only network socket ever created is an optional local web server bound to &lt;code&gt;127.0.0.1&lt;/code&gt; and protected by a random per-launch authentication token.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Auditable redaction over black-box promises:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
In privacy software, "trust us" is not a security guarantee. Proprietary tools hide their filtering behind closed APIs. Dijaview's secret scrubbing rules are completely open, inspectable regular expressions in &lt;code&gt;redactor.py&lt;/code&gt;. Anyone can audit how Stripe keys, JWTs, AWS credentials, and CLI passwords are sanitized. If a specific format is missing, you can add custom rules with &lt;code&gt;dijaview permissions add-filter&lt;/code&gt; rather than hoping a third party protects you.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Swappable models and no vendor lock-in:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Dijaview is not married to a single model provider or cloud platform. Because the engine interfaces through standard local endpoints, you can swap models freely. You can start with Gemma 2 2B, switch to Gemma 2 9B for deeper synthesis, or plug in any other open-weight model supported by Ollama without rewriting core business logic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Naming the tradeoff: 2B model limitations:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Being honest about trade-offs is essential in open-source engineering. The default Gemma 2 2B model is remarkably fast and runs comfortably on modest laptop CPUs with less than 2 GB of memory. But a 2-billion parameter model has real weaknesses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Its answers can be terse or overly literal.&lt;/li&gt;
&lt;li&gt;When multiple complex records are retrieved, 2B models can struggle with subtle reasoning, occasionally producing flat summaries or missing nuanced connections.&lt;/li&gt;
&lt;li&gt;It cannot handle massive prompt contexts without losing coherence.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This tradeoff is precisely why Dijaview does not rely on the LLM to search. Instead, deterministic Python regex extracts dates, and SQLite FTS5 with BM25 ranking finds the most relevant records first. Gemma 2 is only asked to synthesize pre-filtered, verified records and cite their exact line locations. And when a user has more RAM and needs richer reasoning, the open architecture allows an instant upgrade to the 9B model.&lt;/p&gt;




&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Heuristic secret redaction:&lt;/strong&gt; Secret redaction uses pattern matching and regular expressions. While it catches standard formats (JWTs, Bearer tokens, GitHub, Stripe, Paystack, AWS, CLI passwords), it is best-effort and cannot guarantee 100% coverage of custom proprietary tokens. Users can register custom patterns with &lt;code&gt;dijaview permissions add-filter&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unencrypted local database:&lt;/strong&gt; The local SQLite database file is stored unencrypted on disk with user-only permissions (&lt;code&gt;chmod 600&lt;/code&gt;). Dijaview relies on OS-level full-disk encryption (such as LUKS on Linux, FileVault on macOS, or BitLocker on Windows) to protect data at rest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compact model reasoning:&lt;/strong&gt; Gemma 2 2B is a 2-billion parameter model optimized for fast CPU inference. While it reliably cites evidence and summarizes records, users with 16 GB or more RAM can upgrade to Gemma 2 9B for deeper synthesis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt injection risks:&lt;/strong&gt; While Dijaview implements defensive data tagging and snippet sanitization, indexing untrusted external web pages or markdown files requires ongoing defensive vigilance in all local RAG architectures.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Prize categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Featured Category: Best Use of Gemma&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Dijaview utilizes Google's &lt;strong&gt;Gemma 2&lt;/strong&gt; open-weight model as its central brain for synthesizing answers and extracting source citations from retrieved computer activity.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overall Challenge Winner&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Delivering a complete, privacy-first local search engine built for a developer friend, embodying the true spirit of open-source AI and data sovereignty.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built with care during Hacktoberfest 2026 Weekend Challenge 1.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>hello dev.to, be good to me.</title>
      <dc:creator>Snow</dc:creator>
      <pubDate>Sun, 03 May 2026 15:33:29 +0000</pubDate>
      <link>https://dev.to/icedmist/hello-devto-be-good-to-me-bb4</link>
      <guid>https://dev.to/icedmist/hello-devto-be-good-to-me-bb4</guid>
      <description>&lt;p&gt;Hey Dev.to 👋&lt;br&gt;
I'm Nasir Ibrahim Imam, a full stack developer based in Gombe, Nigeria. I go by &lt;a class="mentioned-user" href="https://dev.to/icedmist"&gt;@icedmist&lt;/a&gt; on GitHub.&lt;br&gt;
I've been building for a while now and my GitHub is pretty green — but I figured it's time to actually show up in communities and connect with people who are building things that matter.&lt;br&gt;
What I work with:&lt;br&gt;
React, Next.js, Flutter, Firebase, Node.js — mostly full stack web and mobile, with some AI integration sprinkled in.&lt;br&gt;
Why I'm here:&lt;br&gt;
I want to collaborate with devs across the world, contribute to open source, and eventually co-found something with people who actually ship. I'm open to remote work, hackathons, and long-term build partnerships.&lt;br&gt;
If you're working on something in EdTech, AgriTech, or DevTools — or just want to connect with a dev from Nigeria who's building in public — say hi.&lt;br&gt;
GitHub: github.com/icedmist&lt;br&gt;
Let's build something. 🚀&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>mobile</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
