<?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>Forem: Bek Brace</title>
    <description>The latest articles on Forem by Bek Brace (@bekbrace).</description>
    <link>https://forem.com/bekbrace</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%2F351271%2Fa78d9f63-7ca3-49fe-9510-94c85608d344.png</url>
      <title>Forem: Bek Brace</title>
      <link>https://forem.com/bekbrace</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/bekbrace"/>
    <language>en</language>
    <item>
      <title>Rediscovering the Joy of Coding — Writing My First Real Program in Pascal</title>
      <dc:creator>Bek Brace</dc:creator>
      <pubDate>Sun, 16 Nov 2025 16:36:57 +0000</pubDate>
      <link>https://forem.com/bekbrace/rediscovering-the-joy-of-coding-writing-my-first-real-program-in-pascal-3d65</link>
      <guid>https://forem.com/bekbrace/rediscovering-the-joy-of-coding-writing-my-first-real-program-in-pascal-3d65</guid>
      <description>&lt;h1&gt;
  
  
  Rediscovering the Joy of Coding --- Writing My First Real Program in Pascal
&lt;/h1&gt;

&lt;p&gt;There's something magical about going back to the roots.&lt;/p&gt;

&lt;p&gt;Hey everyone, Bek here !&lt;/p&gt;

&lt;p&gt;As a programmer, I've spent years bouncing between Python, Rust, Go, C#,&lt;br&gt;
JavaScript [when i was a kid in the 80s, it used to be Basic only, on every C64 and Atari] ... the usual modern toolbox. But recently, I felt like&lt;br&gt;
something was missing. I missed that feeling I had as a kid --- typing&lt;br&gt;
code, watching characters move on a screen, feeling like I was building&lt;br&gt;
something with my own hands instead of scaffolding another framework.&lt;/p&gt;

&lt;p&gt;So I did something unexpected.&lt;/p&gt;

&lt;p&gt;I went back to &lt;strong&gt;Pascal&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why Pascal?
&lt;/h2&gt;

&lt;p&gt;Pascal feels like the programming equivalent of a freshly cleaned desk:&lt;br&gt;
simple, organized, no nonsense.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  The syntax is easy to memorize\&lt;/li&gt;
&lt;li&gt;  It's incredibly readable\&lt;/li&gt;
&lt;li&gt;  It forces you to think clearly\&lt;/li&gt;
&lt;li&gt;  And it gives you this warm, retro "I'm actually writing a program"
feeling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Writing Pascal makes me feel like a programmer again --- not just a&lt;br&gt;
framework technician bouncing between APIs and config files.&lt;/p&gt;
&lt;h2&gt;
  
  
  The "Health Checker" Program --- My First Small Project
&lt;/h2&gt;

&lt;p&gt;Before diving into anything big, I wanted a simple project that still&lt;br&gt;
&lt;em&gt;does something&lt;/em&gt;: a tiny health checker that calculates BMI and prints a&lt;br&gt;
result.&lt;/p&gt;

&lt;p&gt;It was such a small program... but writing it in Pascal was &lt;strong&gt;fun&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;No fighting the language.\&lt;br&gt;
No hunting for libraries.\&lt;br&gt;
No distracting boilerplate.&lt;/p&gt;

&lt;p&gt;Just clean structure and pure logic.&lt;/p&gt;
&lt;h2&gt;
  
  
  Then I Wrote Something Bigger: RetroJournal
&lt;/h2&gt;

&lt;p&gt;After the health checker, I decided to stretch Pascal a bit --- just&lt;br&gt;
enough to make something playful.&lt;/p&gt;

&lt;p&gt;I created a full &lt;strong&gt;Retro Journal System&lt;/strong&gt; with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  A fake boot sequence\&lt;/li&gt;
&lt;li&gt;  A menu\&lt;/li&gt;
&lt;li&gt;  A file-based journal\&lt;/li&gt;
&lt;li&gt;  Search functionality\&lt;/li&gt;
&lt;li&gt;  Statistics\&lt;/li&gt;
&lt;li&gt;  Retro green terminal vibes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's one of those tiny programs that reminds you why you started coding&lt;br&gt;
in the first place.&lt;/p&gt;
&lt;h2&gt;
  
  
  Video Tutorial
&lt;/h2&gt;

&lt;p&gt;

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


&lt;/p&gt;

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

&lt;p&gt;This Pascal adventure reminded me of something important:\&lt;br&gt;
&lt;strong&gt;Programming is supposed to be fun.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not stressful.\&lt;br&gt;
Not competitive.\&lt;br&gt;
Not a race to learn the latest tool.&lt;/p&gt;

&lt;p&gt;Just fun.&lt;/p&gt;

&lt;p&gt;And Pascal --- with its simple structure and old-school charm ---&lt;br&gt;
brought that feeling back for me.&lt;/p&gt;

&lt;p&gt;If you've been feeling burned out or nostalgic, try writing a tiny&lt;br&gt;
Pascal program.\&lt;br&gt;
You might surprise yourself.&lt;/p&gt;

</description>
      <category>pascal</category>
      <category>weeklyretro</category>
      <category>cli</category>
      <category>programming</category>
    </item>
    <item>
      <title>Git and GitHub setup for Linux and Windows | Full Guide.</title>
      <dc:creator>Bek Brace</dc:creator>
      <pubDate>Sat, 15 Nov 2025 18:03:43 +0000</pubDate>
      <link>https://forem.com/bekbrace/git-and-github-setup-for-linux-and-windows-full-guide-73</link>
      <guid>https://forem.com/bekbrace/git-and-github-setup-for-linux-and-windows-full-guide-73</guid>
      <description>&lt;p&gt;Every time I have a new machine, I need to configure a bunch of stuff, including Git, and I wanted to leave a manual for Linux and Windows users on how to properly connect Git on your machine with GitHub.&lt;br&gt;
Hopefully,this will help.&lt;/p&gt;

&lt;h1&gt;
  
  
  Setting Up Git + SSH From Scratch on Linux (Debian/Ubuntu) and Windows (Git Bash) --- A Complete Beginner-Friendly Guide
&lt;/h1&gt;

&lt;p&gt;Whether you're starting your coding journey or setting up a fresh&lt;br&gt;
machine, configuring Git with SSH is essential. This guide covers a&lt;br&gt;
clean setup on &lt;strong&gt;Linux (Debian-based)&lt;/strong&gt; and &lt;strong&gt;Windows (Git Bash)&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔧 Part 1 --- Install Git
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🟦 Linux (Debian/Ubuntu)
&lt;/h3&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="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;git
git &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🟦 Windows (Git Bash)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; Download Git from &lt;a href="https://git-scm.com/install/windows" rel="noopener noreferrer"&gt;https://git-scm.com/install/windows&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; Run installer with default settings\&lt;/li&gt;
&lt;li&gt; Verify:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  👤 Part 2 --- Configure Git (Name + Email)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"you@example.com"&lt;/span&gt;
git config &lt;span class="nt"&gt;--list&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🔐 Part 3 --- Generate an SSH Key
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Linux
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/.ssh
&lt;span class="nb"&gt;chmod &lt;/span&gt;700 ~/.ssh
ssh-keygen &lt;span class="nt"&gt;-t&lt;/span&gt; ed25519 &lt;span class="nt"&gt;-C&lt;/span&gt; &lt;span class="s2"&gt;"your_email@example.com"&lt;/span&gt;
&lt;span class="nb"&gt;eval&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;ssh-agent &lt;span class="nt"&gt;-s&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
ssh-add ~/.ssh/id_ed25519
&lt;span class="nb"&gt;cat&lt;/span&gt; ~/.ssh/id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Windows (Git Bash)
&lt;/h3&gt;

&lt;p&gt;Same commands as Linux.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Part 4 --- Add the Key to GitHub
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; Copy output from:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!-- --&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cat ~/.ssh/id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt; GitHub → Settings → SSH and GPG keys → New SSH key\&lt;/li&gt;
&lt;li&gt; Paste and save&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🧪 Part 5 --- Test the Connection
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh &lt;span class="nt"&gt;-T&lt;/span&gt; git@github.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📦 Part 6 --- Create Your First Repository
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;myproject
&lt;span class="nb"&gt;cd &lt;/span&gt;myproject
git init
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Hello Git"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; readme.txt
git add readme.txt
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Initial commit"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🚀 Part 7 --- Push to GitHub
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote add origin git@github.com:USERNAME/REPO.git
git branch &lt;span class="nt"&gt;-M&lt;/span&gt; main
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;With Git + SSH configured, pushing to GitHub becomes effortless and&lt;br&gt;
secure.&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>githubactions</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Monads in Haskell</title>
      <dc:creator>Bek Brace</dc:creator>
      <pubDate>Sun, 09 Nov 2025 16:51:22 +0000</pubDate>
      <link>https://forem.com/bekbrace/monads-in-haskell-1p8i</link>
      <guid>https://forem.com/bekbrace/monads-in-haskell-1p8i</guid>
      <description>&lt;p&gt;Monads...&lt;br&gt;
Yeah, I know — it sounds weird the first time you hear it. When I first started learning Haskell about three years ago, the word itself felt mysterious, almost intimidating. Even in my free YouTube course, I don’t think I ever explained it in a way that truly clicked for everyone.&lt;/p&gt;

&lt;p&gt;So this time, I wanted to fix that.&lt;/p&gt;

&lt;p&gt;In this video and article, I’ll walk you through what Monads actually are — but not by dropping the term on you out of nowhere. We’ll start from the ground up: Functors, then Applicatives, and only then arrive at Monads.&lt;br&gt;
Each step builds naturally on the one before it — and once you see the pattern, it stops being abstract and starts to make sense.&lt;/p&gt;

&lt;p&gt;Step 1 — Functors: applying a function inside something&lt;/p&gt;

&lt;p&gt;A Functor is any type that can be “mapped over.”&lt;/p&gt;

&lt;p&gt;You already know this idea from other languages:&lt;br&gt;
In Python, you’d do [x * 2 for x in numbers].&lt;br&gt;
In Haskell, it’s fmap (*2) (Just 10) → which gives Just 20.&lt;/p&gt;

&lt;p&gt;The wrapper (Maybe) stays the same — you just apply a function inside it.&lt;br&gt;
That’s all a Functor is: a context you can apply a function to, without unwrapping it.&lt;/p&gt;

&lt;p&gt;Step 2 — Applicatives: applying a wrapped function to a wrapped value&lt;/p&gt;

&lt;p&gt;Applicatives go one step further.&lt;br&gt;
Imagine having both the function and the value wrapped:&lt;br&gt;
Just (&lt;em&gt;2) &amp;lt;&lt;/em&gt;&amp;gt; Just 10 → gives Just 20.&lt;/p&gt;

&lt;p&gt;It’s basically saying:&lt;/p&gt;

&lt;p&gt;“I’ve got a boxed function and a boxed value. Apply one to the other.”&lt;/p&gt;

&lt;p&gt;And when something’s missing (Nothing), the whole thing fails gracefully.&lt;br&gt;
Applicative also gives us pure, which just lifts a plain value into a context, like:&lt;br&gt;
pure 5 → Just 5.&lt;/p&gt;

&lt;p&gt;Step 3 — Monads: chaining things that return wrapped results&lt;/p&gt;

&lt;p&gt;Now comes the big one — Monads.&lt;br&gt;
They let you chain functions that each return their own wrapped result.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;safeDivide :: Float -&amp;gt; Float -&amp;gt; Maybe Float&lt;br&gt;
safeDivide _ 0 = Nothing&lt;br&gt;
safeDivide x y = Just (x / y)&lt;/p&gt;

&lt;p&gt;Using the “bind” operator (&amp;gt;&amp;gt;=), we can write:&lt;/p&gt;

&lt;p&gt;Just 100 &amp;gt;&amp;gt;= (\x -&amp;gt; safeDivide x 2) &amp;gt;&amp;gt;= (\y -&amp;gt; safeDivide y 5)&lt;br&gt;
-- Just 10.0&lt;/p&gt;

&lt;p&gt;If any step returns Nothing, the whole chain stops.&lt;br&gt;
So Monads are basically a clean, composable way to handle context — whether that’s “might fail,” “has side effects,” or “depends on previous results.”&lt;/p&gt;

&lt;p&gt;And if you prefer cleaner syntax, do notation does the same thing with less noise.&lt;/p&gt;

&lt;p&gt;Wrapping up&lt;/p&gt;

&lt;p&gt;Functor → apply a function inside a context&lt;/p&gt;

&lt;p&gt;Applicative → apply a wrapped function to a wrapped value&lt;/p&gt;

&lt;p&gt;Monad → chain functions that return wrapped values&lt;/p&gt;

&lt;p&gt;That’s it — the scary word hides a very simple pattern.&lt;/p&gt;

&lt;p&gt;You’ll see it everywhere in Haskell: Maybe, IO, Either, List — all of them are Monads. Once you understand one, you’ve got them all.&lt;/p&gt;

&lt;p&gt;If you want to see this concept click into place, check out the full video — I walk through everything live in GHCi with examples and visuals.&lt;br&gt;


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


&lt;/p&gt;

</description>
      <category>haskell</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>I used Python to Analyze Customer Payment Behavior</title>
      <dc:creator>Bek Brace</dc:creator>
      <pubDate>Sun, 21 Sep 2025 16:43:22 +0000</pubDate>
      <link>https://forem.com/bekbrace/i-used-python-to-analyze-customer-payment-behavior-1dh</link>
      <guid>https://forem.com/bekbrace/i-used-python-to-analyze-customer-payment-behavior-1dh</guid>
      <description>&lt;p&gt;As a Credit Manager / Analyst, a big part of my role is to conduct monthly or semi-monthly calls with management, explaining the payment status of our customers. It's crucial for management to understand who’s paying on time, who’s late, and why.&lt;/p&gt;

&lt;p&gt;In the past, I relied on VBA macros to automate some reporting tasks. While these macros served their purpose, I wanted something more powerful and flexible—something that could not only help me but also anyone else who wants to analyze customer payment behavior efficiently.&lt;/p&gt;

&lt;h1&gt;
  
  
  Building a Python Tool for Payment Analysis
&lt;/h1&gt;

&lt;p&gt;I started by creating a Python application that can analyze top overdue companies, identifying those who haven’t paid and the reasons behind it. The goal was to provide clear insights in a way that’s both practical and actionable for management.&lt;/p&gt;

&lt;p&gt;But I didn’t stop there. I wanted to take it a step further.&lt;/p&gt;

&lt;h1&gt;
  
  
  Predicting Late Payments with Machine Learning
&lt;/h1&gt;

&lt;p&gt;Complementing the overdue analysis, I built a predictive model to anticipate which customers might delay payments in the future. This is incredibly important—arguably crucial—for management to plan cash flows, allocate resources, and proactively address potential issues.&lt;/p&gt;

&lt;p&gt;By combining Python analytics with machine learning predictions, this tool goes beyond reporting: it provides foresight into customer behavior, helping management make more informed decisions.&lt;/p&gt;

&lt;h1&gt;
  
  
  Check It Out
&lt;/h1&gt;

&lt;p&gt;I’ve shared the full project on GitHub, along with a video where I walk through the tool in great detail, explaining both the code and the thought process behind it:&lt;/p&gt;

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/BekBrace/customer-payment-analysis" rel="noopener noreferrer"&gt;https://github.com/BekBrace/customer-payment-analysis&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Video Walkthrough:   &lt;iframe src="https://www.youtube.com/embed/-tx-HvVq9h0"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;So, whether you’re a process lead, team lead, , data enthusiast, or Python developer, I think that this project can show how you can combine analytics and machine learning to turn raw data into actionable insights. Cheers - &lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>code</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>All I need is ... the laptop screen!</title>
      <dc:creator>Bek Brace</dc:creator>
      <pubDate>Fri, 19 Sep 2025 06:00:53 +0000</pubDate>
      <link>https://forem.com/bekbrace/all-i-need-is-the-laptop-screen-4kfn</link>
      <guid>https://forem.com/bekbrace/all-i-need-is-the-laptop-screen-4kfn</guid>
      <description>&lt;p&gt;Why I Ditched the Second Monitor&lt;/p&gt;

&lt;p&gt;What follows is purely personal—your setup might be perfect for you. But if any of this resonates, I’d be glad.&lt;/p&gt;

&lt;p&gt;My studio is a 30-square-meter space in the heart of Łódź, Poland. For five years I’ve been building projects, recording tutorials, and designing courses with a big external monitor paired to my laptop. It felt efficient—until I noticed something odd.&lt;/p&gt;

&lt;p&gt;I wasn’t coding so much as transcribing. I’d park my script or reference code on the second screen and spend entire sessions swivelling my head left to right thirty-plus times a minute, copying line after line. If that second screen went dark, I’d panic. My own thinking slowed.&lt;/p&gt;

&lt;p&gt;The dependence started to feel like the way we lean on AI tools. A calculator helps with a complex equation, sure, but it doesn’t replace understanding. ChatGPT can be a spark, not a stand-in. My extra monitor had become a stand-in.&lt;/p&gt;

&lt;p&gt;Last week I unplugged it. Now it’s just me and the laptop. Notes live on an iPad or a sheet of paper when I need them. And something shifted: I write from memory, plan in my head, and feel my brain working instead of my eyes darting. The simple act of getting stuck—sitting with a problem—feels good again.&lt;/p&gt;

&lt;p&gt;This isn’t the first time I’ve been reminded that the hard way matters. From 2009 to 2011 I worked for a Japanese company in Algeria. One day I made a tiny mistake—an extra dot on a document. My manager, Yuki Takahashi (“Yuki” means snow in Japanese), looked at me and said:&lt;/p&gt;

&lt;p&gt;“Amir-san, don’t take the easy way. Perfect what you can. The easy way is bad; the hard way pays off.”&lt;/p&gt;

&lt;p&gt;Those words never left me. Shortcuts can feed you like junk food: satisfying now, costly later.&lt;/p&gt;

&lt;p&gt;So here I am, back to a single screen. It’s slower, and that’s the point.&lt;/p&gt;

&lt;p&gt;How about you? Do you thrive with a wall of monitors, or does less help you think more?&lt;/p&gt;

&lt;p&gt;Thanks for reading—stay safe, and see you next time.&lt;/p&gt;

&lt;p&gt;Get in touch:&lt;br&gt;
X -&amp;gt; &lt;a href="https://x.com/BekBrace" rel="noopener noreferrer"&gt;https://x.com/BekBrace&lt;/a&gt;&lt;br&gt;
YT -&amp;gt; &lt;a href="https://www.youtube.com/@BekBrace" rel="noopener noreferrer"&gt;https://www.youtube.com/@BekBrace&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>The thing is ... I love programming !</title>
      <dc:creator>Bek Brace</dc:creator>
      <pubDate>Wed, 10 Sep 2025 16:56:49 +0000</pubDate>
      <link>https://forem.com/bekbrace/the-thing-is-i-love-programming--49m8</link>
      <guid>https://forem.com/bekbrace/the-thing-is-i-love-programming--49m8</guid>
      <description>&lt;p&gt;I live in Poland, and there are 60,000 tech companies in Poland, including about ten "unicorns" (private companies valued at over $1 billion).&lt;br&gt;
After several months since the so-called "AI drama," and after watching how 37% of Polish companies reported laying off staff after implementing AI or automation in the past year, and managed to eliminate nearly 27% of tech jobs in the United States between 2021 and 2024, I’ve come to a personal conclusion: I love programming too much to let any of that truly matter. Whether Mr. AI exists or not is irrelevant to me.&lt;/p&gt;

&lt;p&gt;The truth is, it doesn’t make much of a difference if AI takes over jobs across the globe. My love for coding is not rooted in competition, productivity, or even recognition. It’s rooted in the art itself—the beauty of constructing something from nothing, of breathing logic and structure into a blank file until it becomes a living, functioning piece of software. I don’t care if AI systems like ChatGPT, Windsurf, or whatever comes next can do it a hundred times faster and a thousand times better. That’s not the point for me.&lt;/p&gt;

&lt;p&gt;For me, engaging in the act of programming—whether it’s building an automation tool, experimenting with machine learning, or simply writing a script that saves me five minutes a day—is one of the purest forms of creation I know. It is, in its own way, a form of poetry made of logic, structure, and imagination. I’d even go so far as to say: even if nobody ever saw it, used it, or appreciated it, the act of creating it would still be worth every second.&lt;/p&gt;

&lt;p&gt;Because at the end of the day, programming is not just about utility or outcomes—it’s about expression. Just as a painter doesn’t abandon their brush because a printer can reproduce images more accurately, I won’t abandon code simply because AI can generate it faster. For me, it’s not about being the best or the fastest; it’s about being in love with the craft itself.&lt;/p&gt;

&lt;p&gt;And maybe, in a world where machines increasingly take center stage, holding on to that human passion—our irrational love for doing something simply because it feels right—is more important than ever.&lt;/p&gt;

&lt;p&gt;Get in touch:&lt;br&gt;
X -&amp;gt; &lt;a href="https://x.com/BekBrace" rel="noopener noreferrer"&gt;https://x.com/BekBrace&lt;/a&gt;&lt;br&gt;
YT -&amp;gt; &lt;a href="https://www.youtube.com/@BekBrace" rel="noopener noreferrer"&gt;https://www.youtube.com/@BekBrace&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>coding</category>
      <category>ai</category>
    </item>
    <item>
      <title>why do developers leave coding today altogether ?</title>
      <dc:creator>Bek Brace</dc:creator>
      <pubDate>Sat, 30 Aug 2025 14:43:08 +0000</pubDate>
      <link>https://forem.com/bekbrace/why-do-developers-leave-coding-today-altogether--2f56</link>
      <guid>https://forem.com/bekbrace/why-do-developers-leave-coding-today-altogether--2f56</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/bekbrace/why-do-they-quit-coding--56eo" class="crayons-story__hidden-navigation-link"&gt;Why do they quit coding ?&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&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="/bekbrace" 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%2F351271%2Fa78d9f63-7ca3-49fe-9510-94c85608d344.png" alt="bekbrace profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/bekbrace" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Bek Brace
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Bek Brace
                
              
              &lt;div id="story-author-preview-content-2809102" 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="/bekbrace" 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%2F351271%2Fa78d9f63-7ca3-49fe-9510-94c85608d344.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Bek Brace&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/bekbrace/why-do-they-quit-coding--56eo" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 30 '25&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/bekbrace/why-do-they-quit-coding--56eo" id="article-link-2809102"&gt;
          Why do they quit coding ?
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/coding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;coding&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/chatgpt"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;chatgpt&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&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/bekbrace/why-do-they-quit-coding--56eo" 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/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.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;26&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/bekbrace/why-do-they-quit-coding--56eo#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              9&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;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

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

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

&lt;/div&gt;


</description>
      <category>coding</category>
      <category>chatgpt</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Bek Brace</dc:creator>
      <pubDate>Sat, 30 Aug 2025 14:42:36 +0000</pubDate>
      <link>https://forem.com/bekbrace/-51m9</link>
      <guid>https://forem.com/bekbrace/-51m9</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/bekbrace/why-do-they-quit-coding--56eo" class="crayons-story__hidden-navigation-link"&gt;Why do they quit coding ?&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&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="/bekbrace" 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%2F351271%2Fa78d9f63-7ca3-49fe-9510-94c85608d344.png" alt="bekbrace profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/bekbrace" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Bek Brace
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Bek Brace
                
              
              &lt;div id="story-author-preview-content-2809102" 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="/bekbrace" 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%2F351271%2Fa78d9f63-7ca3-49fe-9510-94c85608d344.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Bek Brace&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/bekbrace/why-do-they-quit-coding--56eo" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 30 '25&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/bekbrace/why-do-they-quit-coding--56eo" id="article-link-2809102"&gt;
          Why do they quit coding ?
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/coding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;coding&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/chatgpt"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;chatgpt&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&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/bekbrace/why-do-they-quit-coding--56eo" 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/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.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;26&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/bekbrace/why-do-they-quit-coding--56eo#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              9&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;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

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

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

&lt;/div&gt;


</description>
      <category>coding</category>
      <category>chatgpt</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why do they quit coding ?</title>
      <dc:creator>Bek Brace</dc:creator>
      <pubDate>Sat, 30 Aug 2025 09:10:41 +0000</pubDate>
      <link>https://forem.com/bekbrace/why-do-they-quit-coding--56eo</link>
      <guid>https://forem.com/bekbrace/why-do-they-quit-coding--56eo</guid>
      <description>&lt;p&gt;This is a question I’ve been wrestling with for a while—and at some point, I realized I’d already fallen into the trap myself. The AI trap. It’s one of the biggest reasons so many programmers, YouTube coders, and young startups eventually give up on learning, teaching, or even building.&lt;/p&gt;

&lt;p&gt;I’m guilty too. I nearly broke my neck from the fall when I first tried tools like Windsurf. You just type what you need in plain English, wait while it generates the code, and every now and then it asks you to approve a feature or a README description. In fifteen minutes, I built something that would have taken me days, maybe weeks, to craft by hand.&lt;/p&gt;

&lt;p&gt;So why bother anymore? Why sit down for hours writing an application from scratch—whether for practice, for teaching, or for your colleagues—when the machine can do it in a fraction of the time?&lt;/p&gt;

&lt;p&gt;There was a feeling of pride in writing it yourself. Not completely pure pride, since we all used Stack Overflow, trading knowledge with other devs, learning and sharing in the process. That was before ChatGPT, at least. Back then, showing your friends a small app you made to remind you of birthdays or send SMS alerts felt like something. Now? With ChatGPT, Windsurf, Cursor… not so much.&lt;/p&gt;

&lt;p&gt;And let’s be honest—how much money is really in it? Do you make a fortune as a software engineer, a programming tutor, or a network architect? Some do. Many don’t. My YouTube channel has 40,000 subs, but views have dropped hard. I barely make $100 a month from it now. Sure, others might pull in $500 to $10K, but is it worth it? And was money ever the reason you started?&lt;/p&gt;

&lt;p&gt;Here’s where I stand: programming (not just coding—two very different things) isn’t dead, no matter how many times you’ve heard that over the last couple of years. What’s true is that AI is now a core part of software engineering. The trick is not to depend on it blindly, but to work with it. Partner with the tools. Don’t make them build everything from A to Z. Treat them like an apprentice. Show them what you want to achieve in a code block, or ask them to add something you don’t know how to execute yet. That’s the sweet spot.&lt;/p&gt;

&lt;p&gt;In the video, I share the views of Nick White, a programming YouTuber who quit coding. For the most part, I agree with his reasons. I’ve dropped hints here and there about my own views on programming tutoring, but I haven’t spoken openly—at least not yet.&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Cn5vW4gwE5A"&gt;
&lt;/iframe&gt;
&lt;br&gt;
So what do you think?&lt;/p&gt;

&lt;p&gt;You can reach me on X &amp;gt;&amp;gt;&amp;gt; &lt;a href="https://x.com/bekbrace" rel="noopener noreferrer"&gt;https://x.com/bekbrace&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading. I’m looking forward to hearing your thoughts on this.&lt;/p&gt;

</description>
      <category>coding</category>
      <category>chatgpt</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Building a Mental Health Predictor with Machine Learning and FastAPI</title>
      <dc:creator>Bek Brace</dc:creator>
      <pubDate>Tue, 19 Aug 2025 12:48:47 +0000</pubDate>
      <link>https://forem.com/bekbrace/building-a-mental-health-predictor-with-machine-learning-and-fastapi-3g9n</link>
      <guid>https://forem.com/bekbrace/building-a-mental-health-predictor-with-machine-learning-and-fastapi-3g9n</guid>
      <description>&lt;p&gt;Hey everyone, welcome back! If you’ve been following along with my YouTube channel, you’ll know that in the last video I gave a quick demo of a &lt;strong&gt;Mental Health Predictor Machine Learning Project&lt;/strong&gt;. Today, we’re taking it from idea to code — step by step.  &lt;/p&gt;

&lt;p&gt;Grab a cup of coffee, fire up your code editor (VS Code in my case), and let’s dive in.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;iframe width="710" height="399" src="https://www.youtube.com/embed/xj7nmKIlJSM"&gt;
&lt;/iframe&gt;

&lt;/h2&gt;

&lt;h2&gt;
  
  
  Project Setup
&lt;/h2&gt;

&lt;p&gt;We’ll start by creating a folder for our project. I named mine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MHP-ML
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside this folder, we’ll also set up a &lt;code&gt;requirements.txt&lt;/code&gt; file to track our dependencies.  &lt;/p&gt;

&lt;p&gt;On &lt;strong&gt;Linux/Mac&lt;/strong&gt;, you’d usually use the &lt;code&gt;touch&lt;/code&gt; command to create files.&lt;br&gt;&lt;br&gt;
On &lt;strong&gt;Windows&lt;/strong&gt;, you can use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;New-Item&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;requirements.txt&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Installing Dependencies
&lt;/h2&gt;

&lt;p&gt;Here’s what we’ll need for this project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI&lt;/strong&gt; – our backend framework (&lt;code&gt;0.105.4.1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uvicorn&lt;/strong&gt; – the ASGI server to run FastAPI (&lt;code&gt;0.24.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; – for the front-end interface&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pandas&lt;/strong&gt; – data handling (&lt;code&gt;1.3.x&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scikit-learn&lt;/strong&gt; – machine learning (&lt;code&gt;1.3.2&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NumPy&lt;/strong&gt; – numerical computations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLAlchemy&lt;/strong&gt; – ORM for database handling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; – lightweight database for storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python-multipart&lt;/strong&gt; – for form data handling in FastAPI
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the &lt;code&gt;requirements.txt&lt;/code&gt; is ready, we’ll install everything inside a &lt;strong&gt;virtual environment&lt;/strong&gt;.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Why a virtual environment?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
It isolates the project dependencies so they don’t conflict with other Python projects on your machine. In JavaScript, this happens automatically with &lt;code&gt;node_modules&lt;/code&gt;, but in Python we handle it explicitly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To activate the environment with &lt;code&gt;pipenv&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pipenv shell
pipenv &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Project Structure
&lt;/h2&gt;

&lt;p&gt;Here’s a clean project layout:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MHP-ML/
│── requirements.txt
│── main.py
│── models.py
│── source/
    │── app.py       # FastAPI backend
    │── frontend.py  # Streamlit frontend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main.py&lt;/code&gt; → Entry point for the app, runs the FastAPI server
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;models.py&lt;/code&gt; → Database models with SQLAlchemy
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;app.py&lt;/code&gt; → FastAPI routes (backend logic)
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;frontend.py&lt;/code&gt; → Streamlit interface
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  main.py (Entry Point)
&lt;/h2&gt;

&lt;p&gt;This file is short and simple. We run our FastAPI application with &lt;strong&gt;Uvicorn&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;uvicorn&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;uvicorn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;source.app:app&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0.0.0.0&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;reload&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here’s what happens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;"source.app:app"&lt;/code&gt; → Tells Uvicorn to look for &lt;code&gt;app&lt;/code&gt; inside &lt;code&gt;source/app.py&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;host="0.0.0.0"&lt;/code&gt; → Makes it accessible from your network
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;port=8000&lt;/code&gt; → Default port
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;reload=True&lt;/code&gt; → Auto-restarts the server on code changes (great for development)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Setting Up the Database (models.py)
&lt;/h2&gt;

&lt;p&gt;We’ll use &lt;strong&gt;SQLAlchemy + SQLite&lt;/strong&gt; for simplicity. This will allow us to store both &lt;strong&gt;user inputs&lt;/strong&gt; and the &lt;strong&gt;predictions&lt;/strong&gt; generated by our ML model.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;sqlalchemy&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;DateTime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;create_engine&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;sqlalchemy.orm&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;declarative_base&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sessionmaker&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;

&lt;span class="c1"&gt;# Base class for our models
&lt;/span&gt;&lt;span class="n"&gt;Base&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;declarative_base&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Database engine (SQLite local file)
&lt;/span&gt;&lt;span class="n"&gt;engine&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;create_engine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sqlite:///health_predictions.db&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Session maker
&lt;/span&gt;&lt;span class="n"&gt;SessionLocal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sessionmaker&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bind&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;engine&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;autocommit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;autoflush&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Example table
&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;HealthData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Base&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;__tablename__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;health_data&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

    &lt;span class="nb"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;primary_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;user_input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nullable&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;prediction&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nullable&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;created_at&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DateTime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;utcnow&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This sets up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;code&gt;health_data&lt;/code&gt; table
&lt;/li&gt;
&lt;li&gt;Primary key &lt;code&gt;id&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;user_input&lt;/code&gt; and &lt;code&gt;prediction&lt;/code&gt; columns
&lt;/li&gt;
&lt;li&gt;A timestamp for when the record was created
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;With the foundation laid out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend (FastAPI)&lt;/strong&gt; will handle API requests
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend (Streamlit)&lt;/strong&gt; will let users interact with the model
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Machine Learning model&lt;/strong&gt; will be integrated using Scikit-learn
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the next part, we’ll connect the dots: load a trained ML model, pass inputs from Streamlit to FastAPI, and store predictions in the database.&lt;/p&gt;




&lt;h2&gt;
  
  
  GitHub Repo
&lt;/h2&gt;

&lt;p&gt;The full code for this tutorial is available on &lt;a href="https://github.com/BekBrace/ML-MentalHealth-Predicator" rel="noopener noreferrer"&gt;https://github.com/BekBrace/ML-MentalHealth-Predicator&lt;/a&gt; . Feel free to clone it, experiment, and customize it however you like.&lt;/p&gt;




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

&lt;p&gt;This project combines multiple layers of modern Python development:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web APIs with FastAPI
&lt;/li&gt;
&lt;li&gt;Interactive dashboards with Streamlit
&lt;/li&gt;
&lt;li&gt;Databases with SQLAlchemy + SQLite
&lt;/li&gt;
&lt;li&gt;Machine learning with Scikit-learn
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s a practical way to learn how all these pieces fit together into a real-world application.  &lt;/p&gt;

</description>
      <category>fastapi</category>
      <category>python</category>
      <category>machinelearning</category>
      <category>datascience</category>
    </item>
    <item>
      <title>GO Full Course</title>
      <dc:creator>Bek Brace</dc:creator>
      <pubDate>Thu, 27 Mar 2025 19:16:38 +0000</pubDate>
      <link>https://forem.com/bekbrace/go-full-course-46dk</link>
      <guid>https://forem.com/bekbrace/go-full-course-46dk</guid>
      <description>&lt;p&gt;Hey everyone,&lt;/p&gt;

&lt;p&gt;I'm thrilled to announce the launch of my brand-new Go programming full course on YouTube! 🎉&lt;/p&gt;

&lt;p&gt;Go Version&lt;/p&gt;

&lt;p&gt;I am using Go Version 1.22.&lt;/p&gt;

&lt;p&gt;About Me&lt;/p&gt;

&lt;p&gt;For those who don't know me, I'm Amir, a passionate software developer and educator who loves diving into new programming languages and sharing my knowledge with the community. Over the past few months, I've been working hard on creating a comprehensive Go course that will take you from a complete beginner to a confident Go developer.&lt;/p&gt;

&lt;p&gt;Why Learn Go?&lt;/p&gt;

&lt;p&gt;Go (or Golang) is an amazing language known for its simplicity, performance, and powerful concurrency model. It's widely used for backend development, cloud computing, networking, and more. Learning Go can open up many opportunities, and this course is designed to make the process smooth and enjoyable for you.&lt;/p&gt;

&lt;p&gt;What You’ll Learn&lt;/p&gt;

&lt;p&gt;✅ Detailed explanations of Go’s core concepts&lt;/p&gt;

&lt;p&gt;✅ Hands-on coding examples to reinforce learning&lt;/p&gt;

&lt;p&gt;✅ Best practices and tips to write clean and efficient Go code&lt;/p&gt;

&lt;p&gt;Check it out here:&lt;/p&gt;

&lt;p&gt;👉 Watch the full course on YouTube&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/lbPThhcfn10"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;I'm really excited to share this journey with you. Don't forget to subscribe to my channel, leave a comment, and let me know what you think! Your feedback is invaluable and helps me create even better content for you.&lt;/p&gt;

&lt;p&gt;See you in the course! :-)&lt;/p&gt;

&lt;p&gt;Best,&lt;br&gt;
Amir&lt;/p&gt;

</description>
      <category>go</category>
      <category>google</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Why I'm hooked on Rust 🦀 ?</title>
      <dc:creator>Bek Brace</dc:creator>
      <pubDate>Tue, 25 Feb 2025 19:08:45 +0000</pubDate>
      <link>https://forem.com/bekbrace/why-im-hooked-on-rust--2kab</link>
      <guid>https://forem.com/bekbrace/why-im-hooked-on-rust--2kab</guid>
      <description>&lt;h2&gt;
  
  
  Hey, what's going on everyone? 👋
&lt;/h2&gt;

&lt;p&gt;This is Amir, and today I want to talk about something that's been taking over my programming brain—&lt;strong&gt;Rust&lt;/strong&gt;. If you've been following me for a while, you know I love diving deep into languages, breaking things down, and figuring out how they actually work. But Rust? Rust is different. This language is not just another tool in the box for me. It’s something I’ve genuinely grown attached to, and I want to tell you why.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Rust Is More Than Just Code
&lt;/h2&gt;

&lt;p&gt;Rust is not just about writing code. &lt;strong&gt;It’s a mindset&lt;/strong&gt;. It’s about thinking in ownership, borrowing, and lifetimes. And yeah, I know that sounds like a lot of jargon, but once you get it, it clicks, and you start seeing code differently [at least that's what I get as feedback from my students who took my Rust course]. It forces you to write better software, and honestly, that’s what keeps me coming back to it.&lt;/p&gt;




&lt;p&gt;This is my last Rust project:&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/653rafFNBmA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 How I Got Into Rust
&lt;/h2&gt;

&lt;p&gt;Like most programmers, I was curious. I kept hearing about its &lt;strong&gt;safety, speed, and memory efficiency&lt;/strong&gt;. No more segfaults? Sounds like a dream come true! At first, it felt strict, but over time, I realized &lt;strong&gt;Rust is just trying to make me a better programmer&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏗️ Ownership &amp;amp; Borrowing
&lt;/h3&gt;

&lt;p&gt;The biggest shift for me was &lt;strong&gt;ownership&lt;/strong&gt;. Unlike garbage-collected languages, Rust doesn’t have a background process cleaning up memory. Instead, it enforces strict rules about &lt;strong&gt;who owns what and when&lt;/strong&gt;. This might sound annoying at first, but it makes you super intentional about handling data.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 The Ecosystem Rocks
&lt;/h2&gt;

&lt;p&gt;Rust's tooling is top-tier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cargo 📦&lt;/strong&gt; - Probably the best package manager I’ve ever worked with.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rust’s Documentation 📚&lt;/strong&gt; - Clear, concise, and actually useful.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rust Community 🤝&lt;/strong&gt; - One of the friendliest dev communities out there.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And let’s talk about &lt;strong&gt;performance&lt;/strong&gt;. Rust is as fast as C and C++, but with &lt;strong&gt;none of the memory management nightmares&lt;/strong&gt;. You get low-level control &lt;em&gt;and&lt;/em&gt; high-level safety.&lt;/p&gt;




&lt;h2&gt;
  
  
  🐧 Interesting Linux &amp;amp; Rust Facts
&lt;/h2&gt;

&lt;p&gt;💡 &lt;strong&gt;Linux &amp;amp; Rust&lt;/strong&gt;: Did you know that parts of the &lt;strong&gt;Linux kernel&lt;/strong&gt; are being rewritten in Rust? This is huge because it brings Rust’s memory safety guarantees to one of the most critical pieces of software in the world!&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Rust is the Most Loved Language&lt;/strong&gt;: According to Stack Overflow’s developer survey, &lt;strong&gt;Rust has been the most loved language for several years in a row&lt;/strong&gt;. Once you start using it, you understand why!&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Linux Powers the World&lt;/strong&gt;: Over &lt;strong&gt;90% of the world’s supercomputers, servers, and cloud infrastructure run on Linux&lt;/strong&gt;. And now, Rust is playing a growing role in its future!&lt;/p&gt;




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

&lt;p&gt;Rust isn’t just another language to me. &lt;strong&gt;It’s a game-changer&lt;/strong&gt;. It’s changed how I think about programming and made me more conscious of how I write code. If you haven’t tried it yet, I highly recommend it. But fair warning—you might just get hooked like I did. 😉&lt;/p&gt;

&lt;p&gt;Let me know what you think about Rust! Have you tried it yet? Drop a comment and let’s talk. &lt;/p&gt;

&lt;p&gt;🚀 Until next time—&lt;strong&gt;keep coding, keep building&lt;/strong&gt;, and I’ll catch you in the next one!&lt;/p&gt;

</description>
      <category>rust</category>
      <category>webdev</category>
      <category>programming</category>
      <category>weeklyretro</category>
    </item>
  </channel>
</rss>
