<?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: Maame Afua A. P. Fordjour </title>
    <description>The latest articles on DEV Community by Maame Afua A. P. Fordjour  (@maame-codes).</description>
    <link>https://dev.to/maame-codes</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F870724%2Fe7722a3a-8b1f-47b6-a26d-777bfaf22abc.jpg</url>
      <title>DEV Community: Maame Afua A. P. Fordjour </title>
      <link>https://dev.to/maame-codes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/maame-codes"/>
    <language>en</language>
    <item>
      <title>I Fixed The Bug. Then My Pipeline Refused to Run.</title>
      <dc:creator>Maame Afua A. P. Fordjour </dc:creator>
      <pubDate>Mon, 19 Oct 2026 21:06:51 +0000</pubDate>
      <link>https://dev.to/maame-codes/i-fixed-the-bug-then-my-pipeline-refused-to-run-4c7i</link>
      <guid>https://dev.to/maame-codes/i-fixed-the-bug-then-my-pipeline-refused-to-run-4c7i</guid>
      <description>&lt;p&gt;Every engineer knows the feeling. You finally fix the bug that's been blocking your ticket, you push it, and you sit there waiting for that beautiful green tick.&lt;/p&gt;

&lt;p&gt;That was me during my internship. My Terraform kept failing to create a database server because of a disk error. With some help from a senior engineer, I found the problem: my AMI filter was grabbing the wrong image, one that needed a bigger disk than I'd asked for. I fixed the filter, pushed the change and waited.&lt;/p&gt;

&lt;p&gt;The pipeline didn't go green. It didn't really go red either. &lt;strong&gt;It didn't run at all.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Sometimes your pipeline is broken and your code is completely fine.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here's what happened, how it got fixed, and what I'd do so it never catches you off guard.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Five Failed Jobs, Zero Logs
&lt;/h2&gt;

&lt;p&gt;The pipeline page showed the whole thing as &lt;strong&gt;Failed&lt;/strong&gt;. 5 out of 7 jobs, all red.&lt;/p&gt;

&lt;p&gt;Normally that's fine. You click into a job, open the log, scroll to the red text and find your mistake.&lt;/p&gt;

&lt;p&gt;This time there was nothing to read. The failure reason just said:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;No more compute minutes available
No job log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No stack trace. No Terraform error. Nothing. The jobs never even started, so there was nothing to log.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you ever see a pipeline full of failed jobs with no logs at all, check this first.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Retry Made It Look Even Worse
&lt;/h2&gt;

&lt;p&gt;Of course I hit retry. (We all do.) Instead of running, GitLab threw this at the top of the page:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;An error occurred while making the request.
Status cannot transition via "drop"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That one looks properly scary, like something is broken inside GitLab itself. As far as I can tell, it's just GitLab failing to update jobs that never got the chance to start. Same problem, more confusing message.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retrying won't help until the minutes are back.&lt;/strong&gt; You'll just get the same error every time. Once the minutes were topped up, one retry was all it took.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Compute Minutes Belong to the Account, Not You
&lt;/h2&gt;

&lt;p&gt;Here's the part nobody tells you as a junior: &lt;strong&gt;you probably can't fix this yourself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I told the senior engineer reviewing my change. She couldn't check the monthly quota either, so she pointed me to the colleague who manages our GitLab account. I found out later why: viewing a group's usage needs the &lt;strong&gt;Owner&lt;/strong&gt; role, so a lot of developers can't even see how close they are to the limit.&lt;/p&gt;

&lt;p&gt;So there's no point digging through your code. The fix is a message to the right person. Here's roughly what I sent:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi, our GitLab pipeline on the Terraform project has stopped running. It says we've run out of CI compute minutes for the month. Would you be able to check the quota when you get a chance? I've got a change ready, it just can't run until there's compute available.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;He confirmed we'd run out and topped up the account.&lt;/p&gt;

&lt;p&gt;The annoying part was the timing. Between waiting on a review and this, my ticket barely moved for days, and I had to explain at standup that my work was ready but nothing could run. If you're ever in that spot, keep it simple: &lt;strong&gt;what's done, what's blocking it, and who's sorting it out.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4. How to Check Before It Happens
&lt;/h2&gt;

&lt;p&gt;If you're an Owner on the group, go to the group (not a subgroup), then &lt;strong&gt;Settings &amp;gt; Usage quotas&lt;/strong&gt;. On a personal account, it's &lt;strong&gt;Usage quotas&lt;/strong&gt; in the left sidebar. (&lt;a href="https://docs.gitlab.com/ci/pipelines/instance_runner_compute_minutes/" rel="noopener noreferrer"&gt;GitLab docs&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;A few things I wish I'd known:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Usage resets every month, so this usually bites near the end of the month.&lt;/li&gt;
&lt;li&gt;GitLab renamed "CI/CD minutes" to "compute minutes" in version 16.1, so older Stack Overflow answers use the old name.&lt;/li&gt;
&lt;li&gt;If you're not an Owner, ask whoever is to keep an eye on it. Way easier than finding out mid-ticket like I did.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. How to Make Your Minutes Last Longer
&lt;/h2&gt;

&lt;p&gt;If I wanted to stop this from happening again, this is where I'd start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Only run jobs when their files change.&lt;/strong&gt; If your Terraform is split into components, there's no reason to plan the database when you only touched the load balancer. &lt;code&gt;rules: changes:&lt;/code&gt; sorts that out:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;plan:db&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;terraform -chdir=db plan&lt;/span&gt;
  &lt;span class="na"&gt;rules&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;changes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;db/**/*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Stop duplicate pipelines.&lt;/strong&gt; A push to a branch with an open merge request can start two pipelines, one for the branch and one for the MR. A &lt;code&gt;workflow: rules&lt;/code&gt; block at the top of &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; can make sure only one runs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cancel old pipelines when you push again.&lt;/strong&gt; Pushed three fixes in five minutes? You don't need all three pipelines to finish. Mark jobs as &lt;code&gt;interruptible: true&lt;/code&gt; and turn on auto-cancel for redundant pipelines in your CI/CD settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cache what you download every time.&lt;/strong&gt; Dependencies and Terraform providers get downloaded on every single run unless you cache them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make expensive jobs manual.&lt;/strong&gt; If a job doesn't need to run on every push, &lt;code&gt;when: manual&lt;/code&gt; is your friend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use your own runners for heavy work.&lt;/strong&gt; According to &lt;a href="https://docs.gitlab.com/ci/pipelines/instance_runner_compute_minutes/" rel="noopener noreferrer"&gt;GitLab's docs&lt;/a&gt;, project and group runners aren't affected by the compute quota. If your team already has a server, a self-managed runner can take the heavy jobs off your quota completely.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;The funny thing is, my fix was right the whole time. The pipeline just had nothing to run on.&lt;/p&gt;

&lt;p&gt;So I'm curious: &lt;strong&gt;what's the most annoying reason your pipeline has failed that had nothing to do with your code?&lt;/strong&gt; Drop it in the comments. I want to collect them all 😅&lt;/p&gt;

</description>
      <category>devops</category>
      <category>gitlab</category>
      <category>cicd</category>
      <category>beginners</category>
    </item>
    <item>
      <title>'Localhost' is a Lie: Everything Uni Missed About Real-World Tech</title>
      <dc:creator>Maame Afua A. P. Fordjour </dc:creator>
      <pubDate>Tue, 13 Oct 2026 19:47:36 +0000</pubDate>
      <link>https://dev.to/maame-codes/localhost-is-a-lie-everything-uni-missed-about-real-world-tech-66n</link>
      <guid>https://dev.to/maame-codes/localhost-is-a-lie-everything-uni-missed-about-real-world-tech-66n</guid>
      <description>&lt;p&gt;Every CS student knows the drill. You get an assignment, write your code on your laptop using &lt;code&gt;localhost&lt;/code&gt;, zip the folder, and submit it before midnight. If it runs on your screen, you get an A and move on.&lt;/p&gt;

&lt;p&gt;Then you start an internship or try building a real app for real people, and reality hits you:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;In school, your code is temporary. In the real world, your code has to live.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Doing an internship and building full-stack software taught me more practical engineering in six months than years of lectures ever did. Here are 5 simple truths university never told me.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Localhost is a Lie
&lt;/h2&gt;

&lt;p&gt;In uni, if your code works on your laptop, your job is done. &lt;/p&gt;

&lt;p&gt;In the real world, &lt;strong&gt;writing the code is only half the battle.&lt;/strong&gt; Getting it onto the internet (deployment) is where the real work begins.&lt;/p&gt;

&lt;p&gt;The first time I tried deploying a project, everything broke:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Missing environment variables crashed my server.&lt;/li&gt;
&lt;li&gt;Strange CORS errors blocked my frontend from talking to my backend.&lt;/li&gt;
&lt;li&gt;My app worked fine on my machine, but ran super slow online.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;School teaches you how to write code locally. Industry teaches you how to actually get that code to live on the internet without breaking.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Real Data is Messy
&lt;/h2&gt;

&lt;p&gt;Uni assignments give you clean data. Every mock user types their name correctly, no fields are empty, and your database calls never fail.&lt;/p&gt;

&lt;p&gt;Real users don't act like that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;People type letters into number boxes.&lt;/li&gt;
&lt;li&gt;APIs drop connections out of nowhere.&lt;/li&gt;
&lt;li&gt;Data arrives broken or missing half the fields.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building real apps taught me to write &lt;strong&gt;defensive code&lt;/strong&gt;. You have to build loading screens, error popups, and backup plans so your app doesn't crash the second a real person touches it.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Simple Code Beats "Smart" Code Every Time
&lt;/h2&gt;

&lt;p&gt;Uni loves complex math and clever algorithms. It makes you feel like "good code" has to look complicated.&lt;/p&gt;

&lt;p&gt;In a real job, &lt;strong&gt;clever code is a nightmare.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No senior developer wants to read a 10-line function wrapped into one confusing line of JavaScript. They want code with clear names that makes sense right away. If someone else (or future-you at 2 AM) can't read your code easily, it’s not good code.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. You spend more time reading code than writing it
&lt;/h2&gt;

&lt;p&gt;In school, every project starts with a blank folder. You know every single line because you wrote it yourself.&lt;/p&gt;

&lt;p&gt;In the real world, you get dropped into a huge codebase with thousands of lines written by developers who left the company two years ago. &lt;/p&gt;

&lt;p&gt;Learning how to open an existing project, trace how data moves, and fix a bug without breaking three other things is a huge skill. Uni almost never prepares you for that.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Breaking things is how you actually learn
&lt;/h2&gt;

&lt;p&gt;School makes you terrified of making mistakes because a bug lowers your GPA.&lt;/p&gt;

&lt;p&gt;In the real world, &lt;strong&gt;breaking things is how you grow.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;My biggest breakthroughs didn't come from getting high marks on an assignment. They came from breaking a build, staying calm under pressure, digging through logs to fix it, and making sure I never made that same mistake again.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;A computer science degree gives you a solid base, but &lt;strong&gt;shipping real projects makes you an engineer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're still in uni and worried about the gap between your grades and your actual skills: stop waiting for your courses to catch up. Build small projects, try deploying them, get an internship, and don't be afraid to break things. &lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@domlafou?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Dom Fou&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/people-sitting-on-chair-in-front-of-computer-YRMWVcdyhmI?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>watercooler</category>
      <category>learning</category>
      <category>webdev</category>
    </item>
    <item>
      <title>'Someone Already Built That' is the Favourite Excuse of Broke Developers</title>
      <dc:creator>Maame Afua A. P. Fordjour </dc:creator>
      <pubDate>Sat, 26 Sep 2026 13:48:26 +0000</pubDate>
      <link>https://dev.to/maame-codes/someone-already-built-that-is-the-favourite-excuse-of-broke-developers-44o6</link>
      <guid>https://dev.to/maame-codes/someone-already-built-that-is-the-favourite-excuse-of-broke-developers-44o6</guid>
      <description>&lt;p&gt;Let me tell you a quick story about a developer named Sam.&lt;/p&gt;

&lt;p&gt;Sam is incredibly smart. For a whole year, he stayed up late building a super complex AI tool for digital creators. He launched it online. He posted about it constantly.&lt;/p&gt;

&lt;p&gt;The result? Crickets. He got exactly zero paid users.&lt;/p&gt;

&lt;p&gt;One weekend, Sam went to a neighborhood barbecue. He started talking to a guy named Bob. Bob owns a medium sized company that sells cardboard boxes to local restaurants. It is not a sexy business at all.&lt;/p&gt;

&lt;p&gt;Bob was complaining about how his sales team tracks their custom orders. They were using an ancient spreadsheet that crashed all the time. They were losing track of emails, missing shipments, and losing money.&lt;/p&gt;

&lt;p&gt;Sam asked Bob why he did not just buy a modern software tool. Bob sighed. He said the big software tools were way too expensive and had a hundred features his team did not even need. They just wanted something simple that actually worked.&lt;/p&gt;

&lt;p&gt;So, Sam made a choice. He stopped working on his shiny AI app. Instead, he spent two weeks building a very basic order tracker just for Bob.&lt;/p&gt;

&lt;p&gt;Bob loved it. He loved it so much that he happily paid Sam $400 a month to keep using it.&lt;/p&gt;

&lt;p&gt;Then Bob showed it to his friend who runs a commercial cleaning supply business. That friend wanted it too.&lt;/p&gt;

&lt;p&gt;Within a few months, Sam had a highly profitable software business. He was not on the front page of tech magazines, but he was making a fantastic living.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is the magic of boring companies.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When we hang out on the internet, we get tricked into thinking we have to build the next big thing. We think we have to invent a new social network or a wild new app that changes the world.&lt;/p&gt;

&lt;p&gt;But while everyone is fighting over those crowded spaces, a quiet group of developers is getting rich in the background. They are building simple software for freight companies, packaging plants, and wholesale suppliers.&lt;/p&gt;

&lt;p&gt;Walk into the back office of any boring company. You will not find sleek software. You will find messy filing cabinets and people pulling their hair out over manual data entry.&lt;/p&gt;

&lt;p&gt;These businesses lose thousands of dollars every week because they are so disorganized. And the best part is that they actually have money to spend. To a boring company, paying $500 a month for software that saves them 10 hours a week is a complete no brainer.&lt;/p&gt;

&lt;p&gt;Now, you might be thinking that someone has already built these tools. You might think the market is totally full.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not let that stop you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Just look around your life right now. Think about phones, cars, or kitchen appliances. Everyone knows Apple, but there are dozens of other phone brands out there making millions of dollars. You might have never even heard of some of them, but they still have loyal customers who prefer their specific pricing, features, or simplicity. The same thing happens with car brands and washing machines. There is almost never just one company that gets every single customer.&lt;/p&gt;

&lt;p&gt;Software is the exact same way. It is almost never a game where one winner takes everything. Just because a giant company like Salesforce exists does not mean Bob wants to use it. Big software is usually too expensive, too complicated, and trying to please everyone at once.&lt;/p&gt;

&lt;p&gt;The world is huge. There is always a specific target market, a local region, or a tiny niche that wants your exact version of a tool. You do not need a million users to build a great business. You just need fifty boring companies paying you a few hundred bucks a month.&lt;/p&gt;

&lt;p&gt;So, how do you do this?&lt;/p&gt;

&lt;p&gt;Stop trying to think of ideas in your bedroom. Go talk to people who run traditional businesses. Do research on these 'unsexy' and 'unattractive' businesses, even construction. Talk to a logistics manager or a factory owner. Ask them what part of their day makes them want to scream.&lt;/p&gt;

&lt;p&gt;Look for the messy spreadsheets. Look for the boring, repetitive tasks.&lt;/p&gt;

&lt;p&gt;You do not need to change the whole world. You just need to solve a real problem for a real business.In as much as some build for the love of the game, making some $ while doing what you love would be much, much better. Embrace the boring stuff, because that is exactly where the real opportunity is hiding ƪ(˘⌣˘)ʃ.&lt;/p&gt;




&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@charlize?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;xyzcharlize&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/aerial-photo-of-gray-metal-parts-7b49gfsgQZY?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>watercooler</category>
      <category>career</category>
    </item>
    <item>
      <title>Disappeared Since March: Taking a Long Break Was My Best Decision Yet</title>
      <dc:creator>Maame Afua A. P. Fordjour </dc:creator>
      <pubDate>Wed, 23 Sep 2026 17:06:01 +0000</pubDate>
      <link>https://dev.to/maame-codes/disappeared-since-march-taking-a-long-break-was-my-best-decision-yet-1n45</link>
      <guid>https://dev.to/maame-codes/disappeared-since-march-taking-a-long-break-was-my-best-decision-yet-1n45</guid>
      <description>&lt;p&gt;If you checked my profile recently, you probably noticed my page has been completely quiet since March 12th. No project updates, no new posts, and zero commits. &lt;/p&gt;

&lt;p&gt;To be completely honest, I hit a wall. &lt;/p&gt;

&lt;p&gt;I was burning out. Balancing my university studies with endless personal projects and trying to keep up with new tools finally caught up to me. The pressure of school assignments and exams, on top of coding in my free time, became too much to handle. My brain felt like a browser with fifty tabs open, and I could not figure out which one to close.&lt;/p&gt;

&lt;p&gt;So, I did something that used to scare me: I stepped away completely. &lt;/p&gt;

&lt;p&gt;First, I shifted my full focus to my studies. I needed to make sure I was staying on track with school without the extra pressure of creating content or building side projects. &lt;/p&gt;

&lt;p&gt;Then, once school allowed for it, I packed my bags and went on a much needed holiday. For the first time in a very long time, I closed my laptop and left it behind. I decided to stop worrying about code, stop checking tech news, and just rest.&lt;/p&gt;




&lt;h3&gt;
  
  
  What Happened When I Stopped Coding
&lt;/h3&gt;

&lt;p&gt;At first, taking time off felt a bit strange. It is easy to feel like you are falling behind when you are not constantly building. &lt;/p&gt;

&lt;p&gt;But after a few days of good food, actual rest, and exploring new places on my holiday, something amazing happened. My mind cleared up. I spent my trip talking to new people, enjoying the view, and letting my brain breathe. &lt;/p&gt;

&lt;p&gt;Without forcing it, my creative spark came back. I started noticing simple everyday problems and thinking of fun ways to solve them. I was not thinking about coding out of pressure anymore. I was thinking about it because I genuinely missed it.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why Breaks Are Essential
&lt;/h3&gt;

&lt;p&gt;We talk a lot in tech about consistency and working hard, but we rarely talk about the importance of powering down. &lt;/p&gt;

&lt;p&gt;Taking a break is not a sign of giving up. Just like a system needs downtime for updates, your brain needs rest to operate at its best. Stepping away to focus on school and enjoy a holiday gave me perspective, fresh inspiration and ideas.&lt;/p&gt;




&lt;h3&gt;
  
  
  I Am Back!
&lt;/h3&gt;

&lt;p&gt;I am refreshed, full of new ideas, and ready to write and build again. &lt;/p&gt;

&lt;p&gt;If you are currently feeling tired, stuck, or overwhelmed by your studies and work, this is your sign to take a breath. Step away for a bit, go on a walk, or take that holiday you have been putting off. The code will still be here when you get back.&lt;/p&gt;

&lt;p&gt;It is great to be back! &lt;/p&gt;

</description>
    </item>
    <item>
      <title>I Got Lost in Canary Wharf for 30 Minutes, But I Found the Future of SRE</title>
      <dc:creator>Maame Afua A. P. Fordjour </dc:creator>
      <pubDate>Thu, 12 Mar 2026 17:15:04 +0000</pubDate>
      <link>https://dev.to/maame-codes/i-got-lost-in-canary-wharf-for-30-minutes-but-i-found-the-future-of-sre-202k</link>
      <guid>https://dev.to/maame-codes/i-got-lost-in-canary-wharf-for-30-minutes-but-i-found-the-future-of-sre-202k</guid>
      <description>&lt;p&gt;If you've ever been to Canary Wharf, you know it's less of a business district and more of a high-stakes escape room designed by someone who really dislikes Google Maps. &lt;/p&gt;

&lt;p&gt;I arrived for SRE Day London 2026 at the Everyman Cinema feeling prepared. I had my bag, my notes, and a general idea of where I was going. Fast forward 30 minutes, and I was still wandering around Crossrail Place like a lost protagonist in a sci-fi movie. Between the multiple levels and the "Level -2" hidden entrance, the frustration was real. I spent nearly half an hour pacing back and forth, trying to figure out how to actually get into the venue. Honestly speaking I probably hit 2k on my daily steps from walking around in circles to find the exact location. And for some weird reason, google maps and apple maps don't work really well in Canary Wharf, did some research. Apparently it is due to something called The urban canyon effect. If you are interested in reading more about how that affects GPS signals, you can read this article: &lt;a href="https://www.gpsworld.com/wirelesspersonal-navigationshadow-matching-12550/" rel="noopener noreferrer"&gt;urban canyon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But honestly? The second I stepped inside, the frustration evaporated.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Swag Haul
&lt;/h2&gt;

&lt;p&gt;First things first: the swag. As a student, you quickly learn that the quality of an event is often proportional to the stickers on the table. SRE Day did not disappoint. I loaded up on fridge magnets and stickers, but the highlight was definitely the SRE Day t-shirts. I managed to cop one, and let's just say it's going straight into my weekly rotation.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Knowledge Drop: Morning to Midday
&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%2Fchipa1l9vshm3uce6p2n.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fchipa1l9vshm3uce6p2n.jpeg" alt="keynotes" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The talks kicked off at 09:00, and sitting on those comfortable Everyman sofas made it feel more like a movie premiere than a tech conference. Here is a breakdown of what I learned before 15:00:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Peter Marshall (Imply):&lt;/strong&gt; He opened with a keynote on Decoupled Observability. The big takeaway here was that we are often limited by "tightly coupled" architectures where data is stuck to specific tools. By decoupling the data layer, we can scale our detection and investigation without the costs spiralling out of control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dewan Ahmed (Harness):&lt;/strong&gt; He talked about Secure by Default in AI-driven delivery. As we move faster with AI, we run the risk of "automating insecurity at scale." He challenged us to look beyond just scanners and build confidence directly into the pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Matt Henderson (Phoebe):&lt;/strong&gt; This was fascinating he compared software reliability to the human immune system. Instead of just reacting to alerts and scrambling when things break, we need systems that can predict and prevent failures, just like our bodies handle threats before we even feel sick.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tyler Hannan (ClickHouse):&lt;/strong&gt; He asked a controversial question: Do Metrics Matter? While metrics are the fastest way to see if a system is unhealthy, Tyler pointed out that as systems get more complex, metrics alone aren't enough to understand the "why" behind unpredictable failures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Birol Yildiz (ilert):&lt;/strong&gt; He showed AI SRE in action. We're moving toward a world where AI agents can diagnose and remediate outages autonomously. Imagine an incident fixing itself without anyone getting paged at 3 AM!&lt;/p&gt;




&lt;h2&gt;
  
  
  Lunch and the Afternoon Sprint
&lt;/h2&gt;

&lt;p&gt;After a much-needed pizza break (shoutout to incident.io for powering that!), we dove into the afternoon sessions:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deniz Yalcin &amp;amp; William Ravensbergen (ING):&lt;/strong&gt; They reminded us that reliability starts with Customer Data. In banking, if upstream data is malformed or delayed, everything else fails from fraud prevention to user trust. It's an underrated SRE dependency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adriana Villela (Dynatrace):&lt;/strong&gt; She emphasized that Observability is a Team Sport! We often fall into the trap of creating "Observability Silos" just like we did with DevOps. To succeed, observability needs to be integrated across the whole organization, not just a single team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Heather Thacker (Gatling):&lt;/strong&gt; She broke down the Performance Testing Arsenal. It's one thing for your app to work on a laptop, but another to handle 10x traffic during a marketing campaign. She covered load, stress, and soak testing—essential tools for any SRE.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tasmia Niazi:&lt;/strong&gt; This session was super relatable for me. She shared her journey from learner to leader, explaining that SRE is a mindset and a culture, not just a job title. Adopting that state of mind is what builds resilient teams.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting Involved: Tracer Cloud and Open Source
&lt;/h2&gt;

&lt;p&gt;During the networking and sponsor crawl at 14:30, I had the coolest discovery: Tracer Cloud's Open SRE Agent. It's a tool focused on cloud-native alert investigation, using AI to figure out root causes before humans even have to step in.&lt;/p&gt;

&lt;p&gt;Because I've been looking for ways to get more "hands-on" experience, I officially signed up to be a contributor! If you want to jump in and contribute to the repo as well, you can find it here:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Tracer-Cloud" rel="noopener noreferrer"&gt;
        Tracer-Cloud
      &lt;/a&gt; / &lt;a href="https://github.com/Tracer-Cloud/opensre" rel="noopener noreferrer"&gt;
        opensre
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Build your own AI SRE agents. The open source toolkit for the AI era.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/Tracer-Cloud/opensre/docs/logo/opensre-logo-white.svg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FTracer-Cloud%2Fopensre%2FHEAD%2Fdocs%2Flogo%2Fopensre-logo-white.svg" alt="OpenSRE" width="360"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;OpenSRE v0.1: Build Your Own AI SRE Agents&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;The open-source framework for AI SRE agents, and the training and evaluation environment they need to improve. Connect the 60+ tools you already run, define your own workflows, and answer production questions on your own infrastructure.&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/Tracer-Cloud/opensre/actions/workflows/ci.yml?branch=main" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/81bd2e1de7dffbf92f49763cc630528d1929a172ec5ca6c69bc485e463abd613/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f5472616365722d436c6f75642f6f70656e7372652f63692e796d6c3f6272616e63683d6d61696e267374796c653d666f722d7468652d6261646765" alt="CI status"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Tracer-Cloud/opensre/releases" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/85cdcd9c83f9ee11c235d8639e858b606fbdfd51286a2b5542f0b6026f193055/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7374617475732d7075626c6963253230616c7068612d6f72616e67653f7374796c653d666f722d7468652d6261646765" alt="Project status: public alpha"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/Tracer-Cloud/opensre/blob/main/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7bcf61277e6797b4d04d2593a074bb89facf520ea3f9df4bed3f15c4263f02dc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d417061636865253230322e302d626c75652e7376673f7374796c653d666f722d7468652d6261646765" alt="Apache 2.0 License"&gt;&lt;/a&gt;
  &lt;a href="https://discord.gg/7NTpevXf7w" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/0afbea69e98a1e86fd72c0c43eed8e3219b5f82ab642bfde772d932c22bfe210/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446973636f72642d4a6f696e25323055732d3538363546323f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264266c6f676f436f6c6f723d7768697465" alt="Discord"&gt;&lt;/a&gt;
    &lt;a href="https://greptile.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e9521c46cb59a66e242ec90120ec358c7f783591d765347bd902d945c9afb0cb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53706f6e736f72656425323062792d4772657074696c652d3237453939463f7374796c653d666f722d7468652d6261646765266c6162656c436f6c6f723d334433423446266c6f676f3d64617461253341696d616765253246737667253242786d6c25334262617365363425324350484e325a79423361575230614430694d7a59334969426f5a576c6e61485139496a51794d434967646d6c6c64304a76654430694d43417749444d324e7941304d6a416949475a7062477739496d3576626d5569494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a7949253242436a78775958526f49475139496b30794e4441754d6a5935494451354c6a67784e54524d4d5459324c6a67774e4341784d5455754f54597a544445784e5334354e6a59674d5455354c6a5130544445344d53347a4d7a55674d6a49774c6a55344e5577794e446b754e7a6730494445324d6934774e44684d4d546b324c6a6334494445784d6934304e3077794e544d754d445934494459784c6a63344f44464d4d7a59794c6a59774e5341784e6a51754d6a5132544445334f4334334d7a6b674d7a49784c6a51344f55777a4c6a45304e544179494445314e7934794e444a4d4d5467334c6a41784d534177544449304d4334794e6a6b674e446b754f4445314e466f6949475a706247773949694e47526b5a47526b59694c7a344b50484a6c5933516764326c6b64476739496a497a4e6934304e544d694947686c6157646f644430694f444d754e4455324e69496764484a68626e4e6d62334a7450534a74595852796158676f4d4334334e5451334d5341744d4334324e5459774e546b674d434178494445344f4334774d5463674d7a4d324c6a55304e436b6949475a706247773949694e47526b5a47526b59694c7a344b50484a6c5933516764326c6b64476739496a497a4e6934304e544d694947686c6157646f644430694f444d754e4455324e69496764484a68626e4e6d62334a7450534a74595852796158676f4d4334334d7a457a4e5451674d4334324f4445354f5467674d434178494441674d5463304c6a6b324d696b6949475a706247773949694e47526b5a47526b59694c7a344b5043397a646d632532424367253344253344" alt="Sponsored by Greptile"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://trendshift.io/repositories/25889" rel="nofollow noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/a3aeed0af116d24536b12e676abdae775258fa0f9d11ced5fd78c2cb338ef8ba/68747470733a2f2f7472656e6473686966742e696f2f6170692f62616467652f7265706f7369746f726965732f3235383839" alt="Tracer-Cloud%2Fopensre | Trendshift" height="30"&gt;
  &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;
    &lt;a href="https://www.opensre.com/docs/getting-started/quickstart" rel="nofollow noopener noreferrer"&gt;Quickstart&lt;/a&gt; ·
    &lt;a href="https://www.opensre.com/docs" rel="nofollow noopener noreferrer"&gt;Docs&lt;/a&gt; ·
    &lt;a href="https://opensre.com/docs/guides/faq" rel="nofollow noopener noreferrer"&gt;FAQ&lt;/a&gt; ·
    &lt;a href="https://trust.tracer.cloud/" rel="nofollow noopener noreferrer"&gt;Security&lt;/a&gt;
  &lt;/strong&gt;
&lt;/p&gt;


&lt;/div&gt;
&lt;br&gt;


&lt;blockquote&gt;
&lt;p&gt;🚧 Public Alpha: Core workflows are usable for early exploration, though not yet fully stable. The project is in active development, and APIs and integrations may evolve.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Before you begin&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;Make sure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A terminal open in a code project&lt;/li&gt;
&lt;li&gt;A Git repository (recommended for the full workflow demonstration)&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Step 1: Install and start opensre&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;macOS or Linux:&lt;/p&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;curl -fsSL https://install.opensre.com &lt;span class="pl-k"&gt;|&lt;/span&gt; bash -s -- -gh&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Windows (PowerShell):&lt;/p&gt;

&lt;div class="highlight highlight-source-powershell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;&amp;amp;&lt;/span&gt; ([&lt;span class="pl-k"&gt;scriptblock&lt;/span&gt;]::Create((irm https:&lt;span class="pl-k"&gt;//&lt;/span&gt;&lt;span class="pl-c1"&gt;install.opensre.com&lt;/span&gt;&lt;span class="pl-k"&gt;/&lt;/span&gt;install.ps1))) &lt;span class="pl-k"&gt;-&lt;/span&gt;gh&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Then start OpenSRE:&lt;/p&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;opensre&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Tracer-Cloud/opensre/docs/images/opensre-welcome.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FTracer-Cloud%2Fopensre%2FHEAD%2Fdocs%2Fimages%2Fopensre-welcome.png" alt="OpenSRE CLI welcome screen with the sign-in prompt"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Windows details: &lt;a href="https://github.com/Tracer-Cloud/opensre/docs/install/windows-local.mdx" rel="noopener noreferrer"&gt;Windows&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The installer fetches the latest build from &lt;code&gt;main&lt;/code&gt; without requiring sudo…&lt;/p&gt;&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Tracer-Cloud/opensre" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;Contributing to open-source is one of the best ways to move from theory to reality.&lt;/p&gt;




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

&lt;p&gt;Despite the 30-minute maze-running session at the start, SRE Day was a massive win. I came for the t-shirt, but I left with a contributor invite and a much clearer picture of where the industry is heading.&lt;/p&gt;

&lt;p&gt;If you are curious about cloud or have deep interests in reliability, it doesn't matter if you're not in London! They host events all around Europe. You should definitely subscribe to their page on &lt;a href="https://lu.ma/sre" rel="noopener noreferrer"&gt;Luma&lt;/a&gt; to check out their upcoming events.&lt;/p&gt;

&lt;p&gt;Also, if you're looking to give back, they have an option to help out as a Community Hero! It's a great way to support the ecosystem while growing your own network.&lt;/p&gt;

&lt;p&gt;Now, if someone could just build an agent to help me navigate Canary Wharf next time... that would be great because honestly, I became Maame 'the explorer' in those 30 minutes😂.&lt;/p&gt;

</description>
      <category>sre</category>
      <category>cloud</category>
      <category>opensource</category>
      <category>networking</category>
    </item>
    <item>
      <title>DevOps From Scratch: Entry #05</title>
      <dc:creator>Maame Afua A. P. Fordjour </dc:creator>
      <pubDate>Sat, 07 Mar 2026 16:39:39 +0000</pubDate>
      <link>https://dev.to/maame-codes/devops-from-scratch-entry-05-56o9</link>
      <guid>https://dev.to/maame-codes/devops-from-scratch-entry-05-56o9</guid>
      <description>&lt;p&gt;Chapters 6 and 7 of the &lt;a href="https://trainingportal.linuxfoundation.org/courses/introduction-to-linux-lfs101" rel="noopener noreferrer"&gt;Linux Foundation LFS101 course&lt;/a&gt; cover &lt;strong&gt;System Configuration from the Graphical Interface&lt;/strong&gt; and &lt;strong&gt;Common Applications&lt;/strong&gt;. On the surface, these sound like the "not-so-technical" chapters, the ones you skim to get to the real stuff.&lt;/p&gt;

&lt;p&gt;But I actually found them more useful than I expected. Here's why.&lt;/p&gt;




&lt;h2&gt;
  
  
  Chapter 6: System Configuration from the Graphical Interface
&lt;/h2&gt;

&lt;p&gt;After all the kernel talk and boot process deep-dives from previous entries, this one felt like a breather. It's about what you can configure directly through the Ubuntu desktop, no terminal required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Display, Date &amp;amp; Time Settings&lt;/strong&gt; are all inside GNOME's Settings panel, just like you'd expect. But one thing that caught my attention was the &lt;strong&gt;NTP (Network Time Protocol)&lt;/strong&gt; option for syncing time automatically. In DevOps, this actually matters. If multiple servers disagree on the time, your logs won't line up and debugging becomes a nightmare. So even "setting the clock" has a real professional reason behind it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Network Manager&lt;/strong&gt; is what Linux uses to handle all your connections: WiFi, ethernet, VPNs. The GUI version lives in your top-right taskbar and does a lot of the heavy lifting automatically. The insight the course gives though is that everything you configure through that GUI maps to a config file underneath. The GUI is the training wheels. Knowing what's behind it is what matters for DevOps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installing and Updating Software&lt;/strong&gt; the course clears up a distinction I was fuzzy on:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update    &lt;span class="c"&gt;# refreshes your list of available packages (installs nothing)&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt upgrade   &lt;span class="c"&gt;# actually downloads and installs newer versions&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Always run &lt;code&gt;update&lt;/code&gt; before &lt;code&gt;upgrade&lt;/code&gt;. Now I properly understand why. ✅&lt;/p&gt;




&lt;h2&gt;
  
  
  Chapter 7: Common Applications
&lt;/h2&gt;

&lt;p&gt;This chapter is a guided tour of the Linux app ecosystem. The apps work great, they just have different names to what you're used to.&lt;/p&gt;

&lt;h3&gt;
  
  
  Internet &amp;amp; Communication
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Need&lt;/th&gt;
&lt;th&gt;Linux App&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Web browser&lt;/td&gt;
&lt;td&gt;Firefox, Chromium&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Email&lt;/td&gt;
&lt;td&gt;Thunderbird, Evolution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File transfer&lt;/td&gt;
&lt;td&gt;FileZilla&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Messaging / VoIP&lt;/td&gt;
&lt;td&gt;Pidgin, Ekiga&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Nothing groundbreaking, but good to know your way around.&lt;/p&gt;




&lt;h3&gt;
  
  
  Productivity &amp;amp; Dev Tools
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;LibreOffice&lt;/strong&gt; is the open-source Microsoft Office. Writer, Calc, and Impress cover Word, Excel, and PowerPoint respectively. It even reads &lt;code&gt;.docx&lt;/code&gt; and &lt;code&gt;.xlsx&lt;/code&gt; files. Won't need it much for DevOps, but it's there.&lt;/p&gt;

&lt;p&gt;On the dev side, Linux is properly in its element: &lt;code&gt;gcc&lt;/code&gt; for compiling, &lt;code&gt;gdb&lt;/code&gt; for debugging, Eclipse or VS Code as an IDE, and of course &lt;code&gt;git&lt;/code&gt; for version control, which was &lt;em&gt;also&lt;/em&gt; created by Linus Torvalds. The man really said "I'll just build Linux AND the version control system while I'm at it." 😂&lt;/p&gt;




&lt;h3&gt;
  
  
  Multimedia &amp;amp; Graphics
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VLC&lt;/strong&gt; needs no introduction, it plays everything, everywhere, always. Audacity covers audio editing, Kdenlive handles video editing, and &lt;strong&gt;GIMP&lt;/strong&gt; is the open-source Photoshop alternative that's been around since 1996. Inkscape handles vector graphics too (think open-source Illustrator).&lt;/p&gt;

&lt;p&gt;The full ecosystem laid out like this is honestly impressive. There's a free, open-source alternative for basically everything.&lt;/p&gt;




&lt;h2&gt;
  
  
  The One Big Takeaway
&lt;/h2&gt;

&lt;p&gt;Linux is a complete operating system, not just a terminal with some files floating around it.&lt;/p&gt;

&lt;p&gt;Everything in the GUI maps directly to a config file or CLI command underneath. Using the desktop to set things up is fine. Knowing &lt;em&gt;what's happening&lt;/em&gt; underneath is what separates someone who &lt;strong&gt;uses&lt;/strong&gt; Linux from someone who &lt;strong&gt;understands&lt;/strong&gt; it.&lt;/p&gt;

&lt;p&gt;That's the gear I'm trying to shift into. Slowly but surely.(Just like the way penguins walk) &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; I've updated &lt;strong&gt;&lt;a href="https://flashy-memorizer.vercel.app/" rel="noopener noreferrer"&gt;Flashy&lt;/a&gt;&lt;/strong&gt; with a new deck for both chapters, go test yourself if you've been following along!&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Command Line Operations&lt;/strong&gt; we're leaving the desktop behind and going full terminal. Nervous and excited in equal measure. See you in the next one! &lt;/p&gt;

</description>
      <category>devops</category>
      <category>linux</category>
      <category>learning</category>
    </item>
    <item>
      <title>How My "Illegal" Visit to Tech Show London Turned Into a Summer Internship Win</title>
      <dc:creator>Maame Afua A. P. Fordjour </dc:creator>
      <pubDate>Thu, 05 Mar 2026 01:04:10 +0000</pubDate>
      <link>https://dev.to/maame-codes/how-my-illegal-visit-to-tech-show-london-turned-into-a-summer-internship-win-336o</link>
      <guid>https://dev.to/maame-codes/how-my-illegal-visit-to-tech-show-london-turned-into-a-summer-internship-win-336o</guid>
      <description>&lt;p&gt;I officially became a "Tech Outlaw" today. 😂&lt;/p&gt;

&lt;p&gt;Don't worry I didn't do anything malicious. I just happened to be in the right place at the "wrong" time. This year, I made a personal vow to stop being such an introvert. I decided to move past the workstation in my room and actually see the opportunities waiting in the real world. When I saw the "Tech Show London" flyer on Instagram, specifically mentioning DevOps, Cloud, and Infrastructure, I knew I had to be there.&lt;/p&gt;

&lt;p&gt;I registered, showed up for Day One, and that’s where the adventure (and the "crime") began.&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%2F4zgx3gjoy8bmd6gxqztv.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zgx3gjoy8bmd6gxqztv.jpeg" alt="badge" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Part 1: The "Accidental" Infiltration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yesterday morning at the ExCeL was electric. Hundreds of people were streaming in, multiple shows were running simultaneously, and in the chaos, I simply scanned my badge and sailed through the gates. I spent the first few hours feeling like a total pro, soaking up the atmosphere and jumping between the Cloud and DevOps keynotes.&lt;/p&gt;

&lt;p&gt;I was taking frantic notes, thinking, "This is it. I’m finally in the room where it happens." Three major "lightbulb" moments hit me:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Cloud-Native Shift:&lt;/strong&gt; It’s no longer about just "using" the cloud for storage; it’s about architecting systems specifically for it so they can scale at the speed of light.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Human Side of DevOps:&lt;/strong&gt; A speaker hammered home that you can have a perfect Docker or Kubernetes setup, but if your team’s communication is broken, your tech stack won't save you. DevOps is a culture, not just a toolkit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The "Headache" Economy:&lt;/strong&gt; Walking the floor, I realized why thousands of tech firms exist. One solves security, one solves speed, one helps find bugs—every booth is there to cure a very specific "headache" for a developer.&lt;/p&gt;

&lt;p&gt;I even cornered one of the keynote speakers afterward. I told him I was an aspiring DevOps engineer, and he gave me invaluable advice on what to prioritize in my studies. To top it off, I managed to secure a CPD (Continuing Professional Development) certificate for the sessionssomething I didn't even know existed!&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%2Fgg136h0xvohrpcgtkcfu.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgg136h0xvohrpcgtkcfu.jpeg" alt="certification" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Part 2: The "Bathroom" Blunder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Everything was going perfectly until I needed the restroom. I walked up to a security guard for directions, and she took one look at my badge, then looked at me, and her eyebrows shot up.&lt;/p&gt;

&lt;p&gt;"Wait a minute... you're a student?" she asked.&lt;br&gt;
I gave her a massive, confident smile. "Yes, I am!"&lt;br&gt;
She let out a laugh and shook her head. "Honey, you aren't supposed to be here until tomorrow at 2 PM! Students are Day Two only."&lt;/p&gt;

&lt;p&gt;And just like that, my "illegal" residency at Tech Show London came to an end. I was politely shown the exit, but I wasn't even mad. I already had the notes, the speaker's advice, and my certificate in hand.&lt;/p&gt;

&lt;p&gt;I was exhausted from studying for an exam next week and considered going home for a nap. But then, a reminder popped up on my phone: a DevOps Meetup I had totally forgotten about. Despite the fatigue, I decided to push through.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Part 3: The Pivot to "Data’s Revenge"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The meetup was "DevOps Next Generation: Data’s Revenge" hosted by Fivium, Tarmac, and CODER at Adam Street.&lt;/p&gt;

&lt;p&gt;If I hadn't been kicked out of the ExCeL, I might have missed this entirely, and that would have been a tragedy. The energy was completely different more intimate and way more focused. I listened to Beverly Clarke MBE and Darko Klincharski drop gems about the industry, it was quite interesting to listen to how much money companies pay to use cloud services, the figures were massive! and mind blowing.&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%2F7h96hxcd6mrrl6a53eh6.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7h96hxcd6mrrl6a53eh6.jpeg" alt="devops event" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the keynote, realising I was the only student there, surrounded by all these platform engineers, DevOps engineers and even CTO's and hiring managers, I decided to take a huge risk. During the session, I stood up and asked:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Is there anyone here looking for an intern who is incredibly keen to learn about DevOps and ready to work to gain experience?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The room went quiet for a second, and then everything changed. One of the key speakers told me to leave with 6 networks here and even mentioned there were hiring managers in there with us. They all looked at me and smiled and told me to come see them after the keynote! &lt;/p&gt;

&lt;p&gt;As soon as the keynotes ended and the pizza and drinks started flowing, I was swarmed. I didn't need to send a single CV or give my GitHub. Instead of being "Applicant #452" in an automated system, I was a real person having a conversation over a slice of pizza. By the end of the night:&lt;/p&gt;

&lt;p&gt;Two companies offered me the opportunity to come in for the summer to pair program and learn the ropes of DevOps.&lt;/p&gt;

&lt;p&gt;I connected with a start-up that wants me to grow alongside them as they build their infrastructure.&lt;/p&gt;

&lt;p&gt;I ended up connecting and taking advise from people who had been in the DevOps job role for years, coolest thing was taking advice from a platform engineer that had been in the game for 30 plus years! He mentioned to me how during his time, he had to write code on physical pieces of papers, imagine!&lt;/p&gt;

&lt;p&gt;My final thoughts are, Never be afraid to use your voice or put yourself out there. You truly never know who is watching. I now have a summer internship secured just from a conversation over pizza. I didn't have to wait for three rounds of interviews or an HR algorithm to "pick" me.&lt;/p&gt;

&lt;p&gt;Opportunities pop up when you are actively searching. I'll definitely keep showing up in these tech spaces legally or otherwise! 😉&lt;/p&gt;

</description>
      <category>devops</category>
      <category>networking</category>
      <category>cloudcomputing</category>
      <category>career</category>
    </item>
    <item>
      <title>Gemini Mechanic: Fixing Your Gadgets with AI</title>
      <dc:creator>Maame Afua A. P. Fordjour </dc:creator>
      <pubDate>Mon, 02 Mar 2026 21:39:32 +0000</pubDate>
      <link>https://dev.to/maame-codes/gemini-mechanic-fixing-your-gadgets-with-ai-jfj</link>
      <guid>https://dev.to/maame-codes/gemini-mechanic-fixing-your-gadgets-with-ai-jfj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/mlh-built-with-google-gemini-02-25-26"&gt;Built with Google Gemini: Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built with Google Gemini
&lt;/h2&gt;

&lt;p&gt;I created a project called &lt;strong&gt;Gemini Mechanic&lt;/strong&gt;. It is a smart assistant that helps people fix broken hardware and electronics. Many people feel lost when a gadget stops working. My web app lets users take a photo of the problem or type a description to get help right away.&lt;/p&gt;

&lt;p&gt;Google Gemini is the brain of this project. It looks at the photos to figure out what is wrong. Then it gives the user a list of repair steps and tells them what parts they need to buy. This makes it much easier for regular people to repair their own things.&lt;/p&gt;




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

&lt;p&gt;&lt;a href="https://github.com/Maame-codes/gemini-mechanic" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I previewed it and realised the embedded version doesn’t allow the camera to be used so you can just access the live link here:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gemini-mechanic-16378601646.us-central1.run.app/" rel="noopener noreferrer"&gt;Live demo&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;In my demo, I used my broken iPhone 8 as an example. The app was able to recognize the phone and see that the screen was detached. It provided a full repair guide. It included steps to turn off the power and remove the ribbon cables safely.&lt;/p&gt;

&lt;p&gt;

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


&lt;/p&gt;




&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__cloud-run"&gt;
  &lt;iframe height="600px" src="https://gemini-mechanic-16378601646.us-central1.run.app/"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;







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

&lt;p&gt;One of the biggest lessons I learned was about mobile design. Most people are not at a desk when they are trying to fix something. They are usually holding their phone while they work. I spent a lot of time making the app mobile responsive so it looks good on small screens.&lt;/p&gt;

&lt;p&gt;I also learned how to write better instructions for the AI. For repairs, safety is the most important part. I had to make sure Gemini always reminds users to do things like disconnect the battery before they start working.&lt;/p&gt;




&lt;h2&gt;
  
  
  Google Gemini Feedback
&lt;/h2&gt;

&lt;p&gt;Working with Gemini was a good experience, but I did face some challenges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Picking the right model:&lt;/strong&gt; I spent a lot of time testing different Gemini models. I needed one that was smart enough to recognize small parts but fast enough to work on a phone. I don’t know why whenever I try to use Gemini as the ai for any of my projects, I always run into errors. But with the project I was pushed to figure it out, took me a couple of hours till I found the best model to run it with. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mobile speed:&lt;/strong&gt; Making sure the app stayed fast while the AI was thinking was tricky. I had to optimize the code so the user experience stayed smooth on mobile devices.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Open Source&lt;/strong&gt;&lt;br&gt;
I want to make this project open source so everyone can use it. If you have ideas for new features or want to add more repair data, please feel free to contribute to the GitHub repo. I would love to see what we can add to make it better.&lt;/p&gt;




</description>
      <category>devchallenge</category>
      <category>geminireflections</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Know Your Rights, Find Your Support — Built for Brent</title>
      <dc:creator>Maame Afua A. P. Fordjour </dc:creator>
      <pubDate>Sun, 01 Mar 2026 19:52:26 +0000</pubDate>
      <link>https://dev.to/maame-codes/know-your-rights-find-your-support-built-for-brent-5de6</link>
      <guid>https://dev.to/maame-codes/know-your-rights-find-your-support-built-for-brent-5de6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/weekend-2026-02-28"&gt;DEV Weekend Challenge: Community&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Community
&lt;/h2&gt;

&lt;p&gt;Brent is one of London's most diverse and deprived boroughs. 340,000 residents. 130+ languages spoken. A 27% child poverty rate, one of the highest in the capital.&lt;/p&gt;

&lt;p&gt;The people who live here are not short of resilience or community spirit. What they are often short of is information. Not because it doesn't exist but because it's scattered across dozens of council web pages, NHS portals, charity websites, and government guidance documents, written in bureaucratic language, rarely updated, and almost impossible to navigate under stress.&lt;/p&gt;

&lt;p&gt;When someone is facing eviction tonight, they don't have time to search five websites. When a young person gets stopped and searched, they should already know their rights. When a resident doesn't know there are fully funded training courses available to them for free — that information gap has a real cost.&lt;/p&gt;

&lt;p&gt;I live in Brent. I built this for my neighbours.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Brent Navigator&lt;/strong&gt; is a free,  community webapp that puts verified, plain-English information in one place, organised around the moments that matter most to residents.&lt;/p&gt;

&lt;p&gt;Nine sections covering the full range of issues Brent residents face:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Crisis Support&lt;/strong&gt; — Mental health lines, domestic abuse contacts, emergency services&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Health&lt;/strong&gt; — NHS urgent care, GP registration, healthy living support&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Housing&lt;/strong&gt; — Renting rights, social housing bidding system, eviction process, emergency housing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Employment&lt;/strong&gt; — Free job search tools, fully funded training courses, benefits explained, starting a business&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cleaner Brent&lt;/strong&gt; — Bin collection finder, fly-tipping reporting, bulky waste options&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Hub&lt;/strong&gt; — Community groups, local events, faith organisations, local news, and an interactive Leaflet.js map with 17 clickable location pins across the borough&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Youth &amp;amp; Rights&lt;/strong&gt; — Stop and search rights, education entitlements, mental health support, care leaver entitlements&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tax &amp;amp; Budget&lt;/strong&gt; — Council tax discounts, where the money goes, accountability tools, financial help&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Council FAQs&lt;/strong&gt; — A searchable accordion of 32 verified answers to the most common resident questions&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every phone number is real. Every link goes somewhere useful. Every piece of content was verified against official sources.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Live app:&lt;/strong&gt; &lt;a href="https://brent-navigator.vercel.app" rel="noopener noreferrer"&gt;brent-navigator.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Maame-codes/brent-navigator" rel="noopener noreferrer"&gt;github.com/Maame-codes/brent-navigator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dashboard&lt;/strong&gt;&lt;br&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%2Fiqz4ljlc4ex8g879dz5r.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%2Fiqz4ljlc4ex8g879dz5r.png" alt="Dashboard" width="794" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tabs on the different help available&lt;/strong&gt;&lt;br&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%2Fm7v72gek9kuys6ruvk4e.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%2Fm7v72gek9kuys6ruvk4e.png" alt="Navigator Tabs" width="788" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interactive Map featuring places in Brent&lt;/strong&gt;&lt;br&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%2Frjehcxhr5cfhrmij6p6t.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%2Frjehcxhr5cfhrmij6p6t.png" alt="Interactive map " width="796" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React + Vite&lt;/li&gt;
&lt;li&gt;Framer Motion for page transitions&lt;/li&gt;
&lt;li&gt;Leaflet.js for the interactive map&lt;/li&gt;
&lt;li&gt;CSS custom properties for theming&lt;/li&gt;
&lt;li&gt;Deployed on Vercel, source on GitHub&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The content was the hardest part.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every section required genuine research, verifying phone numbers against official sources, checking council policy documents, confirming addresses. The Housing section alone covers the Locata bidding system, Section 21 validity checklist, illegal eviction law, deposit protection rules, and emergency housing routes. That's not content you can make up or guess at. People will use this in real situations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The CSS nearly broke me.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'll be honest, my CSS sucks. It was the reason why I never wanted to ever get into front-end anyway and  getting this to be responsive was a battle. So forgive me if it is not the most aesthetically pleasing site there is, I TRIED MY BEST 😂. The sidebar needed to become a hamburger menu on mobile without pushing or shifting the main content. The interactive map needed to render correctly on small screens. The tab navigation inside each section needed to wrap without breaking the layout. I spent significant time wrestling with &lt;code&gt;position: fixed&lt;/code&gt;, &lt;code&gt;overflow-x: hidden&lt;/code&gt;, &lt;code&gt;-webkit-overflow-scrolling: touch&lt;/code&gt;, and &lt;code&gt;overscroll-behavior&lt;/code&gt; to get the mobile experience feeling smooth and native. It's not glamorous work but it matters — most Brent residents access the internet on a phone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The tab persistence was a small detail that mattered a lot.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Early on, refreshing the page would always kick you back to the dashboard. For an app that residents might bookmark and return to repeatedly, that's genuinely frustrating. I added &lt;code&gt;localStorage&lt;/code&gt; to persist the active tab across sessions so the app remembers where you were.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why I built it this way.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I could have built a simple link directory. Instead I chose depth real explanations, real context, real phone numbers. The Housing section tells you that you don't have to leave just because you receive an eviction letter. The Youth section tells you exactly what an officer must say before a stop and search. The Benefits section explains the Universal Credit taper rate in plain English so residents aren't scared to take a job.&lt;/p&gt;

&lt;p&gt;That's the difference between a directory and a navigator. This is built to help real people, and solve real problems in a neighbourhood I live in.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with ❤️ for the 340,000 residents of Brent, London.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I Left My First Hackathon at 8 PM — And it Was a Massive Success!</title>
      <dc:creator>Maame Afua A. P. Fordjour </dc:creator>
      <pubDate>Sun, 22 Feb 2026 13:55:12 +0000</pubDate>
      <link>https://dev.to/maame-codes/i-left-my-first-hackathon-at-8-pm-and-it-was-a-massive-success-1hme</link>
      <guid>https://dev.to/maame-codes/i-left-my-first-hackathon-at-8-pm-and-it-was-a-massive-success-1hme</guid>
      <description>&lt;p&gt;Most hackathon stories start with "We stayed up for 36 hours and drank 10 Red Bulls."&lt;/p&gt;

&lt;p&gt;Mine is different. Yesterday was Day 1 of my first-ever hackathon, Hack London (HackLDN). By 8 PM, I was heading for the exit. I didn't finish the project, and I didn't stay for the midnight games and karaoke (I did get a really nice chicken burrito, lots of snacks &amp;amp; drinks &amp;amp; also pizza(^///^)).&lt;/p&gt;

&lt;p&gt;Yet, I walked away with two recruiter contacts, a laptop covered in cool stickers, and a realization about the global dev community that surprised me. Here is why every aspiring developer needs to stop worrying about "finishing" and just start showing up.&lt;/p&gt;

&lt;p&gt;They tell you hackathons are 24-hour marathons fueled by caffeine, Red Bull, and zero sleep. They tell you that if you aren't there when the sun comes up, you haven't "really" attended.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;They’re wrong.&lt;/strong&gt; I am sure people who have never been to hackathons probably think to have to close your eyes and be able to code something that wins you a prize. Absolutely not! &lt;/p&gt;

&lt;p&gt;I made sure I went to the premises early, that was when most people network and try to find teams. The people I spoke to during that period, I would say 30-40% of them actually had no coding experience, just curious minds.&lt;/p&gt;

&lt;p&gt;So you don't have to be a coding expert to go for these things. Some go to find co-founders, others go for the free food(no kidding, one guy told me this when I went to grab coffee😂'I am just here for the stickers and free food'...well fair enough😂😂), others just go to learn too out of curiosity. I was definitely in that learning category, I always say you never know what you can learn in these type of events.&lt;/p&gt;




&lt;p&gt;Yesterday, I walked into Hack London  as a first-timer with a laptop, a copy of my CV (obviously), and a lot of nerves. In those few hours, I gained more than most people do in a full weekend of coding. Here is why Day 1 of my first hackathon was a total game-changer.&lt;/p&gt;




&lt;h2&gt;
  
  
  The "Sticker-Clad" Reality
&lt;/h2&gt;

&lt;p&gt;Walking into the venue, the energy is infectious. You see the "HACKER" badges, the lanyards, and the immediate race to claim a spot. My laptop is now officially part of the community, sporting fresh stickers from Google DeepMind, ElevenLabs, PyCharm and MLH. (Didn't spare my nintendo switch, she also got one of Hack London's stickers on her hehe)&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%2Fyystnvak2ij8zgb7a8vc.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyystnvak2ij8zgb7a8vc.jpeg" alt="My laptop with stickers" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But beyond the swag, there was a deeper realization: I was finally in the room where things happen.&lt;/p&gt;




&lt;h2&gt;
  
  
  The MLH x Dev.to Connection
&lt;/h2&gt;

&lt;p&gt;One of the coolest parts of the day was meeting a representative from MLH (Major League Hacking), Quinn was super nice and very supportive big-ups to him fr （￣︶￣）↗　, he answered every single question and was always ready to help. I actually first heard about MLH because of their recent acquisition of Dev.to. It felt like a "full circle" moment to be at an MLH event while being a fan of this platform.&lt;/p&gt;

&lt;p&gt;But here’s the kicker:  While talking to other hackers, I realized that a huge number of people in the UK dev scene haven't discovered Dev.to yet! It seems to have a massive footprint in the US, but over here, it’s still a bit of a "hidden gem." If you're reading this from the UK, welcome to my favourite corner of the internet!&lt;/p&gt;




&lt;h2&gt;
  
  
  The "Early Exit" Dilemma
&lt;/h2&gt;

&lt;p&gt;I teamed up with a group of talented people, and we started getting to know each other and thinking of a project. The ideas were flowing, the GitHub repo was initialized, and the vibes were high.&lt;/p&gt;

&lt;p&gt;Then came 8 PM. I had other commitments I couldn't move, and I had to make the tough call to step away. Even though I couldn't cross the finish line with my team, the hours spent collaborating taught me more about real-world team dynamics than any solo project ever could.&lt;/p&gt;




&lt;h2&gt;
  
  
  Skipping the "Black Hole" of Job Portals
&lt;/h2&gt;

&lt;p&gt;If you're a student, this is the real secret sauce of HackLDN or any hackathons in general. There were recruiters on-site who were actually hiring.&lt;/p&gt;

&lt;p&gt;If you're a student, you know the pain: uploading a CV to a portal and never hearing back.&lt;/p&gt;

&lt;p&gt;At HackLDN, I got to bypass the "AI gatekeepers." I met actual recruiters who were hiring. I didn't just "apply", I looked them in the eye, sent them a copy of my CV, and had a real conversation. That 5-minute human interaction is worth 100 LinkedIn "Easy Applies."&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts: Just Go
&lt;/h2&gt;

&lt;p&gt;If you’ve been holding back from your first hackathon/ any other thing in general because you don't think you're "good enough" or can't stay for the full 24 hours just go anyway.&lt;/p&gt;

&lt;p&gt;Show up for Day 1. Grab the stickers. Talk to the sponsors. Meet the MLH reps. Hand over your CV.&lt;/p&gt;

&lt;p&gt;You don't need to pull an all-nighter to jumpstart your career. You just need to be in the room.&lt;/p&gt;

</description>
      <category>hackathon</category>
      <category>mlh</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Suffering from BUGS: How I Almost Deleted My Entire Project</title>
      <dc:creator>Maame Afua A. P. Fordjour </dc:creator>
      <pubDate>Thu, 19 Feb 2026 03:23:34 +0000</pubDate>
      <link>https://dev.to/maame-codes/suffering-from-bugs-how-i-almost-deleted-my-entire-project-1eef</link>
      <guid>https://dev.to/maame-codes/suffering-from-bugs-how-i-almost-deleted-my-entire-project-1eef</guid>
      <description>&lt;p&gt;You know that iconic DJ Khaled album, "Suffering from Success"? The one where he looks overwhelmed by how much he's winning?&lt;/p&gt;

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

&lt;p&gt;Yeah... I &lt;strong&gt;WISH&lt;/strong&gt; that was me.&lt;/p&gt;

&lt;p&gt;For the last 48 hours, I wasn't suffering from success. I was Suffering from Bugs. Specifically, the kind that make you question if you should drop out of Computer Science and just become a farmer instead.&lt;/p&gt;

&lt;p&gt;I spent two days staring at a screen that screamed 500 Internal Server Error and ModuleNotFoundError. I was winning on localhost:3000 (it worked perfectly!), but the moment I tried to deploy? Disaster.&lt;/p&gt;

&lt;p&gt;Here is the story of how I almost deleted my entire project out of frustration, and how I turned a 45-second nightmare into a win&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The "Works on My Machine" Trap
&lt;/h2&gt;

&lt;p&gt;I think everyone who codes in general has faced this trap maybe one too many times in their life. The reason I decided to build this project in the first place was because I have an upcoming quiz worth 30 marks of my final grade in a couple of weeks, and looking at 80+ slide per every week's lecture would be a nightmare for my revision. I do write notes (in my own words for better understanding) but when it gets to the last minute, I still cannot go through all my notes to refresh my memory of 200+ slides or even more for half of my semester. Then I decided to build '&lt;a href="https://slide-sift.vercel.app/" rel="noopener noreferrer"&gt;SlideSift&lt;/a&gt;': Very simple tool that basically summarizes your lecture notes, just for revision.&lt;/p&gt;

&lt;p&gt;Some of us including myself, are slow learners, and I struggle to just read or study something once, for it to stick forever. People with those kind of abilities are so lucky! But if you are like me, this would actually help you in your uni studies. &lt;/p&gt;




&lt;p&gt;I built it using Google Gemini Pro. On my laptop, it was beautiful. It felt like magic.&lt;/p&gt;

&lt;p&gt;But then I tried to deploy it to Render.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Reality Check:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cloud servers are not your laptop. They don't care that "it works for me."&lt;/p&gt;

&lt;p&gt;My &lt;code&gt;requirements.txt&lt;/code&gt; was a mess. The server installed an ancient version of the AI library that didn't even know what "Gemini" was.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson Learned:&lt;/strong&gt; If you don't lock your dependencies (e.g., &lt;code&gt;google-generativeai&amp;gt;=0.8.3&lt;/code&gt;), the cloud will humble you very quickly.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. The 45-Second Awkward Silence
&lt;/h2&gt;

&lt;p&gt;The perfect scenario of how I was feeling whiles waiting for the web app to summarize the notes I uploaded, is very similar to those times when DVD's were a thing, you insert the disc into your DVD player, and sometimes if its corrupt, it shows 'disc error'. Or for my gamers, if any of you ever used the Nintendo GameCube, sometimes when you insert the tiny disc, it takes like 2 mins to load and gives you an error, then while it loads, you pretend to look into the sky so it loads faster... 😂only to receive an error and all you feel is disappointment.&lt;/p&gt;

&lt;p&gt;Anyway, back to the story: &lt;/p&gt;

&lt;p&gt;Once I finally fixed the crash (after what felt like 50 deploys), I hit the next wall: Latency.&lt;/p&gt;

&lt;p&gt;Gemini Pro is smart, but it is slow.&lt;/p&gt;

&lt;p&gt;I would upload a PDF, click "Summarize," and then... wait.&lt;br&gt;
And wait.&lt;br&gt;
And wait.&lt;/p&gt;

&lt;p&gt;It took 45 to 60 seconds to get a response (Honestly speaking I think at a point it took like a solid 3 mins to even end up giving me an error).&lt;/p&gt;

&lt;p&gt;Gemini pro took 45 to 60 seconds to summarize a single PDF. Then I tried to change it to Gemini Flash 1.5, for some weird reason I crashed the app when I used the Flash version, it didn't work at all.&lt;/p&gt;

&lt;p&gt;Imagine showing this to a recruiter:&lt;/p&gt;

&lt;p&gt;Recruiter clicks "Summarize"&lt;br&gt;
... spinner spins ...&lt;br&gt;
... awkward silence ...&lt;br&gt;
... "So, how's the weather?" ...&lt;br&gt;
... still spinning ...&lt;/p&gt;

&lt;p&gt;Or people even using this, with modern technology in 2026, no one would wait 3 mins for a web app to work, let's be honest here. Even me the creator, didn't want to wait that long!&lt;/p&gt;

&lt;p&gt;I hated it. It felt broken. I seriously considered hard-coding a loading message that said: "Go make a coffee, this will take a while."&lt;/p&gt;

&lt;p&gt;This is when the Imposter Syndrome kicked in hard. I thought, "Real engineers build fast apps. I built a loading screen simulator."&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;3. The Pivot: Choosing Speed (Groq)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I realized I didn't have a &lt;strong&gt;Code&lt;/strong&gt; problem; I had an &lt;strong&gt;Architecture&lt;/strong&gt; problem.&lt;/p&gt;

&lt;p&gt;I didn't need the "&lt;strong&gt;smartest&lt;/strong&gt;" model in the world (Gemini Pro) to summarize a PDF. I needed the fastest one.&lt;/p&gt;

&lt;p&gt;I scrapped the Google integration and switched to Groq (running Llama-3).&lt;/p&gt;

&lt;p&gt;Groq is an inference engine designed purely for speed.&lt;/p&gt;

&lt;p&gt;The result?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before&lt;/strong&gt;: &amp;gt; 50 seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After&lt;/strong&gt;: &amp;lt; 30 seconds.&lt;/p&gt;

&lt;p&gt;It was instant. I clicked the button, blinked, and the notes were there. I literally screamed. I had been sitting behind my PC for hours, just surviving on zero sleep, dried mango slices (love them) and iced americano  just to stay awake to make it work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Why I Didn't Quit (The DevOps Mindset)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Well I did almost delete the entire repo and the project itself, because I kept on having so many deployment issues and Render kept on sending these error messages to my mail:&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%2Fwr4h9fwbq0acztb12sv8.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%2Fwr4h9fwbq0acztb12sv8.png" alt="Render Error message" width="800" height="712"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I got almost 20 of these messages and that was the time I almost gave up on this. But when I was staring at those error logs, wanting to delete the repo, I realized something: This IS the job.&lt;/p&gt;

&lt;p&gt;As a CS student, I love writing code. But as an aspiring DevOps engineer, my job isn't just to write code, it's to ship it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Fixing the requirements.txt? That's &lt;strong&gt;Environment Management.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Switching from Gemini to Groq? That's &lt;strong&gt;System Design&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Handling the "Cold Start" on the free tier? That's &lt;strong&gt;Cost Optimization&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Honestly, that's why I am always heavy on building as you learn, because truly, that is the only way to make it stick. If I am to work on another project and face these issues, I would immediately know what to do. Tech is so fascinating, you will lose your mind sometimes but its truly remarkable.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Result
&lt;/h2&gt;

&lt;p&gt;Slide Sift is now live. It turns chaotic lecture slides into pristine study guides instantly.&lt;/p&gt;

&lt;p&gt;Try it here (&lt;a href="https://slide-sift.vercel.app/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;)&lt;br&gt;
(&lt;strong&gt;Note&lt;/strong&gt;: It’s on the free tier, so give it at most 50s to wake up the first time!)&lt;/p&gt;

&lt;p&gt;Check the code on &lt;a href="https://github.com/Maame-codes/slide-sift" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To anyone stuck in "Deployment Hell" right now:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don't delete the repo.&lt;br&gt;
Take a walk. Drink some water/ coffee for my coffee lovers 😉. CRY IF YOU HAVE TO&lt;/p&gt;

&lt;p&gt;The error is probably just a missing environment variable. You got this. 💙&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>devops</category>
      <category>python</category>
      <category>typescript</category>
    </item>
    <item>
      <title>DevOps From Scratch: Entry #04</title>
      <dc:creator>Maame Afua A. P. Fordjour </dc:creator>
      <pubDate>Wed, 18 Feb 2026 15:17:54 +0000</pubDate>
      <link>https://dev.to/maame-codes/devops-from-scratch-entry-04-4f4k</link>
      <guid>https://dev.to/maame-codes/devops-from-scratch-entry-04-4f4k</guid>
      <description>&lt;p&gt;When I first started my Linux journey, I had this image in my head of a dark room, green text scrolling at light speed, and a keyboard-only lifestyle. I thought if I didn't spend every second in a terminal, I wasn't doing it right.&lt;/p&gt;

&lt;p&gt;But as I dug into Chapter 5 of my training (just a reminder that I am using the &lt;a href="https://trainingportal.linuxfoundation.org/courses/introduction-to-linux-lfs101" rel="noopener noreferrer"&gt;Linux Course&lt;/a&gt; from the Linux Foundation (personal preference)), I realized something cool: Linux isn't just a command-line tool. It actually has a very sophisticated graphical side. Learning how the screen you look at actually works—from the login page to the windows you drag around made the whole system feel a lot less intimidating.&lt;/p&gt;




&lt;h2&gt;
  
  
  Here is what I learned about the visual side of Linux.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. The Engine Behind the Screen&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In many operating systems, the desktop is built directly into the core system. In Linux, the graphical interface is more like an "app" that runs on top of everything else. There are two main engines that make this happen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;X Window System (X11):&lt;/strong&gt; This is the old-school veteran. It’s been around for decades. One neat trick it has is the ability to run a program on one computer but show the window on a totally different screen over a network.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Wayland:&lt;/strong&gt; This is the new kid on the block. It’s designed to be faster, smoother, and more secure than X11. Most modern versions of Linux are switching to this now.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Desktop Environments vs. Window Managers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;People often get these confused, but they do different jobs:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Window Manager:&lt;/strong&gt; This is a small program that handles just the basics—the borders of your windows, the buttons to close or minimize them, and moving them around.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Desktop Environment:&lt;/strong&gt; This is the whole package. It includes the window manager plus the taskbar, the file folders, the settings menu, and even the wallpaper.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GNOME&lt;/strong&gt;: Very clean and modern. It’s what you usually see on Ubuntu.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KDE Plasma&lt;/strong&gt;: If you are moving from Windows, this will feel very familiar. It is super easy to customize.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;XFCE&lt;/strong&gt;: This is great if you have an older laptop because it doesn't use much power or memory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The Login Gatekeeper&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That screen where you type your password when you first turn on the computer? That is called a Display Manager. Its only job is to check who you are and then start up your favorite desktop environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. The Magic Escape Hatch (TTY)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is probably the coolest pro tip I found. If your screen ever freezes and your mouse won't move, you aren't stuck! Linux has hidden text-only screens called &lt;strong&gt;Virtual Consoles&lt;/strong&gt; or TTYs.&lt;/p&gt;

&lt;p&gt;You can jump between them using keyboard shortcuts:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + Alt + F3&lt;/code&gt; (&lt;strong&gt;through F6&lt;/strong&gt;): These take you to a purely black-and-white text screen. You can log in here and fix things using commands if the visual part of the computer breaks.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + Alt + F2&lt;/code&gt; (&lt;strong&gt;or F1&lt;/strong&gt;): This usually jumps you right back to your normal desktop.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Learn This for DevOps?
&lt;/h2&gt;

&lt;p&gt;You might wonder why a DevOps student needs to care about desktop icons. Even though most servers we manage don't have a screen at all, knowing how these layers work is helpful. It helps you set up your own laptop for work and understand how to "forward" a visual app from a server to your own computer when you need to run a specific tool. And also I have a strong believe that it is always good to master the basics (foundations) of anything you want to learn deeply. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.S&lt;/strong&gt; for my flash card buddies, I updated &lt;a href="https://flashy-memorizer.vercel.app/" rel="noopener noreferrer"&gt;Flashy&lt;/a&gt;,  just to refresh your memory :)&lt;/p&gt;

</description>
      <category>devops</category>
      <category>linux</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
