<?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.us-east-2.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>SIGNAL — Alan Turing, Juneteenth, and the solstice, in three playable acts</title>
      <dc:creator>Adedeji Olamide</dc:creator>
      <pubDate>Sun, 21 Jun 2026 15:11:12 +0000</pubDate>
      <link>https://dev.to/octanexyz/signal-alan-turing-juneteenth-and-the-solstice-in-three-playable-acts-16bl</link>
      <guid>https://dev.to/octanexyz/signal-alan-turing-juneteenth-and-the-solstice-in-three-playable-acts-16bl</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/june-game-jam-2026-06-03"&gt;June Solstice Game Jam&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;SIGNAL is a three-chapter browser game about messages that someone tried to stop, and that got through anyway. Each chapter is its own kind of game, set in a different year, tied together by one idea: the moments that change history usually start with a signal that refuses to die.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chapter 1: The Machine (1943).&lt;/strong&gt; You sit at Bletchley Park breaking ciphers on an Enigma-style wheel. The messages you decode were written by people who couldn't say out loud who they were. Crack one, and Alan Turing reads it and talks to you about what you found.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chapter 2: The Word (June 19, 1865).&lt;/strong&gt; You become General Order No. 3, the order that reached Texas two and a half years late and finally ended slavery there. It plays as a side-scroller through a greyscale world, and every person you reach restores one stripe of the Pride flag to the screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chapter 3: The Light (June 21, 2026).&lt;/strong&gt; The game checks today's date. Play it on the solstice and the sky renders differently. Then it looks back at everything you did across the first two chapters, writes you a short personal message, and asks one question: what signal will you send?&lt;/p&gt;

&lt;p&gt;That's the theme connection, top to bottom. The solstice is the literal hinge of Chapter 3, since the game knows when June 21 is. Pride runs through the hidden-identity messages of Chapter 1 and the color restoration of Chapter 2. Juneteenth is the entire premise of Chapter 2. June being Turing's birth month is why Chapter 1 exists at all.&lt;/p&gt;

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

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

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

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

&lt;p&gt;Play it in the browser: &lt;a href="https://signal-six-lyart.vercel.app" rel="noopener noreferrer"&gt;https://signal-six-lyart.vercel.app&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The stack is small on purpose: Vite, Phaser 4, and the &lt;code&gt;@google/genai&lt;/code&gt; SDK for Gemini. No React, no TypeScript. Phaser already hands you scenes, input, audio, and a game loop, so a second framework would just be weight.&lt;/p&gt;

&lt;p&gt;A few decisions worth calling out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every Gemini call lives behind one file.&lt;/strong&gt; &lt;code&gt;GeminiService.js&lt;/code&gt; is the only place that imports the SDK, and it has two rules it never breaks. It races every call against a 10-second timeout, and it never throws. If the API is slow, errors out, or you're offline, the player gets a hand-written fallback instead of a spinner. I wrote eight fallbacks per call type so the canned lines don't repeat or read as canned. So Chapters 1 and 2 play fine with the network unplugged; only the live Turing lines and the ending reach out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The cipher is Vigenère, not a real Enigma.&lt;/strong&gt; Simulating actual rotors would have eaten the whole jam. Vigenère reads as real encryption on screen, it's clean to write as pure functions, and it sits right next to what Bletchley was actually up against. The cipher math has its own unit tests; 55 tests total run on vitest, covering the encoding, the save system, and the AI fallbacks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nothing is imported art.&lt;/strong&gt; The Enigma wheel, the signal particle, the citizens, and the gradient skies are all drawn at runtime with Phaser's graphics API. That kept the build tiny and gave the game one consistent, schematic look without me opening an image editor once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;State carries across the whole game.&lt;/strong&gt; A single PlayerState object tracks how many ciphers you cracked, how accurately, who you reached in Chapter 2, and what you said to Turing. Chapter 3 feeds all of it into the Gemini prompt, which is why the ending speaks to your specific run instead of a generic one.&lt;/p&gt;

&lt;p&gt;The honest messy part: I found a bug late where pressing Enter to skip the Chapter 1 intro leaked into the cipher wheel and confirmed a stray letter, quietly corrupting your first key. It took a real play through to catch. The fix was to drop Enter as a confirm key and keep confirmation on Space only.&lt;/p&gt;

&lt;p&gt;It ships to Vercel as a static site. One tradeoff comes with that: the Gemini key gets compiled into the client bundle. Fine for a jam, not something I'd push to production without locking the key to a domain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;p&gt;I'm submitting for both optional categories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Ode to Alan Turing.&lt;/strong&gt; Chapter 1 is the whole tribute. It's set at Bletchley in 1943, the mechanic &lt;em&gt;is&lt;/em&gt; code-breaking, and Turing shows up as a Gemini-powered character who reacts to what you decode. The deeper idea is the one that haunts his story: he built a machine to uncover hidden messages while having to hide who he was. The messages you decrypt were written by people doing exactly that, and Turing's dialogue keeps circling the gap between the secret you break and the secret you keep.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Google AI Usage.&lt;/strong&gt; I used the Gemini API (&lt;code&gt;gemini-2.5-flash-lite&lt;/code&gt;) in two places, and tried to make the AI do something a script couldn't. In Chapter 1, Turing's replies are generated against the actual message you just decoded, so he's answering content rather than playing a tape. In Chapter 3, the model reads your entire play through and writes a personal closing note. I ran it with thinking disabled and a 300-token cap because the writing is short, wrapped every call in the timeout-and-fallback net above, and kept all the prompts in one config file. The result is AI that carries the emotional payoff but can't break the game if the network does.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gamechallenge</category>
      <category>gamedev</category>
    </item>
    <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>
