<?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: Klaudia Grzondziel</title>
    <description>The latest articles on DEV Community by Klaudia Grzondziel (@klaudiagrz).</description>
    <link>https://dev.to/klaudiagrz</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%2F3860723%2F17664281-c5ce-4e9b-9f01-8999849fc88d.jpg</url>
      <title>DEV Community: Klaudia Grzondziel</title>
      <link>https://dev.to/klaudiagrz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/klaudiagrz"/>
    <language>en</language>
    <item>
      <title>Gemma 4 challenge inspired me to build my first app!</title>
      <dc:creator>Klaudia Grzondziel</dc:creator>
      <pubDate>Sun, 24 May 2026 18:11:38 +0000</pubDate>
      <link>https://dev.to/klaudiagrz/gemma-4-challenge-inspired-me-to-build-my-first-app-4m7g</link>
      <guid>https://dev.to/klaudiagrz/gemma-4-challenge-inspired-me-to-build-my-first-app-4m7g</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;It started with a real need. Then came the idea. And then a vision — to turn this idea into a reality.&lt;/p&gt;

&lt;p&gt;When I started my journey with &lt;code&gt;dev.to&lt;/code&gt;, I never imagined it would lead me to building my own app. I'm a Technical Writer. My job is to write and manage documentation, not to build apps. I joined the platform to be more up-to-date with current technologies, connect with the community, and write some articles to describe the nuances of working as a tech writer. At the beginning, the &lt;strong&gt;DEV Challenges&lt;/strong&gt; tab was a place I immediately labelled in my head as a no-go zone. I thought, "I'm not a developer, this is not for me." It's hard to believe how much has changed in a little more than one month.&lt;/p&gt;

&lt;p&gt;The first ideas came to my mind when I saw posts related to the &lt;a href="https://dev.to/challenges/weekend-2026-04-16"&gt;Earth Day challenge&lt;/a&gt;. Some of them I found really inspiring, and I thought: "Wow, these people are so talented! They can do so much with their coding skills. They can actually make other people's lives easier!" At that moment, the idea was born — "It would be super cool to have such skills to help Polish people with recycling." But it was still vague. Still in the area of dreams. I still thought it was a task for someone wiser and more skilled; definitely not me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenge that changed everything
&lt;/h2&gt;

&lt;p&gt;Then I saw the Gemma 4 challenge and something clicked. The puzzles fell into place. "What if I could make AI analyze photos of waste and tell people which bin to throw it in? What if I could build an app that does that? It could be useful for so many people — and a great way to learn how to build something myself." The idea was still scary, but it felt tangible. Like something I could actually try.&lt;/p&gt;

&lt;p&gt;I opened a new chat in Claude and started writing. I wrote down the idea, the whole vision of how the app should work, the features I wanted to implement. I described the issues Polish people have with recycling, and how I wanted to solve them. I wrote down the questions I had, and the doubts and fears that were holding me back. And then I asked for help. "How can we make it happen? Where do I start?"&lt;/p&gt;

&lt;h2&gt;
  
  
  What and how I built
&lt;/h2&gt;

&lt;p&gt;I consulted my idea with Claude, and then I started building. I followed the guidance I got, but I also made my own decisions, challenged Claude when I disagreed, and corrected it when its suggestions didn't match the business logic or user needs.&lt;/p&gt;

&lt;p&gt;Could I have done it better as a developer? Of course. I started by running Gemma 4 locally with Ollama, and even though it was satisfying to see it work, my laptop froze under the load 🥶 Doing proper research and finding the right tools took me longer than it would take a professional. I was like a child in the dark – learning new tools, debugging, making mistakes along the way. But every time I solved a problem or implemented a feature, I felt a sense of accomplishment that I hadn't experienced in a long time.&lt;/p&gt;

&lt;p&gt;While I was the brain behind the scenes, AI was the extension of my capabilities. Following my instructions, Claude created the boilerplate code in Next.js, adjusted styling in Tailwind CSS, and even created icons that I imagined and described. With all the necessary pieces in place, Gemma became the heart of the project — analyzing images and providing recycling guidance 💛&lt;/p&gt;

&lt;p&gt;You can read about the app I created in this article:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/klaudiagrz/recycling-made-easy-a-polish-recycling-assistant-powered-by-gemma-4-j0a" class="crayons-story__hidden-navigation-link"&gt;Recycling made easy: a Polish recycling assistant powered by Gemma 4&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/klaudiagrz/recycling-made-easy-a-polish-recycling-assistant-powered-by-gemma-4-j0a" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Gemma 4 Challenge: Build With 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="/klaudiagrz" 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%2F3860723%2F17664281-c5ce-4e9b-9f01-8999849fc88d.jpg" alt="klaudiagrz profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/klaudiagrz" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Klaudia Grzondziel
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Klaudia Grzondziel
                
              
              &lt;div id="story-author-preview-content-3676308" 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="/klaudiagrz" 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%2F3860723%2F17664281-c5ce-4e9b-9f01-8999849fc88d.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Klaudia Grzondziel&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/klaudiagrz/recycling-made-easy-a-polish-recycling-assistant-powered-by-gemma-4-j0a" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 21&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/klaudiagrz/recycling-made-easy-a-polish-recycling-assistant-powered-by-gemma-4-j0a" id="article-link-3676308"&gt;
          Recycling made easy: a Polish recycling assistant powered by Gemma 4
        &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;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&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/klaudiagrz/recycling-made-easy-a-polish-recycling-assistant-powered-by-gemma-4-j0a" 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/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.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;74&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/klaudiagrz/recycling-made-easy-a-polish-recycling-assistant-powered-by-gemma-4-j0a#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              55&lt;span class="hidden s:inline"&gt; comments&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;
            5 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;


&lt;h2&gt;
  
  
  What's in it for me
&lt;/h2&gt;

&lt;p&gt;When was the last time you did something for the first time? For me, it was building this app. It was a rollercoaster of excitement, frustration, doubt, and finally pride when I saw the final product working. It made me realize I'm capable of more than I thought.&lt;/p&gt;

&lt;p&gt;The Gemma 4 challenge broke a barrier in my head – the one that said "I can't do this, I'm not a developer, this is not for me." The most important lesson: if something sparks curiosity, why not try? You don't have to be an expert to start. You just need an idea, a vision, and the willingness to learn and experiment. The tools are there, and AI can be a powerful ally in turning your ideas into reality. You just need to take the first step.&lt;/p&gt;

&lt;p&gt;Yes, I prompt-engineered the app. Yes, I used AI to do the heavy lifting. But I was the one who had the idea, who made the decisions, who guided the process, who put everything together. I was the one who turned a vague idea into a real product that people can use. And that's something I'm really proud of.&lt;/p&gt;

&lt;p&gt;If you've ever told yourself "this isn't for me" about something you secretly wanted to try – I see you. Try it anyway. You might surprise yourself.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemmachallenge</category>
      <category>gemma</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Recycling made easy: a Polish recycling assistant powered by Gemma 4</title>
      <dc:creator>Klaudia Grzondziel</dc:creator>
      <pubDate>Thu, 21 May 2026 18:55:21 +0000</pubDate>
      <link>https://dev.to/klaudiagrz/recycling-made-easy-a-polish-recycling-assistant-powered-by-gemma-4-j0a</link>
      <guid>https://dev.to/klaudiagrz/recycling-made-easy-a-polish-recycling-assistant-powered-by-gemma-4-j0a</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;p&gt;I clearly remember this scene: my mom and I are dyeing our hair together. I'm holding a small plastic bottle that still has some dye inside, and I'm asking myself: where the hell do I throw this? I ask my mom – she has no idea either. Plastic bin, even though the bottle is contaminated with dye? Or is it mixed waste now?&lt;/p&gt;

&lt;p&gt;Sorting waste in Poland has improved a lot over the last few years. The system is based on six colourful bins that you'll see in any backyard:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Bin&lt;/th&gt;
&lt;th&gt;Color&lt;/th&gt;
&lt;th&gt;What goes in&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;PLASTIC/METAL&lt;/td&gt;
&lt;td&gt;🟡 (yellow)&lt;/td&gt;
&lt;td&gt;plastic bottles, cans&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PAPER&lt;/td&gt;
&lt;td&gt;🔵 (blue)&lt;/td&gt;
&lt;td&gt;paper, cardboard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GLASS&lt;/td&gt;
&lt;td&gt;🟢 (green)&lt;/td&gt;
&lt;td&gt;glass jars, bottles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BIO&lt;/td&gt;
&lt;td&gt;🟤 (brown)&lt;/td&gt;
&lt;td&gt;food scraps, garden waste&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MIXED&lt;/td&gt;
&lt;td&gt;⚫ (black/grey)&lt;/td&gt;
&lt;td&gt;mixed waste: contaminated or composite items&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TEXTILE&lt;/td&gt;
&lt;td&gt;🟣 (violet)&lt;/td&gt;
&lt;td&gt;clothes, shoes (separate collection mandatory since Jan 2026)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fg4nya0hr6r2ibca1effm.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%2Fg4nya0hr6r2ibca1effm.png" alt="Photo of Polish color-coded recycling bins"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Obvious stuff like cardboard or an old pair of socks is easy. But there are traps – you can't throw an old mug or a broken mirror into the glass bin, even though it seems to be the right choice. And then there's the hair dye bottle with dye still inside. The pizza box with grease on the bottom. The blister pack from your pills.&lt;/p&gt;

&lt;p&gt;Real debates are happening on the Polish internet about this stuff. Type "gdzie wyrzucić..." into Google and you'll see how much people struggle. I once watched two friends argue about where a used coffee cup goes — one swore it was paper, the other said mixed waste because of the plastic lining.&lt;/p&gt;

&lt;p&gt;Confusing? Hell yeah, it is! 😩&lt;/p&gt;

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

&lt;p&gt;That's why I built a web app called &lt;a href="https://gdzie-wyrzucic.vercel.app/" rel="noopener noreferrer"&gt;&lt;strong&gt;Gdzie to wyrzucić?&lt;/strong&gt;&lt;/a&gt; [&lt;strong&gt;ENG: Where to throw it?&lt;/strong&gt;]. It's a Polish recycling assistant – you take a photo of an item with your camera and send it to a Gemma 4-backed AI assistant. As a response, it tells you which bin the waste goes in.&lt;/p&gt;

&lt;p&gt;The photos are not stored anywhere – they are processed in-memory by the API route, sent to Gemma 4 for analysis, and discarded immediately after the response is returned.&lt;/p&gt;

&lt;p&gt;The recycling rules live in a ~200-line &lt;a href="https://github.com/klaudiagrz/recycling-app/blob/main/app/lib/system-prompt.md" rel="noopener noreferrer"&gt;system prompt&lt;/a&gt;. What you see now is v4 – there were a lot of iterations and a lot of live testing along the way. At this point, my entire phone gallery has turned into one big collection of trash photos 🙈 And my neighbours probably think I've gone nuts, because I keep photographing "interesting" items from the backyard bin to see how Gemma will handle them 😅&lt;/p&gt;

&lt;p&gt;The app is Polish-only by design – Polish recycling rules apply to people in Poland, and the system prompt is built around Polish categories. I'm planning to add English and Ukrainian translations, though, because there are minorities living in Poland who could really use this, too. Until then, I hope the app is intuitive enough for a non-Polish speaker.&lt;/p&gt;

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

&lt;p&gt;To test the project, go to &lt;a href="https://gdzie-wyrzucic.vercel.app/" rel="noopener noreferrer"&gt;&lt;strong&gt;Gdzie to wyrzucić?&lt;/strong&gt;&lt;/a&gt;. The walkthrough is as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Take a photo of the wasted item or choose one from your gallery. Press the &lt;strong&gt;Aparat&lt;/strong&gt; or &lt;strong&gt;Galeria&lt;/strong&gt; button, respectively.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Analizuj&lt;/strong&gt; and wait ~15-30 seconds to get the sorting result. Alternatively, click &lt;strong&gt;Zrób ponownie&lt;/strong&gt; if you are not satisfied with the photo and want to retake it.&lt;/li&gt;
&lt;li&gt;The app returns the answer to which bin you should throw your waste, together with the explanation and some additional remarks (if any).&lt;/li&gt;
&lt;li&gt;If you want to try another waste item, press &lt;strong&gt;Sprawdź inny przedmiot&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For the English-speaking &lt;code&gt;dev.to&lt;/code&gt; users, I prepared a walkthrough video with some explanation:&lt;/p&gt;


&lt;div&gt;
    &lt;iframe src="https://www.youtube.com/embed/XmExQAeUdpg"&gt;
    &lt;/iframe&gt;
  &lt;/div&gt;


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

&lt;p&gt;All the code lives in the &lt;a href="https://github.com/klaudiagrz/recycling-app" rel="noopener noreferrer"&gt;recycling-app&lt;/a&gt; repository on GitHub.&lt;/p&gt;

&lt;p&gt;At this point, let me be honest with you – I vibe-coded this. I am a Technical Writer, not a Developer, and even though I have experience with git and done some small code updates in the past, this is the first bigger project I've built myself.&lt;/p&gt;

&lt;p&gt;It was a multi-agent work. I used Claude Code for the boilerplate code and for turning business logic into reality. I used Gemini's deep search to dig up current recycling rules from Polish government sources and eco-experts. I was the brain behind everything else – the idea, the business logic, the testing, the improvements, leading each next step, holding it all together. And Gemma is the heart of the project 💛 You can read about my experiences as a beginner in another post:&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/klaudiagrz/gemma-4-challenge-inspired-me-to-build-my-first-app-4m7g" class="crayons-story__hidden-navigation-link"&gt;Gemma 4 challenge inspired me to build my first app!&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/klaudiagrz/gemma-4-challenge-inspired-me-to-build-my-first-app-4m7g" 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="/klaudiagrz" 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%2F3860723%2F17664281-c5ce-4e9b-9f01-8999849fc88d.jpg" alt="klaudiagrz profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/klaudiagrz" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Klaudia Grzondziel
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Klaudia Grzondziel
                
              
              &lt;div id="story-author-preview-content-3678057" 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="/klaudiagrz" 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%2F3860723%2F17664281-c5ce-4e9b-9f01-8999849fc88d.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Klaudia Grzondziel&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/klaudiagrz/gemma-4-challenge-inspired-me-to-build-my-first-app-4m7g" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 24&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/klaudiagrz/gemma-4-challenge-inspired-me-to-build-my-first-app-4m7g" id="article-link-3678057"&gt;
          Gemma 4 challenge inspired me to build my first app!
        &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;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&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/klaudiagrz/gemma-4-challenge-inspired-me-to-build-my-first-app-4m7g" 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/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.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;46&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/klaudiagrz/gemma-4-challenge-inspired-me-to-build-my-first-app-4m7g#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              14&lt;span class="hidden s:inline"&gt; comments&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;
            4 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;


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

&lt;p&gt;The app sends the photo to Gemma 4 with a &lt;a href="https://github.com/klaudiagrz/recycling-app/blob/main/app/lib/system-prompt.md" rel="noopener noreferrer"&gt;detailed system prompt&lt;/a&gt; that encodes the current Polish recycling rules. Gemma looks at the image and returns a structured JSON: which bin, how to prepare the item, an explanation, and an extra note if relevant. The frontend turns that into a result card in the right bin colour.&lt;/p&gt;

&lt;p&gt;I went with &lt;strong&gt;Gemma 4 26B Mixture-of-Experts&lt;/strong&gt; (&lt;code&gt;gemma-4-26b-a4b-it&lt;/code&gt;) via Google AI Studio's free tier. The MoE architecture only activates around 4B parameters per token out of ~26B total. It's efficient enough to run on the free tier and smart enough to handle the actually hard cases.&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%2F06c5qavntdk8rzakrodm.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%2F06c5qavntdk8rzakrodm.png" alt="Gemma 4 26B A4B model listing on Google AI Studio"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The free tier means the demo runs 24/7 without costs. And because Gemma is open-weights, the same app could one day ship with Gemma 4 E2B or E4B running directly on the user's device. That's a path I'd like to explore.&lt;/p&gt;

&lt;h2&gt;
  
  
  Known limitations
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/klaudiagrz/recycling-app/issues/2" rel="noopener noreferrer"&gt;test phase&lt;/a&gt; revealed that some photos trigger an immediate error before Gemma is even reached. The failing photos share the same characteristics: detailed scenes, multiple objects, busy compositions, and possibly larger file sizes than simple isolated-item photos. I think that the issue is about image size or encoding, but I need to confirm it yet.&lt;/p&gt;

&lt;p&gt;Also, analysis takes 10–15 seconds. Free-tier cloud inference is slow. It is acceptable for the initial phase and the challenge, but I'd need to think about some other options in the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;The roadmap is in the &lt;a href="https://github.com/klaudiagrz/recycling-app/issues" rel="noopener noreferrer"&gt;issue tracker&lt;/a&gt;. A few highlights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multilingual support for English and Ukrainian – many Ukrainians have moved to Poland in recent years, and there are also exchange students and expats living in Poland who would find an English translation handy.&lt;/li&gt;
&lt;li&gt;Interactive clarification – when Gemma isn't sure what's in the photo, let it ask the user a yes/no question instead of guessing.&lt;/li&gt;
&lt;li&gt;Suggesting reuse before recycling for books, clean clothes, working electronics, old furniture, and so on. Recycling is good. Reusing is better.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Closing sentence
&lt;/h2&gt;

&lt;p&gt;If you're in Poland, try out &lt;a href="https://gdzie-wyrzucic.vercel.app/" rel="noopener noreferrer"&gt;&lt;strong&gt;Gdzie to wyrzucić?&lt;/strong&gt;&lt;/a&gt;. If you spot a misclassification or a rule the app gets wrong, please open an issue – I'd love to keep improving it.&lt;/p&gt;

&lt;p&gt;Thanks to the &lt;code&gt;dev.to&lt;/code&gt; challenge for the deadline, to my colleagues and friends who tested the app, and to Gemma 4 for actually making it all happen 💛&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemmachallenge</category>
      <category>gemma</category>
      <category>webdev</category>
    </item>
    <item>
      <title>5 types of engineers I met as a Technical Writer</title>
      <dc:creator>Klaudia Grzondziel</dc:creator>
      <pubDate>Fri, 08 May 2026 11:13:31 +0000</pubDate>
      <link>https://dev.to/klaudiagrz/5-types-of-engineers-i-met-as-a-technical-writer-1gak</link>
      <guid>https://dev.to/klaudiagrz/5-types-of-engineers-i-met-as-a-technical-writer-1gak</guid>
      <description>&lt;p&gt;Being a Technical Writer in an engineering world can be tough. We work closely with engineers, but we're not engineers ourselves. Our job isn't to code, but to deliver a product that's well-described and clear for the target audience. This requires us to go around and bother engineers with questions, often uncomfortable ones, and keep them away from what they want to do most – coding.&lt;/p&gt;

&lt;p&gt;In my career, I've met engineers with very different attitudes towards documentation. Ever wondered what engineers look like from a Technical Writer's perspective? Spoiler: it's a mixed bag. I've divided them into 5 main types, each illustrated with a meme below.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: I use "he" throughout this post for simplicity, but these types are gender-neutral – I've met all of them in every gender.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. Good boy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnquaqjvzazgwggyk8i25.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%2Fnquaqjvzazgwggyk8i25.jpg" alt="A meme of a smiling golden retriever puppy with the text " width="577" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's our favourite boy! If he was a dog, he would definitely be a golden retriever. He's a perfect collaborator – always thoughtful, helpful, and truly engaged in the project. You're not afraid to ask him questions, knowing he won't judge you, but take your feedback as something valuable that will help improve the docs. He carefully reads your comments, takes an active part in brainstorming, and takes your feedback to heart, so that next time he publishes a document, it will be even better. I even remember fighting with my fellow Technical Writer colleague over who would work on the docs with our golden boy.&lt;/p&gt;

&lt;p&gt;Definitely the best type of engineer to work with!&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Mr. Better
&lt;/h2&gt;

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

&lt;p&gt;"Everyone can write, it's not a big deal", thinks Mr. Better. He ignores or rejects any review comments, and he's always sure that his docs are perfect and don't need any improvement. Prerequisites at the end of the document? "That's the intended design". A request to make the concept clearer? "I don't see the problem, it's clear enough". A suggestion to add more details? "I don't want to make it too long, it's already long enough". He's the one who always says, "I know how to write docs, I'll do it myself", not understanding that writing technical documentation is not only about putting words on a page, but also about structuring information, making it clear and concise, and considering the audience's needs. The result? A document full of jargon, unclear explanations, missing information, and a confusing structure that's more frustrating than helpful to the user.&lt;/p&gt;

&lt;p&gt;Probably the most demotivating person to work with.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Jon Snow
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo93l5nf19diqz4sl83vu.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%2Fo93l5nf19diqz4sl83vu.jpg" alt="A meme of Jon Snow from Game of Thrones looking confused, with the text " width="707" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every company knows this guy. You approach him to ask a question about a project he's supposed to maintain, but as soon as you ask, he looks at you with a blank stare and says, "I don't know". You ask him again, maybe rephrase the question, but the answer is always the same: "I don't know". You start to wonder if he really knows nothing, or if he's just pretending so that you won't ask him to write docs.&lt;/p&gt;

&lt;p&gt;There's also another version of Jon Snow who knows nothing but pretends to know something. He confidently gives you an answer that sounds like it should be correct, but when you think about it, it doesn't make any sense. You ask him to explain it further, and he starts to ramble about something that's not even related to the original question. This type of Jon Snow is even more dangerous, because he can lead you to wrong conclusions and make you waste time chasing something that isn't true.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Minimalist
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7ksuv9eib5g79mzug1t.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%2Ff7ksuv9eib5g79mzug1t.jpg" alt="A Mocking SpongeBob meme with the text " width="596" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Minimalist thinks that documentation is overkill. Code itself is enough. You approach the Minimalist with some questions about the feature he just shipped, hoping to update the docs. He looks at you like you're an alien. "We don't need documentation, the code is self-explanatory", he says. And if you push back? "If someone doesn't understand the code, they shouldn't use the feature".&lt;/p&gt;

&lt;p&gt;The funny thing is, ask him to explain his own code six months from now, and he'll stare at the screen with the same blank look as Jon Snow. But that's a future problem – right now, the code is &lt;em&gt;obviously&lt;/em&gt; clear, and writing it down would just be a waste of time.&lt;/p&gt;

&lt;p&gt;There's a softer version of this type, too: the one who admits he doesn't know how to write docs, or that he doesn't have time. That's fair – that's literally why tech writers exist! But more often, it's just an excuse. He thinks docs aren't important, that nobody reads them anyway, so why bother?&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Robot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpg6arbg4ctt13cwfl7yi.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%2Fpg6arbg4ctt13cwfl7yi.jpg" alt="A meme of a humanoid robot with a blank stare and the text " width="507" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You open a diff and see a big, never-ending pile of docs. You scroll through them, and reaching the end takes you ages. You decide to give it a try and start reading the content, but you quickly realize that even though it's written in English, it's definitely not written in a human-readable manner. Everything is generated. It reads like &lt;em&gt;Lorem ipsum&lt;/em&gt; — and that's about all you get out of it. You decide to reach out to the author and ask some questions. As a response, you get a generated answer copy-pasted directly from ChatGPT:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Absolutely — I can update this section so the documentation is fully comprehensive and self-contained. Want me to handle that next?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You ask yourself: "Is there anybody out there? Or is it just me and this robot?".&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusions
&lt;/h2&gt;

&lt;p&gt;Time for some honest self-reflection. Which type of engineer are you? A Good Boy, hopefully? Or do you recognize a bit of Mr. Better or the Minimalist in yourself? Or maybe you're a completely different type not mentioned here? Let me know in the comments, and feel free to share your own memes! 😁&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>technicalwriting</category>
      <category>discuss</category>
      <category>jokes</category>
    </item>
  </channel>
</rss>
