<?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: Mari</title>
    <description>The latest articles on DEV Community by Mari (@tech_girlll).</description>
    <link>https://dev.to/tech_girlll</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%2F1898584%2F73c82e3c-aaf5-449e-ad1a-04689b7ea8cf.jpg</url>
      <title>DEV Community: Mari</title>
      <link>https://dev.to/tech_girlll</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tech_girlll"/>
    <language>en</language>
    <item>
      <title>Your AI Agent Has Amnesia. Here's the One That Doesn't.</title>
      <dc:creator>Mari</dc:creator>
      <pubDate>Sun, 31 May 2026 11:26:57 +0000</pubDate>
      <link>https://dev.to/tech_girlll/your-ai-agent-has-amnesia-heres-the-one-that-doesnt-440m</link>
      <guid>https://dev.to/tech_girlll/your-ai-agent-has-amnesia-heres-the-one-that-doesnt-440m</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;: Write About Hermes Agent&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most AI agents forget everything the moment you close the tab. Hermes Agent is built to do the opposite, and that changes more than you'd think.&lt;/p&gt;

&lt;p&gt;Let me start with something that drove me a little crazy when I first started using AI agents.&lt;br&gt;
You spend an hour teaching one of your projects. Your file structure, your preferences, the way you like things done. It's great. It helps. Then you close it, come back the next day, and it's like talking to a stranger. You're explaining everything again from scratch. It's like training a new intern every single morning, except the intern never actually learns.&lt;br&gt;
That's not a bug in one tool. That's how almost every AI agent works. They're stateless by design. Open a new session, start from zero. Whatever the agent figured out yesterday is gone.&lt;br&gt;
So when I came across Hermes Agent, the thing that caught my attention wasn't "another AI agent." It was one specific claim: this one doesn't forget. And the more I dug into how it works, the more I realized that's actually the interesting part. Let me walk you through it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First, what Hermes Agent actually is&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Quick clarification, because the name confuses people. Hermes Agent is not an AI model. It's not something you download and run like a brain.&lt;br&gt;
It's an agent framework. Think of it as the software that wraps around a model and gives it hands, memory, and a place to live. You bring the model (it works with pretty much anyone you want, ChatGPT, Claude, Gemini, open models, whatever), and Hermes handles the rest: the planning, the tools, the memory, the way it talks to you.&lt;br&gt;
It was built by Nous Research, released in February 2026, and it's open source under the MIT license. That means you can read every line of the code, change it, and run it yourself. It lives on your own server — could be a cheap five-dollar VPS (virtual private server), could be your laptop, and all your data stays on your machine. No tracking, no cloud lock-in.&lt;br&gt;
So far, normal. Lots of agents do the planning-and-tools thing. Here's where it gets different.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The thing that makes it different: it remembers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hermes has persistent memory. Not "I remembered the last few messages" memory. Real across-sessions memory. It remembers your projects, your preferences, and your environment, and it keeps that knowledge even after you restart it. The longer it runs, the better it knows you. You stop re-explaining yourself.&lt;br&gt;
Behind the scenes, it's not magic. It stores what happens locally and uses search plus summarization to pull the right context back when it needs it. But the effect is what matters: it builds up a picture of who you are and what you're working on, and that picture sticks.&lt;br&gt;
If you've ever felt the friction of repeating yourself to an AI, you already understand why this is a big deal.&lt;br&gt;
The part I find genuinely clever: it teaches itself&lt;br&gt;
This is the bit I want you to remember if you forget everything else.&lt;br&gt;
When Hermes solves a hard problem, something non-trivial that actually took some figuring out, it writes down how it did it. It creates what's called a skill. A skill is basically a little instruction document that says, "When a situation looks like this, here's the approach that works."&lt;br&gt;
So the next time it hits a similar problem, it doesn't start from scratch. It already has the playbook it wrote for itself.&lt;br&gt;
Think about what that means. Most agents are smart in the moment but forgetful forever. Hermes accumulates. It gets a library of its own hard-won lessons, and that library grows every time it works.&lt;br&gt;
And here's the part that takes it from "neat" to "actually important": those skills aren't locked inside your copy. They're saved in a portable, shareable format that follows an open standard. So one person's agent can learn something, write it down, and another person's agent can install that skill.&lt;br&gt;
Sit with that for a second. It's basically Stack Overflow, except the answers are written by agents, for agents. Individual experience turning into shared knowledge. That's not a small idea.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it can actually do day to day&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To make this concrete, here's the kind of stuff Hermes handles out of the box:&lt;/p&gt;

&lt;p&gt;It can run code, search the web, control a browser, click around, and take screenshots.&lt;br&gt;
It can reach you on Telegram, Discord, Slack, WhatsApp, Signal, or just your terminal, all from one place. Start a conversation on your phone, finish it on your laptop.&lt;br&gt;
It can run scheduled jobs. Daily reports, nightly backups, a morning briefing, all running while you're asleep.&lt;br&gt;
It can spin up smaller helper agents to handle separate tasks at the same time.&lt;/p&gt;

&lt;p&gt;The picture they're painting is an agent that isn't tied to your laptop sitting open. It's something that lives on a server, works in the background, and pings you wherever you are.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;So why does the "memory" thing matter so much?&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Here's my honest take after looking into all of this.&lt;br&gt;
For the last couple of years, the whole AI conversation has been about intelligence. Which model is smartest? Who scored higher on which benchmark? And that matters, sure.&lt;br&gt;
But intelligence that resets to zero every session has a ceiling. No matter how smart your agent is on Monday, if it's a blank slate again on Tuesday, you're capped. You're always paying the "re-explain everything" tax.&lt;br&gt;
What Hermes is betting on is a different axis entirely: not how smart the agent is in one moment, but how much it compounds over time. An agent that remembers and writes down what it learns doesn't just stay useful. It gets more useful the longer you use it. That's a fundamentally different shape than what most of us are used to.&lt;br&gt;
I don't know if Hermes specifically wins. The space moves fast, and there are other strong frameworks. But the idea it's built on, agents that accumulate instead of reset, feels like one of those things that's obvious in hindsight. Once you've felt the friction of an agent with amnesia, you don't really want to go back.&lt;br&gt;
If you want to try it&lt;br&gt;
You don't need much. It runs on Linux, macOS, or WSL2 on Windows, and it installs with a single command, no big setup, no prerequisites. There's a free CLI to start chatting right away, and an optional step to connect it to your messaging apps if you want it reachable from your phone.&lt;br&gt;
It's free, it's open source, and you can run it on a cheap server. If the "agent with memory" idea grabs you the way it grabbed me, it's worth a weekend.&lt;/p&gt;

&lt;p&gt;start here: &lt;br&gt;
&lt;a href="https://hermes-agent.nousresearch.com/" rel="noopener noreferrer"&gt;https://hermes-agent.nousresearch.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>hermesagentchallenge</category>
      <category>devchallenge</category>
      <category>agents</category>
    </item>
    <item>
      <title>One day since I wrote this article and I keep remembering how difficult and poor local LLMs were but now it’s a different story. 

Google Deepmind and other open weight models are changing the story. 

Read more…..</title>
      <dc:creator>Mari</dc:creator>
      <pubDate>Thu, 21 May 2026 17:48:44 +0000</pubDate>
      <link>https://dev.to/tech_girlll/one-day-since-i-wrote-this-article-and-i-keep-remembering-how-difficult-and-poor-local-llms-were-kmb</link>
      <guid>https://dev.to/tech_girlll/one-day-since-i-wrote-this-article-and-i-keep-remembering-how-difficult-and-poor-local-llms-were-kmb</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2" class="crayons-story__hidden-navigation-link"&gt;I Ran Google's Gemma 4 on a 10-Year-Old Laptop With No GPU. Here Is What I Found.&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Gemma 4 Challenge: Write about Gemma 4 Submission&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/tech_girlll" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F1898584%2F73c82e3c-aaf5-449e-ad1a-04689b7ea8cf.jpg" alt="tech_girlll profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/tech_girlll" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Mari
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Mari
                
              
              &lt;div id="story-author-preview-content-3688112" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/tech_girlll" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F1898584%2F73c82e3c-aaf5-449e-ad1a-04689b7ea8cf.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Mari&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 17&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2" id="article-link-3688112"&gt;
          I Ran Google's Gemma 4 on a 10-Year-Old Laptop With No GPU. Here Is What I Found.
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/gemmachallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;gemmachallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/gemma"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;gemma&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            8 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Local Models are getting so good these days.

Imagine having an AI agent on your local machine. No API keys. No Subscription. No Rate Limits.
I installed Gemma 4 E2B on a 10-year-old laptop.

Read to find out my experience.</title>
      <dc:creator>Mari</dc:creator>
      <pubDate>Mon, 18 May 2026 12:20:30 +0000</pubDate>
      <link>https://dev.to/tech_girlll/local-models-are-getting-so-good-these-days-imagine-having-an-ai-agent-on-your-local-machine-cj5</link>
      <guid>https://dev.to/tech_girlll/local-models-are-getting-so-good-these-days-imagine-having-an-ai-agent-on-your-local-machine-cj5</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2" class="crayons-story__hidden-navigation-link"&gt;I Ran Google's Gemma 4 on a 10-Year-Old Laptop With No GPU. Here Is What I Found.&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Gemma 4 Challenge: Write about Gemma 4 Submission&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/tech_girlll" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F1898584%2F73c82e3c-aaf5-449e-ad1a-04689b7ea8cf.jpg" alt="tech_girlll profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/tech_girlll" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Mari
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Mari
                
              
              &lt;div id="story-author-preview-content-3688112" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/tech_girlll" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F1898584%2F73c82e3c-aaf5-449e-ad1a-04689b7ea8cf.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Mari&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 17&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2" id="article-link-3688112"&gt;
          I Ran Google's Gemma 4 on a 10-Year-Old Laptop With No GPU. Here Is What I Found.
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/gemmachallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;gemmachallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/gemma"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;gemma&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            8 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>I Ran Google's Gemma 4 on a 10-Year-Old Laptop With No GPU. Here Is What I Found.</title>
      <dc:creator>Mari</dc:creator>
      <pubDate>Sun, 17 May 2026 13:54:53 +0000</pubDate>
      <link>https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2</link>
      <guid>https://dev.to/tech_girlll/i-ran-googles-gemma-4-on-a-10-year-old-laptop-with-no-gpu-here-is-what-i-found-56b2</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: Write About Gemma 4&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I knew local LLMs existed, but I never knew they were capable of doing high computational work. A few days ago, I installed Google's Gemma 4 E2B on a 10-year-old HP EliteBook, Intel i7 from 2016, 16 GB of RAM, no GPU, just integrated graphics.&lt;br&gt;
I honestly didn't know what to expect. I was totally blown away. I thought it was going to be very slow, but it wasn't. I also thought it was going to give me generic responses, but I was completely wrong.&lt;br&gt;
This is what I found.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Google's Gemma 4 was released in April 2026. For those that aren't aware of it, Gemma 4 is a family of open-weight models (open-weight simply means anyone can download the model and run it themselves, no internet needed once it's installed). It has four models: the E2B and E4B (designed mainly for phones and laptops with low computational power), and the 26B and 31B (for high-end systems and GPUs). I used E2B because that's what my system could handle, a 7.2 GB model file.&lt;br&gt;
This runs on Ollama, a tool for running AI models on a computer.&lt;br&gt;
My setup: Ubuntu 24.04, Ollama 0.23.3, Gemma 4 E2B.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Install&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before I show you what Gemma 4 can do, I should be honest about what it took to get it running. It was not quick.&lt;br&gt;
I started with the standard Ollama install command. The download got to 98.9% and then died with a protocol error. My connection is not the most stable,and the install script could not handle the dropouts. I saw a lot of "Could not resolve host: github.com" messages along the way.&lt;br&gt;
The fix was to download the install script separately first, with retries built in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -L --retry 5 --retry-delay 3 -o install.sh https://ollama.com/install.sh
sh install.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The --retry flag tells curl to keep trying when the connection drops. That part worked. Ollama was installed eventually, after about two hours of patience.&lt;br&gt;
Then I pulled the model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ollama pull gemma4:e2b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That was another two hours for 7.2 GB. Total time from clicking the first command to my first real conversation with Gemma: about four hours.&lt;br&gt;
Here is the part that makes the four hours worth it. After this, no internet is ever needed again. The model lives on my disk. No API key, no subscription, no monthly bill. Pay the install cost once, use it forever.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The First Conversations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I started with a simple question: how does Gemma verify information?&lt;br&gt;
The answer surprised me. Gemma did not pretend to be a search engine or a fact-checker. It admitted plainly that it does not verify anything. It explained that it is a pattern-matching engine that predicts likely sequences of words based on its training data, and it used the word "hallucination" to describe its main limitation.&lt;br&gt;
In its own words:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I am an extremely sophisticated pattern-matching engine. I generate information based on the knowledge I absorbed during training, not by verifying facts against an external database. Therefore, it is crucial to treat my output as a starting point or a resource, and always verify critical information using reliable, external sources.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That kind of honesty from a small local model was not what I expected.&lt;br&gt;
One thing I noticed quickly: Gemma's default style is very structured. Lots of headers, lots of bullet points, lots of bold. For some tasks, this is great. For casual conversation, it feels like the model is filing a report. Worth knowing if you plan to use it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code, the Real Test&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the part that mattered to me as a developer. I asked Gemma to write a Python function that takes a list of integers and returns the second-largest unique value, handling edge cases.&lt;br&gt;
The response was better than I expected. Gemma first showed its reasoning, working through edge cases before writing a single line of code: empty list, duplicates, negatives, and all elements the same. Then it produced this:&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%2Fenyawux9aukx3ipxyntw.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%2Fenyawux9aukx3ipxyntw.png" alt=" " width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;`from typing import List, Optional&lt;/p&gt;

&lt;p&gt;def find_second_largest_unique(numbers: List[int]) -&amp;gt; Optional[int]:&lt;br&gt;
    """&lt;br&gt;
    Finds the second largest unique value in a list of integers.&lt;br&gt;
    """&lt;br&gt;
    if not numbers:&lt;br&gt;
        return None&lt;br&gt;
    unique_numbers = set(numbers)&lt;br&gt;
    sorted_unique = sorted(list(unique_numbers), reverse=True)&lt;br&gt;
    if len(sorted_unique) &amp;lt; 2:&lt;br&gt;
        return None&lt;br&gt;
    return sorted_unique[1]`&lt;/p&gt;

&lt;p&gt;Proper type hints. A real docstring. Comments explaining the choices. After the function, it added six test cases covering every edge case I would have written, and finished with a complexity analysis: O(N log N) time, O(N) space.&lt;br&gt;
I would accept this in a code review. From a developer working under me, this is solid junior-to-mid-level work. From a 7.2 GB file running on a 2016 laptop with no GPU, it is something else.&lt;br&gt;
The timing on this response: about 5 to 15 seconds before the first word appeared, then 30 to 60 seconds for the full response, including the thinking trace, the code, the tests, and the complexity analysis. Fast enough to read along as it is typed. I never sat there waiting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Long Context Test&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;Gemma 4 advertises a 128K token context window, which is roughly enough to hold a short novel. I wanted to see how that holds up on real hardware.&lt;br&gt;
I downloaded "The Yellow Wallpaper" by Charlotte Perkins Gilman from Project Gutenberg, about 9,000 words, and asked Gemma to summarize it in three sentences.&lt;br&gt;
The first attempt took 10 minutes, and the summary it gave me was not about the story. It was about copyright and Project Gutenberg's terms of use. The boilerplate header at the top of the file had taken over.&lt;br&gt;
I stripped out the license text and tried again with just the story, about 6,000 words. This time it took 5 minutes, and the summary was real:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The narrator, confined by oppressive circumstances, engages in a desperate act of rebellion by tearing down or removing a portion of the wallpaper, which reveals a hidden reality. This act leads to a further exploration of the narrator's confinement, paranoia, and a climactic confrontation with the perceived prison. Ultimately, the story ends with the narrator's escape, emphasizing a violent break from her oppressive environment."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A literature student would accept this.&lt;br&gt;
So the long context works. But two things matter. First, on CPU-only hardware, every thousand words of input has a real-time cost. Second, what you put in matters as much as how much you put in. Feed it boilerplate, and you get a summary of boilerplate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where It Broke: The Multilingual Claim&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;The Gemma 4 documentation says the model supports more than 140 languages. I speak Nigerian Pidgin and Igbo, so I tested both.&lt;br&gt;
I asked Gemma to translate this sentence into Nigerian Pidgin: "I'm going to the market to buy some food because there's nothing in the house."&lt;br&gt;
Gemma's best option:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I go market to buy food because there na nothing for the house.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;How a Nigerian actually says it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I wan go market go buy food, notin dey house. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The difference is not small. Gemma used real Pidgin words but glued them together with English grammar. It kept "to buy" instead of the Pidgin serial verb "go buy." It used "because" as a connector when Pidgin would just lean on the comma. The result is recognizable to a Pidgin speaker, but it is not how anyone actually talks.&lt;br&gt;
Igbo was worse. I asked for the same sentence in Igbo, and Gemma gave me this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A na-ekwu n'ịde maka ịzụ ụfọdụ n'aka n'ụlọ, ka ọ bụla nọ n'ụlọ.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The correct version:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Anam aga ahịa igote nri maka na onweghị ihe dị na ụlọ.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Gemma version is not just unnatural. It uses words that do not mean what the model thought they meant. In its own thinking trace, Gemma defined "ahụ" as "I," when it actually means "body." It defined "nwere" as "to buy," when it really means "to have." The model was confidently making up definitions and then using them to translate.&lt;/p&gt;

&lt;p&gt;Supports 140 languages" is doing a lot of work in that marketing line. For low-resource African languages, my honest finding is that the model does not just struggle. It fabricates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where It Worked: The Image Test&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqxrhmc18cr0s462rtn4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqxrhmc18cr0s462rtn4.jpg" alt=" " width="640" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To balance the multilingual finding, I tried something Gemma 4 is supposed to be strong at: looking at images.&lt;br&gt;
I downloaded a photo of a mountain landscape at golden hour, with peaks rising above a sea of clouds. I asked Gemma to describe what she saw.&lt;br&gt;
The processing took about 8 minutes, which is slow but expected on a CPU. The description was not slow:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This is a breathtaking, panoramic photograph that captures a dramatic mountain landscape seen from a high vantage point, likely during sunrise or sunset. The image is defined by a striking contrast between the dark, rugged foreground and a vast, ethereal sea of clouds below.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It went on to describe the three layers of the composition, the snow on the peaks, the warm tones on the high mountains versus the cool blues higher in the sky, and the dark scrubby terrain in the foreground. All of it was accurate. A blind person reading that description could form a real picture of the actual photo.&lt;br&gt;
So the multimodal feature works, and it works well. It is just slow on a laptop like mine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Honest Moment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One thing I want to admit before I wrap up. While I was running the math test, I gave Gemma a word problem about trains traveling between two cities. &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%2F2hijv6xf97xhublz821e.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%2F2hijv6xf97xhublz821e.png" alt=" " width="800" height="33"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The answer came back referencing the cities I had typed. I looked at the output and at first thought Gemma had swapped my cities for American ones. I was about to write a section about training data bias.&lt;br&gt;
Then I looked at my own prompt. I had typed the American cities myself and forgotten. Gemma was just using what I gave her.&lt;br&gt;
The reason I am including this: when something seems wrong with AI, it is worth checking your own input first. A lot of "AI is bad at X" takes are quietly user error.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What This Means&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eight years ago, running a useful language model on a laptop without a GPU was a fantasy. Two years ago, it was possible, but the output was bad enough that you would only do it as a hobby. Now I am running a 7.2 GB file on a 2016 business laptop, and it is writing code I would accept from a junior engineer, summarizing 6,000-word documents, and describing photographs with the eye of a writer.&lt;br&gt;
It is not perfect. The long context is slow on the CPU. The multilingual support breaks for low-resource languages. The image processing takes minutes, not seconds. But "not perfect" is a different conversation from "not useful."&lt;br&gt;
The gap between cloud AI and what runs on ordinary hardware has closed faster than I realized. For a developer without an API budget, without reliable internet, or without a workstation, that gap-closing is not just a technical detail. It is the difference between using these tools and not.&lt;/p&gt;

&lt;p&gt;And because Gemma 4 is released under the Apache 2.0 license, anything I build with it is mine to ship. No usage fees, no rate limits, no terms of service that change next year.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to Try It Yourself&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have a laptop with at least 8 GB of RAM and a few hours of patience, you can try this today. Three commands:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;curl -fsSL https://ollama.com/install.sh | sh&lt;br&gt;
ollama pull gemma4:e2b&lt;br&gt;
ollama run gemma4:e2b&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The first installs Ollama. The second pulls the model. The third starts a chat.&lt;br&gt;
If your connection is flaky like mine, swap the first command for the retry-friendly version I used:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;curl -L --retry 5 --retry-delay 3 -o install.sh https://ollama.com/install.sh&lt;br&gt;
sh install.sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then ask it something hard. See what surprises you.&lt;/p&gt;

&lt;p&gt;If you try it, I'd love to hear what you build with it. Drop a comment with what worked, what didn't, or what surprised you. The local AI conversation is just getting started.&lt;br&gt;
Then ask it something hard. See what surprises you.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemmachallenge</category>
      <category>gemma</category>
    </item>
    <item>
      <title>A Simple Guide to Cookies in Modern Web Development</title>
      <dc:creator>Mari</dc:creator>
      <pubDate>Wed, 14 Jan 2026 05:22:37 +0000</pubDate>
      <link>https://dev.to/tech_girlll/a-simple-guide-to-cookies-in-modern-web-development-43ap</link>
      <guid>https://dev.to/tech_girlll/a-simple-guide-to-cookies-in-modern-web-development-43ap</guid>
      <description>&lt;p&gt;If you have ever logged into a website and found that you were still logged in the next day, you have used a cookie. But what is it actually?&lt;/p&gt;

&lt;p&gt;As we move through 2026, the way we store data on a user's computer has changed. Whether you are building your first website or your fifty-eighth, here is a guide to how cookies work today and why they still matter.&lt;/p&gt;

&lt;p&gt;What exactly is a Cookie?&lt;br&gt;
Think of a cookie as a digital luggage tag. Imagine you go to a hotel to drop off your bags:&lt;/p&gt;

&lt;p&gt;The Drop-off: You give your bags to the clerk.&lt;/p&gt;

&lt;p&gt;The Ticket: The clerk gives you a small numbered ticket.&lt;/p&gt;

&lt;p&gt;The Return: Later, you come back. You do not have to explain who you are. You just show the ticket.&lt;/p&gt;

&lt;p&gt;The Match: The clerk looks at the number and gives you your bags.&lt;/p&gt;

&lt;p&gt;In this story, the ticket is the cookie. It is a tiny piece of text that the website gives your browser so it can remember who you are later.&lt;/p&gt;

&lt;p&gt;How the Process Works (Step-by-Step)&lt;br&gt;
To understand cookies, you have to see the back-and-forth conversation between your computer and the website.&lt;/p&gt;

&lt;p&gt;The Request: You type website.com and hit enter. Your browser asks the website for the page.&lt;/p&gt;

&lt;p&gt;The Response: The website sends the page data. Along with that data, it sends a note that says: Set-Cookie: ID=123.&lt;/p&gt;

&lt;p&gt;The Storage: Your browser sees that note and saves the ID 123 in a small file on your computer.&lt;/p&gt;

&lt;p&gt;The Next Visit: The next time you click a link on that site, your browser automatically attaches a note to your request: Cookie: ID=123.&lt;/p&gt;

&lt;p&gt;The Recognition: The website sees the ID, looks it up in its database, and says, "Welcome back, User 123!"&lt;/p&gt;

&lt;p&gt;Cookies vs. LocalStorage&lt;br&gt;
Developers often get confused about which one to use. Here is the simple breakdown:&lt;/p&gt;

&lt;p&gt;Cookies: These are tiny. Their main job is to be sent back and forth between the browser and the website server. They are designed for security and identifying who you are.&lt;/p&gt;

&lt;p&gt;LocalStorage: This is much larger. It stays on your browser and is never sent to the website automatically. It is designed for saving settings like "Dark Mode" or a draft of a message.&lt;/p&gt;

&lt;p&gt;The Rule: Use cookies for anything sensitive (like a login). Use LocalStorage for things that are not secret.&lt;/p&gt;

&lt;p&gt;The Modern Security Rules&lt;br&gt;
In the past, cookies were simple. Today, they have "bodyguards" called attributes. If you do not use these, your website is at risk.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;HttpOnly (The Invisible Shield)&lt;br&gt;
When you mark a cookie as HttpOnly, it means the website's own code cannot see or touch the cookie. Only the browser can send it to the server. This prevents hackers from stealing your login information using malicious scripts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Secure (The Enforced Lock)&lt;br&gt;
The Secure attribute tells the browser to only send the cookie if the connection is encrypted (HTTPS). This prevents people from "eavesdropping" on your data when you use public Wi-Fi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SameSite (The Border Control)&lt;br&gt;
This attribute tells the browser whether to send the cookie when you click a link from a different website. Setting this to Lax is the modern standard. It prevents other websites from tricking your browser into performing actions you did not intend.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Common Mistakes and How to Fix Them&lt;br&gt;
The Localhost Problem&lt;br&gt;
Many developers turn on the Secure flag and then wonder why their login stopped working on their personal computer. Since your local computer usually does not use an encrypted connection, the browser blocks the cookie. You should only turn on the Secure flag when your website is live on the internet.&lt;/p&gt;

&lt;p&gt;The 400-Day Limit&lt;br&gt;
Browsers now have a strict limit on how long a cookie can live. Even if you tell a cookie to last for 10 years, the browser will delete it after about 13 months (400 days). To keep a user logged in longer, you must give them a fresh cookie every time they visit.&lt;/p&gt;

&lt;p&gt;The Missing Connection&lt;br&gt;
If you use code to talk to your server, you might notice the cookies are missing. You must tell your code to "include credentials" in your settings. Otherwise, the browser thinks you want to keep your cookies private and will not send them.&lt;/p&gt;

&lt;p&gt;Summary: Your 2026 Strategy&lt;br&gt;
To keep your users safe, follow this simple plan:&lt;/p&gt;

&lt;p&gt;For Login Sessions: Use a Cookie. Turn on the HttpOnly, Secure, and SameSite settings.&lt;/p&gt;

&lt;p&gt;For UI Preferences: Use LocalStorage. It is faster and does not send extra data to the server every time you click a button.&lt;/p&gt;

&lt;p&gt;By following these steps, you protect your users while keeping your website fast and easy to use.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>cookies</category>
      <category>localstorage</category>
    </item>
    <item>
      <title>The Intersection of web2 backend and web3</title>
      <dc:creator>Mari</dc:creator>
      <pubDate>Thu, 18 Dec 2025 21:16:45 +0000</pubDate>
      <link>https://dev.to/tech_girlll/the-intersection-of-web2-backend-and-web3-3cb6</link>
      <guid>https://dev.to/tech_girlll/the-intersection-of-web2-backend-and-web3-3cb6</guid>
      <description>&lt;p&gt;&lt;strong&gt;The Intersection of Web2 Backends and Web3&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Web3 is often described as a complete replacement for Web2. In practice, that idea breaks down very quickly once real products, real users, and real scale are involved. Most successful Web3 applications today are not purely decentralized systems. They are hybrids, combining traditional Web2 backends with blockchain-based infrastructure.&lt;/p&gt;

&lt;p&gt;Understanding this intersection is critical for backend developers who want to move into Web3 without abandoning everything they already know.&lt;/p&gt;

&lt;p&gt;This article explores what actually happens at the boundary between Web2 and Web3, why it exists, and how backend engineers fit into the picture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Web2 does not disappear in Web3
&lt;/h2&gt;

&lt;p&gt;Blockchains are excellent at a few specific things. They provide trust minimization, censorship resistance, a transparent state, and permissionless execution. They are not good at fast queries, private data storage, complex computations, or frequent logic changes.&lt;/p&gt;

&lt;p&gt;Web2 backends solve those exact problems.&lt;/p&gt;

&lt;p&gt;That is why Web3 systems still rely heavily on traditional servers, databases, APIs, and background workers. The goal is not to replace Web2, but to reduce how much trust users must place in it.&lt;/p&gt;

&lt;p&gt;In most production systems, Web2 handles speed and usability, while Web3 handles ownership and trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  What stays Web2
&lt;/h2&gt;

&lt;p&gt;In a typical Web3 application, the following components almost always remain off-chain:&lt;/p&gt;

&lt;p&gt;User profiles and preferences&lt;br&gt;
Authentication layers beyond wallet ownership&lt;br&gt;
Complex business logic&lt;br&gt;
Analytics and reporting&lt;br&gt;
Search and filtering&lt;br&gt;
Caching and performance optimization&lt;br&gt;
Notifications, emails, and messaging&lt;br&gt;
Admin and moderation tools&lt;/p&gt;

&lt;p&gt;Blockchains are slow, expensive, and public by design. Anything that requires privacy, flexibility, or scale belongs in a traditional backend.&lt;/p&gt;

&lt;h2&gt;
  
  
  What becomes Web3 aware
&lt;/h2&gt;

&lt;p&gt;At the intersection, the backend begins to understand blockchain concepts and treat them as first-class data sources.&lt;/p&gt;

&lt;p&gt;Instead of usernames or emails as primary identifiers, the backend works with wallet addresses.&lt;br&gt;
Instead of database rows as the source of truth, it verifies on the on-chain state.&lt;br&gt;
Instead of internal events, it reacts to smart contract events.&lt;/p&gt;

&lt;p&gt;The backend does not own a critical state anymore. It mirrors, indexes, and responds to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  A common hybrid architecture
&lt;/h2&gt;

&lt;p&gt;A very common Web2 plus Web3 flow looks like this:&lt;/p&gt;

&lt;p&gt;A user connects a wallet on the frontend&lt;br&gt;
The user signs a message&lt;br&gt;
The backend verifies the signature&lt;br&gt;
The backend creates a session or token&lt;br&gt;
The backend listens for blockchain events&lt;br&gt;
The backend updates its database accordingly&lt;/p&gt;

&lt;p&gt;This approach allows applications to remain fast and user-friendly, while still relying on cryptographic proof of ownership.&lt;/p&gt;

&lt;h2&gt;
  
  
  The backend developer’s role in Web3
&lt;/h2&gt;

&lt;p&gt;Despite popular narratives, Web3 companies hire a large number of backend engineers. The responsibilities simply expand.&lt;/p&gt;

&lt;p&gt;Backend developers in Web3 often:&lt;/p&gt;

&lt;p&gt;Verify wallet signatures&lt;br&gt;
Index blockchain data into databases&lt;br&gt;
Listen to smart contract events&lt;br&gt;
Trigger off-chain workflows&lt;br&gt;
Aggregate data across multiple chains&lt;br&gt;
Expose REST or GraphQL APIs&lt;br&gt;
Prevent abuse and automate moderation&lt;br&gt;
Integrate with external services&lt;/p&gt;

&lt;p&gt;In many startups, the majority of the codebase is still Web2.&lt;/p&gt;

&lt;h2&gt;
  
  
  Smart contracts versus backend logic
&lt;/h2&gt;

&lt;p&gt;One of the most important design decisions in hybrid systems is deciding what lives on chain and what stays off chain.&lt;/p&gt;

&lt;p&gt;Smart contracts should be minimal, deterministic, and security-critical. They define ownership, value transfer, and irreversible actions.&lt;/p&gt;

&lt;p&gt;Backends should handle logic that changes frequently, requires heavy computation, or depends on private data.&lt;/p&gt;

&lt;p&gt;Pushing too much logic on the chain leads to high costs and inflexibility. Pushing too much logic off-chain weakens trust guarantees. The intersection exists to balance both.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools commonly used at the intersection
&lt;/h2&gt;

&lt;p&gt;On the Web2 side:&lt;/p&gt;

&lt;p&gt;Traditional backend frameworks&lt;br&gt;
Relational databases&lt;br&gt;
Caching layers&lt;br&gt;
Message queues&lt;br&gt;
REST and GraphQL APIs&lt;/p&gt;

&lt;p&gt;On the Web3 side:&lt;/p&gt;

&lt;p&gt;Blockchain RPC providers&lt;br&gt;
Wallet signature verification libraries&lt;br&gt;
Smart contract event listeners&lt;br&gt;
Indexing services&lt;/p&gt;

&lt;p&gt;The backend acts as the glue that connects these worlds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-world examples
&lt;/h2&gt;

&lt;p&gt;DeFi platforms store funds and rules on-chain, while backends track positions, history, and risk metrics.&lt;/p&gt;

&lt;p&gt;NFT platforms keep ownership on chain, while metadata, search, and discovery live off-chain.&lt;/p&gt;

&lt;p&gt;DAO tooling runs voting on chain, but analytics, dashboards, and permissions are handled by backends.&lt;/p&gt;

&lt;p&gt;Very few production systems are fully decentralized end-to-end.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this intersection matters
&lt;/h2&gt;

&lt;p&gt;Pure Web3 systems struggle with usability and scale.&lt;br&gt;
Pure Web2 systems struggle with trust and transparency.&lt;/p&gt;

&lt;p&gt;Hybrid systems combine the strengths of both.&lt;/p&gt;

&lt;p&gt;For backend developers, this intersection is an opportunity rather than a threat. Existing skills in APIs, databases, security, and system design are not obsolete. They are essential.&lt;/p&gt;

&lt;p&gt;Learning how blockchains work allows you to build systems that are fast, trustworthy, and practical.&lt;/p&gt;

&lt;p&gt;The future of Web3 is not about abandoning Web2. It is about integrating it intelligently.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>web3</category>
      <category>web</category>
    </item>
    <item>
      <title>Why Every Generation Has a Different Relationship With Technology</title>
      <dc:creator>Mari</dc:creator>
      <pubDate>Fri, 12 Dec 2025 07:37:45 +0000</pubDate>
      <link>https://dev.to/tech_girlll/why-every-generation-has-a-different-relationship-with-technology-3136</link>
      <guid>https://dev.to/tech_girlll/why-every-generation-has-a-different-relationship-with-technology-3136</guid>
      <description>&lt;p&gt;Every generation carries a different story about the world. A different memory. A different way of surviving and understanding life. That is why no two generations approach technology the same way. Technology did not meet us equally. It did not arrive at the same stage of our lives. It did not shape our beliefs in the same way.&lt;/p&gt;

&lt;p&gt;For some, technology was a shock. For others, it was a miracle. And for those growing up today, technology is simply the world they were born into.&lt;/p&gt;

&lt;p&gt;The Generation That Watched the World Transform&lt;/p&gt;

&lt;p&gt;Older generations lived through a time when technology was not everywhere. Phones had limits. Information requires effort. Connection requires presence. To them, technology is still something to be managed and approached with caution. They had to adjust to it. They had to learn it. They had to trust it slowly.&lt;/p&gt;

&lt;p&gt;This relationship is built on distance. They remember what life looked like before everything became fast. Before everything became digital. Before everything became automated. Their memories give them a different kind of balance.&lt;/p&gt;

&lt;p&gt;The Generation That Grew Up in Transition&lt;/p&gt;

&lt;p&gt;Then there is the generation that grew up in the middle. They saw the world shift from analog to digital right in front of their eyes. They watched phones evolve. They watched the internet spread. They watched opportunities multiply. To them, technology is both familiar and new. Both exciting and overwhelming. Both empowering and distracting.&lt;/p&gt;

&lt;p&gt;They understand life before and after the revolution. They understand the silence before everything became loud. They understand the simplicity before everything became optimized. Their relationship with technology is a blend of curiosity and caution because they have lived on both sides.&lt;/p&gt;

&lt;p&gt;The Generation Born Into the Digital World&lt;/p&gt;

&lt;p&gt;For today’s younger generation, technology is not an invention. It is a foundation. It is the first language they learn before they even understand their own thoughts deeply. They navigate screens before they know how to write fully. They find answers online before asking questions offline.&lt;/p&gt;

&lt;p&gt;Their relationship with technology is natural. It is not a tool. It is a lifestyle. It shapes their identity, their friendships, their worldview, and their expectations. It becomes the lens through which they see the world.&lt;/p&gt;

&lt;p&gt;Why These Differences Matter&lt;/p&gt;

&lt;p&gt;Different relationships with technology create different beliefs. Different fears. Different values. Different strengths.&lt;/p&gt;

&lt;p&gt;One generation values privacy because they lived without the internet. Another generation values speed because they witnessed the rise of efficiency. The youngest values access because they have never seen a world without it.&lt;/p&gt;

&lt;p&gt;This is not a conflict. It is a spectrum. Each generation brings something the others do not have. Wisdom. Adaptability. Curiosity. New vision.&lt;/p&gt;

&lt;p&gt;When these perspectives come together, technology becomes more human. More grounded. More meaningful.&lt;/p&gt;

&lt;p&gt;Technology Is Not Just Devices. It Is Culture.&lt;/p&gt;

&lt;p&gt;In the end, the story of technology is the story of people. How we adapt. How we learn. How we evolve. Technology shapes our behavior, our communication, our careers, our relationships, and even our definition of community. But each generation interprets these changes through its own history.&lt;/p&gt;

&lt;p&gt;This is why we misunderstand each other sometimes. This is why our expectations differ. This is why our comfort levels are not the same. But instead of seeing these differences as a division, we should see them as an advantage.&lt;/p&gt;

&lt;p&gt;Technology grows best when many perspectives shape it. When the people who remember life before the internet meet the people who cannot imagine a world without it. When experience meets innovation. When memory meets possibility.&lt;/p&gt;

&lt;p&gt;Every generation brings something essential to the digital world. And that is what keeps technology human.&lt;/p&gt;

</description>
      <category>techtalks</category>
      <category>tech</category>
    </item>
    <item>
      <title>The Silent Pressure of Staying Relevant in Tech</title>
      <dc:creator>Mari</dc:creator>
      <pubDate>Mon, 01 Dec 2025 12:59:50 +0000</pubDate>
      <link>https://dev.to/tech_girlll/the-silent-pressure-of-staying-relevant-in-tech-4pi2</link>
      <guid>https://dev.to/tech_girlll/the-silent-pressure-of-staying-relevant-in-tech-4pi2</guid>
      <description>&lt;p&gt;There is a kind of pressure in tech that nobody really talks about. It is not the pressure of deadlines or difficult tasks. It is the quiet fear that if you stop learning for a moment, the industry will leave you behind.&lt;/p&gt;

&lt;p&gt;Every week, there is a new framework. Every month, there is a new tool. Every year, there is a new trend that everyone claims will “change everything”. And in the middle of all of that noise is you, trying to learn, build, grow and still breathe.&lt;/p&gt;

&lt;p&gt;The Pace Is Exhausting&lt;/p&gt;

&lt;p&gt;People outside tech sometimes believe developers enjoy every update. They think we spend all day exploring new tools for fun. But the truth is simpler. Most of us just want to be good at our work. We want to build things that matter. Yet the landscape moves so fast that even when you are doing your best, you can still feel behind.&lt;/p&gt;

&lt;p&gt;You learn a framework today, and by the time you finally understand it, another one is already taking over the conversation. You master a tool only to hear that there is a “better” one you should be using. You start a course, and midway through it, a new update makes half of the syllabus feel old.&lt;/p&gt;

&lt;p&gt;The pressure is not loud. It is quiet. It sits at the back of your mind. It pushes you when you are tired. And sometimes, it whispers the thought nobody wants to admit: “Maybe I am not keeping up.”&lt;/p&gt;

&lt;p&gt;The Emotional Weight That Follows&lt;/p&gt;

&lt;p&gt;This pressure shows up in small ways.&lt;/p&gt;

&lt;p&gt;You feel guilty when you take a break.&lt;br&gt;
You feel insecure when you see people posting new projects on social media.&lt;br&gt;
You feel anxious when you realise you have not learned something “important” yet.&lt;br&gt;
You feel overwhelmed when your to-learn list grows longer than your to-do list.&lt;/p&gt;

&lt;p&gt;And even though everyone around you seems to be moving forward, you feel like you are running just to remain in the same place.&lt;/p&gt;

&lt;p&gt;Why It Happens&lt;/p&gt;

&lt;p&gt;Tech is built on speed. Companies build fast. Tools evolve fast. People share fast. That speed can create a culture where slowing down feels like failure. But the truth is this: nobody can learn everything. Nobody can keep up with every update. Nobody can master every tool.&lt;/p&gt;

&lt;p&gt;The industry moves fast, but humans do not. And that is fine.&lt;/p&gt;

&lt;p&gt;How to Navigate Without Losing Yourself&lt;/p&gt;

&lt;p&gt;What helps is not trying to learn everything. What helps is learning with intention.&lt;/p&gt;

&lt;p&gt;Keep your focus small.&lt;br&gt;
Pick one path and grow there.&lt;br&gt;
Choose depth over hype.&lt;br&gt;
Let your learning be guided by what you want to build, not by what the internet is shouting about.&lt;/p&gt;

&lt;p&gt;You will always see new tools. You will always see new trends. But you do not need to chase all of them. You only need to understand the ones that move you forward.&lt;/p&gt;

&lt;p&gt;And remember to rest. You are not falling behind when you breathe. You are not losing your place when you pause. You are simply giving yourself space to grow more healthily.&lt;/p&gt;

&lt;p&gt;A Simple Truth&lt;/p&gt;

&lt;p&gt;Tech might move quickly, but your career is long. The goal is not to catch everything. The goal is to remain grounded, consistent and intentional.&lt;/p&gt;

&lt;p&gt;You do not need to learn like the internet is on fire. You only need to learn at a pace that keeps you human.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The AI-Human Collaboration Every Developer Needs to Understand</title>
      <dc:creator>Mari</dc:creator>
      <pubDate>Mon, 24 Nov 2025 13:35:58 +0000</pubDate>
      <link>https://dev.to/tech_girlll/the-ai-human-collaboration-every-developer-needs-to-understand-191g</link>
      <guid>https://dev.to/tech_girlll/the-ai-human-collaboration-every-developer-needs-to-understand-191g</guid>
      <description>&lt;p&gt;Artificial Intelligence isn’t here to replace developers, at least, not yet.&lt;/p&gt;

&lt;p&gt;The real question isn’t “Will AI take my job?” It’s “How can I collaborate with AI to become a better developer?”&lt;/p&gt;

&lt;p&gt;AI is already changing how we write code, debug, and solve problems. But to truly benefit from it, we need to rethink workflow, decision-making, and trust. AI isn’t just a tool—it’s a partner, and the way we collaborate with it will define the next era of software development.&lt;/p&gt;

&lt;p&gt;AI as a Productivity Partner, Not a Replacement&lt;/p&gt;

&lt;p&gt;AI shines at automating repetitive tasks. It can generate boilerplate code, suggest test cases, or even draft documentation. These small efficiencies can save hours each week.&lt;/p&gt;

&lt;p&gt;But automation is not intelligence. Humans still decide:&lt;/p&gt;

&lt;p&gt;Which problems to solve&lt;/p&gt;

&lt;p&gt;Which solutions fit the context&lt;/p&gt;

&lt;p&gt;How to weigh trade-offs&lt;/p&gt;

&lt;p&gt;When a system is “good enough”&lt;/p&gt;

&lt;p&gt;In practice, AI accelerates development, but humans guide it. It’s a partnership.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
Imagine building a booking API. An AI tool might generate serializers, validators, or endpoint templates. But only you can determine whether the design aligns with your architecture or business logic. AI provides options—you decide the direction.&lt;/p&gt;

&lt;p&gt;Rethinking Workflow With AI&lt;/p&gt;

&lt;p&gt;Collaboration with AI requires a shift in how we approach tasks:&lt;/p&gt;

&lt;p&gt;Idea First, Code Later&lt;br&gt;
AI works best when it understands context. Define the problem clearly before asking it to generate code.&lt;/p&gt;

&lt;p&gt;Iterative Feedback Loops&lt;br&gt;
Treat AI like a junior developer: generate a solution, review it, refine it, and repeat.&lt;/p&gt;

&lt;p&gt;Focus on Higher-Level Thinking&lt;br&gt;
With AI handling repetitive work, humans can concentrate on system design, scalability, and maintainability—areas AI struggles with.&lt;/p&gt;

&lt;p&gt;Trust But Verify&lt;br&gt;
AI outputs are not flawless. They can hallucinate, make assumptions, or introduce insecure patterns. Verification and testing remain human responsibilities.&lt;/p&gt;

&lt;p&gt;Decision-Making in an AI-Augmented World&lt;/p&gt;

&lt;p&gt;AI doesn’t replace judgment—it shifts it.&lt;/p&gt;

&lt;p&gt;Trade-offs: AI may suggest the fastest solution, but not the most maintainable.&lt;/p&gt;

&lt;p&gt;Ethics: AI can inadvertently introduce bias or insecure practices. Developers must evaluate consequences.&lt;/p&gt;

&lt;p&gt;Creativity: AI generates ideas, but humans determine which solutions are novel or valuable.&lt;/p&gt;

&lt;p&gt;Collaboration is about amplifying human intelligence, not surrendering it.&lt;/p&gt;

&lt;p&gt;Building Trust With AI&lt;/p&gt;

&lt;p&gt;Effective AI-human collaboration depends on trust:&lt;/p&gt;

&lt;p&gt;Understand AI’s limitations&lt;/p&gt;

&lt;p&gt;Be consistent in prompts and review processes&lt;/p&gt;

&lt;p&gt;Treat AI as a partner, not an executor&lt;/p&gt;

&lt;p&gt;Maintain accountability—humans are ultimately responsible for the code&lt;/p&gt;

&lt;p&gt;The stronger your trust framework, the more productive and safe your collaboration becomes.&lt;/p&gt;

&lt;p&gt;The Future Isn’t AI vs Human—It’s AI + Human&lt;/p&gt;

&lt;p&gt;Developers who embrace AI as a collaborator will:&lt;/p&gt;

&lt;p&gt;Work faster&lt;/p&gt;

&lt;p&gt;Produce cleaner, more maintainable systems&lt;/p&gt;

&lt;p&gt;Focus on high-value decisions instead of repetitive tasks&lt;/p&gt;

&lt;p&gt;Those who fear AI may waste time fighting automation or doing work that machines could handle. The reality is simple: AI augments, it doesn’t replace.&lt;/p&gt;

&lt;p&gt;The real skill is learning how to collaborate with AI while preserving human judgment, creativity, and responsibility.&lt;/p&gt;

&lt;p&gt;Key Takeaways&lt;/p&gt;

&lt;p&gt;Stop asking whether AI will replace you. Start asking:&lt;/p&gt;

&lt;p&gt;How can AI help me make better decisions?&lt;/p&gt;

&lt;p&gt;How can AI reduce friction in my workflow?&lt;/p&gt;

&lt;p&gt;Where do I need to remain vigilant and human?&lt;/p&gt;

&lt;p&gt;AI-human collaboration isn’t a future concept—it’s already here. Developers who understand it will define the next generation of software development.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>development</category>
    </item>
    <item>
      <title>How to avoid procrastination as a developer</title>
      <dc:creator>Mari</dc:creator>
      <pubDate>Mon, 17 Nov 2025 13:46:47 +0000</pubDate>
      <link>https://dev.to/tech_girlll/how-to-avoid-procrastination-as-a-developer-4pm6</link>
      <guid>https://dev.to/tech_girlll/how-to-avoid-procrastination-as-a-developer-4pm6</guid>
      <description>&lt;p&gt;Procrastination is one of those things nobody warns you about when you start learning how to code. People talk about choosing a programming language, understanding algorithms and building projects, but nobody talks about the days when you simply do not have the strength to start.&lt;/p&gt;

&lt;p&gt;I have learned that procrastination is not just a habit. It is a feeling. It is that quiet heaviness that sits in your chest when you know what to do but you cannot bring yourself to do it. And the most painful part is that only you can stop it.&lt;/p&gt;

&lt;p&gt;As developers, we enter every new year with goals. You tell yourself that you will finish this course. You will build that project. You will improve a skill. You will finally be consistent. But somewhere along the line, something shifts.&lt;/p&gt;

&lt;p&gt;You start feeling stuck.&lt;br&gt;
You start feeling behind.&lt;br&gt;
You start feeling like you are not good enough.&lt;br&gt;
And slowly procrastination becomes a comfortable hiding place.&lt;/p&gt;

&lt;p&gt;You say things like&lt;br&gt;
I will code later&lt;br&gt;
I will continue that course later&lt;br&gt;
I will fix that error later&lt;/p&gt;

&lt;p&gt;In reality, nothing is wrong with you. You are simply overwhelmed. And overwhelm is the fastest way procrastination grows.&lt;/p&gt;

&lt;p&gt;So how do you break out of it as a developer?&lt;/p&gt;

&lt;p&gt;The first step is clarity. Most developers do not procrastinate because the work is hard. They procrastinate because they do not know the next small step to take. When your task is too big, your mind rejects it. But when the first step is clear, your mind begins to move.&lt;/p&gt;

&lt;p&gt;The second step is simplicity. Stop trying to learn ten things at once. Pick one skill and stay with it until you can explain it without thinking twice. When your learning path is simple, your consistency increases.&lt;/p&gt;

&lt;p&gt;The third step is momentum. Not motivation. Motivation comes and goes. But momentum grows when you show up even when you do not feel like it. Write a small function. Debug one line. Read one chapter. The goal is to move, even if the movement is small.&lt;/p&gt;

&lt;p&gt;The fourth step is honesty. Be honest with yourself about why you are delaying. Are you scared? Are you confused? Are you exhausted? Once you know the real reason you are avoiding the work, solving it becomes easier.&lt;/p&gt;

&lt;p&gt;The fifth step is environment. Your environment controls your discipline. A noisy workspace produces a noisy mind. Clean your space. Close unnecessary tabs. Give your brain room to think.&lt;/p&gt;

&lt;p&gt;Being a developer means dealing with uncertainty. You will always have one bug you do not understand and one new concept you are still trying to wrap your head around. That is normal. That is the job. But you cannot let that uncertainty turn into procrastination.&lt;/p&gt;

&lt;p&gt;Consistency is not built on big wins. It is built on small steady steps that accumulate with time. You do not have to be perfect. You just have to start again.&lt;/p&gt;

</description>
      <category>developer</category>
      <category>procrastination</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>How I organize my VS Code for Maximum Productivity</title>
      <dc:creator>Mari</dc:creator>
      <pubDate>Mon, 10 Nov 2025 11:12:56 +0000</pubDate>
      <link>https://dev.to/tech_girlll/how-i-organize-my-vs-code-for-maximum-productivity-207i</link>
      <guid>https://dev.to/tech_girlll/how-i-organize-my-vs-code-for-maximum-productivity-207i</guid>
      <description>&lt;p&gt;Visual Studio Code is one of the most flexible editors out there, but the real magic happens when you make it work your way. After trying different setups and tools, I’ve built a simple VS Code workflow that keeps me productive, focused, and less distracted.&lt;/p&gt;

&lt;p&gt;Here’s how I organize my VS Code environment for maximum efficiency as a backend developer.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Keep the Sidebar Clean&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I only keep the Explorer, Source Control, and Extensions views pinned. Everything else stays hidden until I need it. A cluttered sidebar slows me down, so if it doesn’t directly help me write or manage code, it’s out of sight.&lt;/p&gt;

&lt;p&gt;For quick navigation, I use Ctrl + P to jump to files instantly. It’s faster than scrolling through folders.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Workspaces Over Folders&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Instead of opening individual folders, I use VS Code Workspaces.&lt;br&gt;
Workspaces let me manage multiple related projects together and remember settings like themes, extensions, and formatting rules per project.&lt;/p&gt;

&lt;p&gt;For example, my Django and API projects have different linters and interpreters, and workspaces make that possible without conflicts.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Extensions That Actually Help&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I keep my extensions minimal but powerful. Here are the essentials that make a real difference in my daily flow:&lt;/p&gt;

&lt;p&gt;Prettier: Automatic formatting that keeps my code consistent.&lt;/p&gt;

&lt;p&gt;GitLens: Makes version control easier to understand at a glance.&lt;/p&gt;

&lt;p&gt;Pylance: Improves autocompletion and type checking for Python.&lt;/p&gt;

&lt;p&gt;Error Lens: Highlights issues directly in the editor, so I catch them early.&lt;/p&gt;

&lt;p&gt;Todo Tree: Keeps track of unfinished work through my TODO comments.&lt;/p&gt;

&lt;p&gt;I regularly disable or uninstall extensions I no longer use, and performance improves noticeably.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Terminal Inside VS Code&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I stopped switching between my terminal and editor. The integrated terminal is always open at the bottom of my screen.&lt;br&gt;
For backend development, this saves time when running Django servers, managing virtual environments, or testing scripts.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Themes and Fonts Matter&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A comfortable theme is not aesthetic — it’s functional.&lt;br&gt;
I use a light theme during the day and a dark one at night. My current setup is One Dark Pro with Fira Code font (for clean ligatures). It reduces eye strain and makes code blocks easier to scan.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Auto Save and Format on Save&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This might sound small, but turning on Auto Save and Format on Save prevents countless errors and lost changes.&lt;br&gt;
It also helps when switching between branches or testing code quickly; everything stays consistent.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Keybindings for Speed&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Custom shortcuts are the secret to fast navigation.&lt;/p&gt;

&lt;p&gt;Ctrl + B → Toggle sidebar&lt;/p&gt;

&lt;p&gt;Ctrl + ` → Toggle terminal&lt;/p&gt;

&lt;p&gt;Ctrl + / → Comment or uncomment code&lt;br&gt;
These small tweaks save seconds, but over time, they add up.&lt;/p&gt;

&lt;p&gt;In Conclusion&lt;/p&gt;

&lt;p&gt;Your VS Code setup should reflect how you think and code. The goal isn’t to install every extension available — it’s to build a workspace that reduces friction and keeps you in flow.&lt;/p&gt;

&lt;p&gt;Once you personalize VS Code to your habits, you’ll spend less time managing tools and more time writing code that matters.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>productivity</category>
      <category>ide</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to design a database like a developer:A begineer's guide to data planning</title>
      <dc:creator>Mari</dc:creator>
      <pubDate>Wed, 05 Nov 2025 10:09:17 +0000</pubDate>
      <link>https://dev.to/tech_girlll/how-to-design-a-database-like-a-developera-begineers-guide-to-data-planning-32fi</link>
      <guid>https://dev.to/tech_girlll/how-to-design-a-database-like-a-developera-begineers-guide-to-data-planning-32fi</guid>
      <description>&lt;p&gt;When most beginners start building projects, they rush to open their editors and start coding. They create models or tables without first asking the most important question, What am I really building?&lt;/p&gt;

&lt;p&gt;The truth is, good backend developers don’t start from code. They start from structure, and that structure begins with database design.&lt;/p&gt;

&lt;p&gt;In this article, I’ll walk you through how to design a database the way a developer does, by thinking about entities, relationships, and constraints before writing a single line of code.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start with the Problem, Not the Tables&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Before you design a database, pause and think about what problem your application solves.&lt;/p&gt;

&lt;p&gt;Every database exists to serve a purpose. If you don’t know that purpose clearly, your schema will collapse once your app grows.&lt;/p&gt;

&lt;p&gt;Ask yourself:&lt;/p&gt;

&lt;p&gt;.What kind of system am I building?&lt;/p&gt;

&lt;p&gt;.Who will use it?&lt;/p&gt;

&lt;p&gt;.What data do they create or interact with?&lt;/p&gt;

&lt;p&gt;For example, imagine you’re building a simple booking system. Your first instinct might be to create a “Bookings” table — but slow down. A booking system involves users, rooms, payments, and schedules. Each of those will eventually become part of your database structure.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identify Your Entities&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Entities are the real-world “things” your app needs to keep track of.&lt;/p&gt;

&lt;p&gt;Think of them as nouns: User, Product, Order, Task. Each of these will eventually become a table in your database.&lt;/p&gt;

&lt;p&gt;For example, in a task management app, your main entities could be:&lt;/p&gt;

&lt;p&gt;.User – someone who owns tasks&lt;/p&gt;

&lt;p&gt;.Task – something the user needs to complete&lt;/p&gt;

&lt;p&gt;At this stage, you’re not worrying about columns or types. You’re just identifying the main objects that exist in your system.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Define Relationships Between Entities&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now that you have your entities, the next step is to connect them.&lt;/p&gt;

&lt;p&gt;Databases are about relationships, how one piece of data interacts with another.&lt;/p&gt;

&lt;p&gt;Here are the three main types you’ll use:&lt;/p&gt;

&lt;p&gt;.One-to-One: A user has one profile.&lt;/p&gt;

&lt;p&gt;.One-to-Many: A user can have many tasks.&lt;/p&gt;

&lt;p&gt;.Many-to-Many: A product can appear in many carts, and a cart can     have many products.&lt;/p&gt;

&lt;p&gt;If you were designing the task manager mentioned earlier:&lt;/p&gt;

&lt;p&gt;One user → many tasks&lt;br&gt;
That’s a one-to-many relationship.&lt;/p&gt;

&lt;p&gt;It’s helpful to draw this out using an ER (Entity Relationship) diagram, even a simple sketch helps visualize the connections.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Define Attributes for Each Entity&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every entity needs details, and those details become your table columns.&lt;/p&gt;

&lt;p&gt;Let’s continue with the task manager example:&lt;/p&gt;

&lt;p&gt;User&lt;br&gt;
.id&lt;br&gt;
.name&lt;br&gt;
.email&lt;/p&gt;

&lt;p&gt;Task&lt;br&gt;
.id&lt;br&gt;
.title&lt;br&gt;
.description&lt;br&gt;
.completed&lt;/p&gt;

&lt;p&gt;user_id (to connect each task to its owner)&lt;/p&gt;

&lt;p&gt;At this point, you’re essentially describing what each entity knows about itself.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Apply Constraints and Rules&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Constraints are what keep your data clean, organized, and meaningful.&lt;/p&gt;

&lt;p&gt;They define the rules your database follows — rules that prevent duplicate entries, broken relationships, or invalid data.&lt;/p&gt;

&lt;p&gt;The most common ones are:&lt;/p&gt;

&lt;p&gt;Primary Key → uniquely identifies a record (e.g., id).&lt;/p&gt;

&lt;p&gt;Foreign Key → connects two entities (e.g., task.user_id links to user.id).&lt;/p&gt;

&lt;p&gt;Unique → ensures no duplicates (like email addresses).&lt;/p&gt;

&lt;p&gt;Not Null → prevents missing values for important fields.&lt;/p&gt;

&lt;p&gt;Think of constraints as the traffic rules of your database. Without them, everything collides.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Normalize Your Data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A lot of beginners make one big mistake — they repeat data across tables.&lt;/p&gt;

&lt;p&gt;For instance, if your “Task” table contains the user’s name and email for every task, your database will become redundant and hard to maintain.&lt;/p&gt;

&lt;p&gt;Normalization helps avoid that. It means:&lt;/p&gt;

&lt;p&gt;Each piece of data should live in one place.&lt;/p&gt;

&lt;p&gt;If two tables need it, use a relationship instead of duplication.&lt;/p&gt;

&lt;p&gt;So instead of saving the user’s name in every task, just store the user’s ID and reference it from the User table.&lt;/p&gt;

&lt;p&gt;That’s clean, efficient, and scalable.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Visualize Your Design&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;At this point, you can visualize your structure:&lt;br&gt;
`User&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;id&lt;/li&gt;
&lt;li&gt;name&lt;/li&gt;
&lt;li&gt;email&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Task&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;id&lt;/li&gt;
&lt;li&gt;title&lt;/li&gt;
&lt;li&gt;description&lt;/li&gt;
&lt;li&gt;completed&lt;/li&gt;
&lt;li&gt;user_id&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Relationship: One user can have many tasks.&lt;/p&gt;

&lt;p&gt;That’s the backbone of your database — before a single line of SQL or Django code.&lt;/p&gt;

&lt;p&gt;This is also the stage where backend developers usually create quick ER diagrams. You can use free tools like draw.io, dbdiagram.io, or even paper and pen.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Validate Your Design&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Before finalizing your design, ask yourself:&lt;/p&gt;

&lt;p&gt;Can this structure handle future features?&lt;/p&gt;

&lt;p&gt;Can another developer understand it easily?&lt;/p&gt;

&lt;p&gt;Is every piece of data traceable?&lt;/p&gt;

&lt;p&gt;A good database design should make sense without needing explanation.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Designing a database like a developer isn’t about memorizing SQL commands. It’s about understanding your data and its relationships before you code.&lt;/p&gt;

&lt;p&gt;When you design this way, everything that comes after, your models, serializers, APIs, and even performance tuning, becomes clearer and easier to manage.&lt;/p&gt;

&lt;p&gt;So next time you start a project, close your editor for a moment and open your mind.&lt;br&gt;
Sketch your data. Think in entities, relationships, and rules.&lt;br&gt;
That’s how you build systems that last.&lt;/p&gt;

</description>
      <category>database</category>
      <category>data</category>
      <category>developers</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
