<?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: Adedeji Olamide</title>
    <description>The latest articles on DEV Community by Adedeji Olamide (@octanexyz).</description>
    <link>https://dev.to/octanexyz</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%2F2794044%2Fc31f2ed1-48d1-40b5-8cc9-81dee8005a19.jpeg</url>
      <title>DEV Community: Adedeji Olamide</title>
      <link>https://dev.to/octanexyz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/octanexyz"/>
    <language>en</language>
    <item>
      <title>I Built an Agent That Does VC Due Diligence in Minutes</title>
      <dc:creator>Adedeji Olamide</dc:creator>
      <pubDate>Thu, 28 May 2026 18:42:17 +0000</pubDate>
      <link>https://dev.to/octanexyz/i-built-an-agent-that-does-vc-due-diligence-in-minutes-mbo</link>
      <guid>https://dev.to/octanexyz/i-built-an-agent-that-does-vc-due-diligence-in-minutes-mbo</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hermes-agent-2026-05-15"&gt;Hermes Agent Challenge&lt;/a&gt;: Build With Hermes Agent&lt;/em&gt;&lt;/p&gt;




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

&lt;p&gt;A few weeks ago I was looking at a list of hackathon submissions and noticed something. Every single project was for developers. Observability agents. Code review bots. Database query assistants. Debugging tools. All useful, all for people who already spend their days in a terminal.&lt;/p&gt;

&lt;p&gt;Nobody had built anything for the people who don't.&lt;/p&gt;

&lt;p&gt;That's when I thought about VC due diligence. The process that takes 2-4 weeks per deal is, at its core, mechanical. You need to know the market size. You need to map the competition. You look up the founders' previous companies. You read what people say on Reddit and Hacker News. You check how much funding they've raised and who from. None of this is strategic thinking. It's information retrieval, repeated across dozens of sources, by analysts who are overqualified for it.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Axiom&lt;/strong&gt;, an autonomous startup due diligence agent powered by Hermes Agent.&lt;/p&gt;

&lt;p&gt;You type one command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/axiom-diligence Perplexity AI perplexity.ai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Axiom spawns 7 parallel research sub-agents using Hermes's &lt;code&gt;delegate_task&lt;/code&gt; tool:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Agent&lt;/th&gt;
&lt;th&gt;What It Researches&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Market&lt;/td&gt;
&lt;td&gt;TAM, growth rate, timing signal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Competition&lt;/td&gt;
&lt;td&gt;Direct/indirect competitors, moat assessment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Founders&lt;/td&gt;
&lt;td&gt;Prior companies, exits, reputation signals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Technology&lt;/td&gt;
&lt;td&gt;GitHub activity, stack, build vs. buy assessment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customer Sentiment&lt;/td&gt;
&lt;td&gt;Reddit, HackerNews, review sites&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regulatory Risk&lt;/td&gt;
&lt;td&gt;Relevant laws, litigation signals, compliance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Financial Signals&lt;/td&gt;
&lt;td&gt;Crunchbase funding, investor quality, revenue signals&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The orchestrator synthesizes all 7 findings into a structured investment memo with a verdict (INVEST / MONITOR / PASS), confidence score, bull case, bear case, open diligence questions, and all sources cited. Output saves as JSON and Markdown, and renders in a Streamlit dashboard.&lt;/p&gt;




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

&lt;p&gt;The Streamlit dashboard renders the full VC-style memo with color-coded verdict, five signal metrics, and section-by-section research breakdowns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/cybort360/axiom" rel="noopener noreferrer"&gt;github.com/cybort360/axiom&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;&lt;a href="https://github.com/cybort360/axiom" rel="noopener noreferrer"&gt;github.com/cybort360/axiom&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;axiom/
├── skills/
│   └── axiom-diligence/
│       └── SKILL.md          ← Hermes skill: the full research methodology
├── mcp/
│   └── axiom_mcp.py          ← Custom MCP server: HN, Reddit, Crunchbase, GitHub
├── web/
│   └── dashboard.py          ← Streamlit: VC-style memo viewer
├── setup.sh                  ← One-command &lt;span class="nb"&gt;install&lt;/span&gt;
└── demo.sh                   ← Run demo on any company
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One-command setup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/cybort360/axiom
&lt;span class="nb"&gt;cd &lt;/span&gt;axiom
bash setup.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  My Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hermes Agent&lt;/strong&gt;: the agent runtime, skills system, and &lt;code&gt;delegate_task&lt;/code&gt; for parallel sub-agents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FastMCP / mcp Python package&lt;/strong&gt;: custom MCP server for structured data access&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;httpx&lt;/strong&gt;: async HTTP client for HackerNews, Reddit, Crunchbase, GitHub APIs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt;: investment memo dashboard&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python venv&lt;/strong&gt;: dependency isolation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Data sources used (all free, no paid APIs):&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;th&gt;What We Pull&lt;/th&gt;
&lt;th&gt;How&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HackerNews&lt;/td&gt;
&lt;td&gt;Stories, comments, founder mentions&lt;/td&gt;
&lt;td&gt;Algolia HN API (free, no auth)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reddit&lt;/td&gt;
&lt;td&gt;User discussions, complaints, praise&lt;/td&gt;
&lt;td&gt;Reddit public JSON API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Crunchbase&lt;/td&gt;
&lt;td&gt;Funding rounds, investors, headcount&lt;/td&gt;
&lt;td&gt;Public profile scrape&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub&lt;/td&gt;
&lt;td&gt;Repos, stars, contributor signals&lt;/td&gt;
&lt;td&gt;GitHub public API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Greenhouse / Lever&lt;/td&gt;
&lt;td&gt;Open roles by department&lt;/td&gt;
&lt;td&gt;Public ATS APIs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web search&lt;/td&gt;
&lt;td&gt;Market size, news, competitors&lt;/td&gt;
&lt;td&gt;Hermes built-in web_search&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  How I Used Hermes Agent
&lt;/h2&gt;

&lt;p&gt;Hermes Agent's &lt;code&gt;delegate_task&lt;/code&gt; tool is the reason Axiom works. Without it, a single-agent loop running 7 research threads sequentially would take 10x longer and would hit context limits trying to hold everything in memory.&lt;/p&gt;

&lt;p&gt;With &lt;code&gt;delegate_task&lt;/code&gt;, each sub-agent runs concurrently, stays focused on its own research slice, and hands back a clean JSON object. The orchestrator gets structured inputs from specialists rather than trying to do everything itself.&lt;/p&gt;

&lt;p&gt;Here's what the market research delegation looks like in the SKILL.md:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;delegate_task&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
  &lt;span class="s"&gt;Research the total addressable market for [company].&lt;/span&gt;
  &lt;span class="s"&gt;Use web_search to find:&lt;/span&gt;
  &lt;span class="s"&gt;1. Market size estimates from analyst reports&lt;/span&gt;
  &lt;span class="s"&gt;2. Year-over-year growth rate&lt;/span&gt;
  &lt;span class="s"&gt;3. Timing signal: too early, right moment, or saturated?&lt;/span&gt;
  &lt;span class="s"&gt;4. Key market drivers&lt;/span&gt;

  &lt;span class="s"&gt;Return JSON with keys:&lt;/span&gt;
  &lt;span class="s"&gt;tam_estimate, growth_rate_yoy, timing_assessment,&lt;/span&gt;
  &lt;span class="s"&gt;market_drivers, comparables, sources&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every sub-agent returns a strict JSON schema. The orchestrator never parses free text. It calculates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The MCP server&lt;/strong&gt; gives Hermes structured access to six data tools (HackerNews, Reddit, Crunchbase, GitHub, hiring signals, report saving) without any paid API keys. Adding new data sources means adding one Python function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The skills system&lt;/strong&gt; makes the research methodology portable. The 363-line SKILL.md defines how a trained analyst would approach each dimension, what questions to ask, what signals to weight, and what the output schema must look like. Install the skill once and use it from CLI, Telegram, or Discord.&lt;/p&gt;

&lt;p&gt;Two things surprised me during the build. First, the quality of free data: HackerNews comment threads on a startup's launch post contain more honest signal than most analyst reports. Second, how much the output schema matters. Early versions returned free-form text from sub-agents. Once I forced strict JSON schemas, synthesis became deterministic.&lt;/p&gt;

&lt;p&gt;Axiom turned a use case that normally takes weeks and a team of analysts into a command you type once.&lt;/p&gt;

</description>
      <category>hermesagentchallenge</category>
      <category>devchallenge</category>
      <category>agents</category>
    </item>
    <item>
      <title>Synaptic: A Local-First AI Dev Companion That Remembers How You Think</title>
      <dc:creator>Adedeji Olamide</dc:creator>
      <pubDate>Sat, 23 May 2026 04:52:29 +0000</pubDate>
      <link>https://dev.to/octanexyz/synaptic-a-local-first-ai-dev-companion-that-remembers-how-you-think-24o6</link>
      <guid>https://dev.to/octanexyz/synaptic-a-local-first-ai-dev-companion-that-remembers-how-you-think-24o6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-gemma-2026-05-06"&gt;Gemma 4 Challenge: Build with Gemma 4&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Three weeks into learning Rust, I had Copilot open and Stack Overflow in the next tab. I was making progress — or so I thought. I'd ask Copilot how to handle an error, paste the answer in, the compiler would go green, and I'd move on.&lt;/p&gt;

&lt;p&gt;Six days in, I realised I had no idea what I was doing.&lt;/p&gt;

&lt;p&gt;I could produce Rust. I couldn't think in Rust. Copilot was making me a faster copy-paster. It wasn't making me a developer.&lt;/p&gt;

&lt;p&gt;What I needed wasn't more autocomplete. I needed something to stop me before I typed and ask: "Do you actually understand what you're about to do?"&lt;/p&gt;

&lt;p&gt;That question became Synaptic.&lt;/p&gt;

&lt;p&gt;Synaptic is a local-first AI dev companion powered entirely by Gemma 4. It watches your entire development environment — files, terminal, errors, shell history — and builds a persistent model of how you specifically think and solve problems. When you're stuck or learning a new language, it surfaces your own past solutions rather than generic documentation pulled from the internet.&lt;/p&gt;

&lt;p&gt;The centrepiece is the Socratic gate.&lt;/p&gt;

&lt;p&gt;When you open a code file, Synaptic reads your last few hours of activity, identifies what concept is most at stake in that file, and streams a targeted question into a HUD overlay within seconds:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"You've been writing JavaScript closures recently. Before you edit this Rust file: how are you thinking about ownership and when values go out of scope?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The question isn't generic. It's built from your actual history. Gemma 4 evaluates your answer and either lets you through or asks a sharper follow-up targeting exactly what you glossed over. Over time, your explanations get sharper — because the bar doesn't lower.&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%2Fdcjbu3zn4y8xd0q6w7m8.jpeg" 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%2Fdcjbu3zn4y8xd0q6w7m8.jpeg" alt=" " width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Beyond the Socratic gate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ambient memory pipeline&lt;/strong&gt; — every file save and terminal command is compressed by Gemma 4 into a structured memory (summary, concepts, significance score, verbatim error text) every 3 seconds, stored locally in SQLite and indexed for semantic search&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvdih50uk3waf3vkgcmto.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%2Fvdih50uk3waf3vkgcmto.png" alt=" " width="800" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vision error pipeline&lt;/strong&gt; — on macOS, when a terminal error fires, Gemma 4 reads a screenshot of your actual screen to extract the full stack trace, not the truncated shell history&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Four query modes&lt;/strong&gt; — Translate (JS patterns to Rust), Explain (grounded in your own history), Map Concept (to what you already know), Find Solution (have I solved this before?)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2ncr7jdousuj03yve8y.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%2Fl2ncr7jdousuj03yve8y.png" alt=" " width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Habit mismatch detection&lt;/strong&gt; — runs continuously, warns when you apply patterns from your old language that will break in your new one&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdmfqvmm8vbyrzhmtk05w.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%2Fdmfqvmm8vbyrzhmtk05w.png" alt=" " width="799" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stuck detection&lt;/strong&gt; — watches for compound signals (repeated errors, thrashing, excessive app switches) and auto-surfaces the HUD with relevant context before you ask&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Electron HUD overlay&lt;/strong&gt; — always-on-top, appears uninvited when it has something worth saying
Everything runs on your machine. No API keys required. No data leaves without your permission.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Live site: &lt;a href="https://synaptic-ebon.vercel.app" rel="noopener noreferrer"&gt;https://synaptic-ebon.vercel.app&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Docs: &lt;a href="https://synaptic-ebon.vercel.app/docs" rel="noopener noreferrer"&gt;https://synaptic-ebon.vercel.app/docs&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/0l067PhOaiY"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Quick start to try it yourself:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/cybort360/synaptic
&lt;span class="nb"&gt;cd &lt;/span&gt;synaptic &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm &lt;span class="nb"&gt;install
&lt;/span&gt;ollama pull gemma4:e4b
ollama pull nomic-embed-text
&lt;span class="nb"&gt;cp &lt;/span&gt;synaptic.config.example.json synaptic.config.json
&lt;span class="c"&gt;# Edit synaptic.config.json and add a directory to watchPaths&lt;/span&gt;
npm run launch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open a &lt;code&gt;.rs&lt;/code&gt;, &lt;code&gt;.ts&lt;/code&gt;, &lt;code&gt;.py&lt;/code&gt;, or &lt;code&gt;.go&lt;/code&gt; file in a watched directory. The HUD will appear within seconds with a question grounded in your recent activity.&lt;/p&gt;

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

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

&lt;p&gt;The full pipeline in one view:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Files / Terminal / Shell history
        ↓
    Observer (chokidar + history polling + stuck detector)
        ↓
    Archivist
      ├─ Compressor: gemma4:e4b (every 3s, with vision on errors)
      ├─ Embedder: nomic-embed-text (semantic search vectors)
      └─ SQLite (local, persistent, yours)
        ↓
    Connector
      ├─ Semantic search over history
      ├─ Prompt builder (4 modes)
      └─ Reasoner: gemma4:e4b (streaming)
        ↓
    Socratic Engine
      ├─ Fires on file open for recognised code files
      ├─ Streams question word-by-word to HUD
      └─ Evaluates answer, asks follow-up or passes
        ↓
    Dashboard (http://localhost:3777) + HUD Overlay (Electron)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Stack: Node.js 20, TypeScript, Express, WebSocket, Electron, chokidar, sql.js (SQLite), Ollama. No frameworks. No bundler. Around 5,700 lines of original code.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used Gemma 4
&lt;/h2&gt;

&lt;p&gt;I used &lt;code&gt;gemma4:e4b&lt;/code&gt; — the 4B effective parameter model — and the choice was deliberate at every level.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why E4B specifically
&lt;/h3&gt;

&lt;p&gt;Speed is the constraint. Synaptic compresses every file save and terminal command into a structured memory on a 3-second batch cycle. That cycle is a constraint, not a goal — if compression falls behind, the memories become stale. The Socratic question about your Rust ownership file would be grounded in something you did yesterday rather than what you were doing five minutes ago.&lt;/p&gt;

&lt;p&gt;I tested &lt;code&gt;gemma4:26b&lt;/code&gt; for this. The batches piled up. The tool became a liability. At 4B effective parameters, &lt;code&gt;gemma4:e4b&lt;/code&gt; compresses an event in under 2 seconds on a MacBook. The 3-second cycle stays clean. Memories are always fresh.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multimodal was the unlock.&lt;/strong&gt; When you hit a terminal error, your shell history often truncates it. The important part — the line number, the variable name, the exact constraint violated — is three screens down.&lt;/p&gt;

&lt;p&gt;Gemma 4 is natively multimodal. When Synaptic detects a terminal error, it captures a screenshot of your screen and sends it to Gemma before compression. Gemma reads the actual stack trace off your screen, not the truncated history. This is only possible with a vision-capable model. A text-only 4B model cannot do it. A vision-capable model too large to run locally cannot do it either. &lt;code&gt;gemma4:e4b&lt;/code&gt; is the exact intersection: small enough to run constantly, fast enough for real-time use, and genuinely multimodal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Socratic gate depends on first-token latency.&lt;/strong&gt; The gate fires when you open a code file. The HUD slides up. The question starts streaming in word by word while Gemma is still generating. With &lt;code&gt;gemma4:e4b&lt;/code&gt;, the first token arrives in under 3 seconds on a MacBook M-series. The question types itself in as the developer reads it. With a larger model, the developer is already ten lines deep before the question finishes generating — and the gate becomes noise.&lt;/p&gt;

&lt;h3&gt;
  
  
  What breaks with a different model
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Alternative&lt;/th&gt;
&lt;th&gt;What fails&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A 27B local model&lt;/td&gt;
&lt;td&gt;Compression batches pile up. The 3-second cycle becomes 30+ seconds and memories fall behind real activity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A non-multimodal 4B&lt;/td&gt;
&lt;td&gt;Vision pipeline silently degrades. Errors are compressed without reading the actual screen output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A cloud-only model&lt;/td&gt;
&lt;td&gt;The entire privacy guarantee breaks. Code, errors, and history leave your machine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No local model at all&lt;/td&gt;
&lt;td&gt;Socratic gate cannot fire on every file open. Latency makes it unusable as a real-time feature&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  The three tiers Gemma 4 powers
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;When&lt;/th&gt;
&lt;th&gt;Why Gemma 4&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Event compression&lt;/td&gt;
&lt;td&gt;Every 3 seconds&lt;/td&gt;
&lt;td&gt;Speed. Needs to complete before the next event arrives.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vision error analysis&lt;/td&gt;
&lt;td&gt;On terminal errors (macOS)&lt;/td&gt;
&lt;td&gt;Multimodal. Reads the actual stack trace off the screen.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reasoning + Socratic evaluation&lt;/td&gt;
&lt;td&gt;On every query and file open&lt;/td&gt;
&lt;td&gt;Quality. Generates personalised questions and evaluates answers.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A separate &lt;code&gt;nomic-embed-text&lt;/code&gt; model handles embeddings for semantic search — it outperforms a generalist 4B model at this specific task, so I kept it.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Gemma 4 made possible that wasn't before
&lt;/h3&gt;

&lt;p&gt;The core thesis of Synaptic is that local AI is now capable enough to be the primary intelligence of a real product — not just a demo. &lt;code&gt;gemma4:e4b&lt;/code&gt; can read screenshots, generate coherent structured analysis, evaluate the quality of a developer's reasoning, and do all of this on a consumer laptop in real time.&lt;/p&gt;

&lt;p&gt;That's new. Six months ago you had to choose between capable and local. With Gemma 4 you don't.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemmachallenge</category>
      <category>gemma</category>
    </item>
    <item>
      <title>GreenStep AI</title>
      <dc:creator>Adedeji Olamide</dc:creator>
      <pubDate>Mon, 20 Apr 2026 03:12:37 +0000</pubDate>
      <link>https://dev.to/octanexyz/greenstep-ai-1lch</link>
      <guid>https://dev.to/octanexyz/greenstep-ai-1lch</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-04-16"&gt;Weekend Challenge: Earth Day Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;GreenStep is a web app that shows you how to lower your carbon footprint and understand it better. Most people have a vague sense that their habits affect the planet but no clear picture of how much. GreenStep makes that happen.&lt;/p&gt;

&lt;p&gt;You log your daily activities like driving to work, taking a flight, or eating a burger into the app, and it instantly tells you how much CO2 those activities produce. A live dashboard shows your footprint growing over time with charts, so you can see trends right away. The Google Gemini-powered AI layer looks at your personal activity data and gives you specific, actionable suggestions based on your habits. These are not general tips, but suggestions based on what you actually logged.&lt;/p&gt;

&lt;p&gt;The goal was easy: show what was hidden. When you realise that your carbon footprint is a real number that changes with every choice you make, you start making different choices.&lt;/p&gt;

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

&lt;p&gt;Deployed URL — &lt;a href="https://green-step-ai.vercel.app" rel="noopener noreferrer"&gt;https://green-step-ai.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Screen recording — &lt;a href="https://youtu.be/sAft5XNsWeU?si=hrqVKmSPTdfvtoWH" rel="noopener noreferrer"&gt;https://youtu.be/sAft5XNsWeU?si=hrqVKmSPTdfvtoWH&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;GitHub repo — &lt;a href="https://github.com/cybort360/greenStep-AI" rel="noopener noreferrer"&gt;https://github.com/cybort360/greenStep-AI&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Stack: React, Next.js, Tailwind CSS&lt;/p&gt;

&lt;p&gt;Frontend: I used React and Next.js to build the UI. The activity logging form is easy to use; just choose a category (transport, food, energy, shopping), fill in the details, and submit. Each submission hits an API route that uses standard emissions factors from the EPA and IPCC datasets to calculate the CO2e value.&lt;/p&gt;

&lt;p&gt;Charts and Dashboard: The progress dashboard uses Recharts to show line and bar charts of your footprint over days and weeks. You can see which categories add the most to your total. For most people, transport is the biggest one.&lt;/p&gt;

&lt;p&gt;Google Gemini: The app sends a structured summary of a user's recent activities to the Gemini API after they log them. The prompt breaks down the activities by category and asks Gemini to come up with three to five specific, ranked suggestions based on what would have the biggest impact on that user. The response streams back and shows up right away in the UI. This isn't a list of general tips; Gemini looks at your real data and reacts to it. If you've flown three times this month, for instance, it will put that ahead of telling you to switch to LED bulbs.&lt;/p&gt;

&lt;p&gt;Backboard: I used Backboard to keep the app's data in sync in real time. When you log an activity, your dashboard updates right away without having to refresh the page. Backboard keeps track of the live state so that your totals and charts show new entries as soon as they are made. When the main loop is "log something, see its effect right away," this made the experience feel responsive instead of static and also give the AI memory.&lt;/p&gt;

&lt;p&gt;Key Decision: I made the activity input on purpose very simple. I wanted there to be no friction between a user's daily moment ("I just drove 30 miles") and logging it. People often give up on complicated carbon calculators because they ask for too much up front. GreenStep only asks for the bare minimum to get a useful number, and then it lets Gemini fill in the rest.&lt;/p&gt;

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

&lt;p&gt;Best Use of Google Gemini: Gemini powers the AI recommendation engine. It receives a personalized summary of the user's logged activity data and generates ranked, specific suggestions for reducing their footprint. The integration is core to the product. Without it, GreenStep is just a calculator. With it, it becomes an advisor.&lt;/p&gt;

&lt;p&gt;Best Use of Backboard: Backboard drives the real-time sync layer. Activity logs written by the user propagate instantly to the dashboard, keeping charts and totals live without requiring manual refreshes or polling. It made the feedback loop between "I did this" and "here is its impact" feel immediate.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
    <item>
      <title>Why I Want to Be a Front-End Developer and How HNG Will Help Me Achieve My Goals</title>
      <dc:creator>Adedeji Olamide</dc:creator>
      <pubDate>Fri, 31 Jan 2025 21:13:25 +0000</pubDate>
      <link>https://dev.to/octanexyz/why-i-want-to-be-a-front-end-developer-and-how-hng-will-help-me-achieve-my-goals-5egb</link>
      <guid>https://dev.to/octanexyz/why-i-want-to-be-a-front-end-developer-and-how-hng-will-help-me-achieve-my-goals-5egb</guid>
      <description>&lt;p&gt;&lt;strong&gt;My Motivation: Bridging Creativity and Technology&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;From the moment I built my first webpage, I was hooked. Front-end development captivated me with its blend of creativity and technical precision, transforming lines of code into visually stunning, user-friendly interfaces. But my aspirations don’t stop there. My ultimate goal is to become a &lt;strong&gt;blockchain developer&lt;/strong&gt;, creating decentralized applications (dApps) that empower users with transparency and security.&lt;/p&gt;

&lt;p&gt;Front-end development is the perfect foundation for this journey. Blockchain technology thrives on user adoption, and intuitive interfaces are critical for making complex systems accessible. By mastering front-end skills like HTML, CSS, and JavaScript, I aim to build seamless experiences that bridge users with blockchain’s transformative potential.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How HNG Will Accelerate My Growth&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The&amp;nbsp;&lt;a href="https://hng.tech/hire/web-developers" rel="noopener noreferrer"&gt;HNG Internship&lt;/a&gt;&amp;nbsp;is a launchpad for aspiring developers like me. Here’s how it aligns with my goals:&lt;/p&gt;

&lt;p&gt;1.&amp;nbsp;&lt;strong&gt;Mastering Core Front-End Technologies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;HNG emphasizes hands-on learning with modern web development tools. Their focus on JavaScript—a language pivotal for both front-end and blockchain development—will strengthen my ability to create dynamic interfaces. JavaScript frameworks like React, which HNG covers extensively, are also widely used in blockchain projects for building dApp frontends.&lt;/p&gt;

&lt;p&gt;2.&amp;nbsp;&lt;strong&gt;Collaboration and Real-World Projects&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The internship’s collaborative environment mirrors real-world tech teams. Working on projects with peers will teach me agile workflows and version control, skills essential for contributing to open-source blockchain platforms. Moreover, HNG’s network includes professionals who can offer mentorship on integrating front-end systems with blockchain backends.&lt;/p&gt;

&lt;p&gt;3.&amp;nbsp;&lt;strong&gt;Pathway to Blockchain Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While HNG’s&amp;nbsp;&lt;a href="https://hng.tech/hire/web-developers" rel="noopener noreferrer"&gt;web development program&lt;/a&gt;&amp;nbsp;hones my front-end expertise, their JavaScript-centric curriculum (see&amp;nbsp;HNG’s &lt;a href="https://hng.tech/hire/javascript-developers" rel="noopener noreferrer"&gt;JavaScript Developer Hiring&lt;/a&gt;) prepares me for backend logic. This duality is crucial for blockchain, where smart contracts (often written in JavaScript-based languages like Solidity) require robust front-end integration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Goals for the HNG Internship&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build a Strong Foundation in Front-End Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Plan&lt;/strong&gt;: Complete all tasks diligently, focusing on responsive design and JavaScript frameworks.&lt;br&gt;
&lt;strong&gt;Outcome&lt;/strong&gt;: Create portfolio projects showcasing interactive web apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explore Blockchain Integration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Plan&lt;/strong&gt;: Use HNG’s resources to learn how APIs connect frontends with blockchain networks. Experiment with libraries like Web3.js.&lt;br&gt;
&lt;strong&gt;Outcome&lt;/strong&gt;: Develop a basic dApp interface that interacts with a blockchain testnet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Network with Industry Professionals&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Plan&lt;/strong&gt;: Engage actively in HNG’s community, seek feedback, and connect with mentors experienced in blockchain.&lt;br&gt;
&lt;strong&gt;Outcome&lt;/strong&gt;: Gain insights into transitioning from front-end to blockchain roles.&lt;/p&gt;

&lt;p&gt;The HNG Internship isn’t just a stepping stone—it’s a catalyst. By refining my front-end skills here, I’ll be equipped to tackle the unique challenges of blockchain development. Every button I design, every API I integrate, and every line of JavaScript I write brings me closer to my goal: building decentralized solutions that redefine how we interact with technology.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
