<?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: Daniel Possible Kwabi</title>
    <description>The latest articles on DEV Community by Daniel Possible Kwabi (@daniel_possiblekwabi_b57).</description>
    <link>https://dev.to/daniel_possiblekwabi_b57</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%2F3739764%2F91dd3b57-d979-47f6-82af-136d4ba44dba.png</url>
      <title>DEV Community: Daniel Possible Kwabi</title>
      <link>https://dev.to/daniel_possiblekwabi_b57</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/daniel_possiblekwabi_b57"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Daniel Possible Kwabi</dc:creator>
      <pubDate>Mon, 31 Aug 2026 18:25:30 +0000</pubDate>
      <link>https://dev.to/daniel_possiblekwabi_b57/-1gkj</link>
      <guid>https://dev.to/daniel_possiblekwabi_b57/-1gkj</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/francistrdev/how-long-does-it-take-for-you-to-write-a-devto-article-49m1" class="crayons-story__hidden-navigation-link"&gt;How long does it take for you to write a dev.to article?&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/francistrdev/how-long-does-it-take-for-you-to-write-a-devto-article-49m1" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Compares casual versus technical writing times&lt;/p&gt;

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

          &lt;a href="/francistrdev" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3711376%2Fe88f6fdf-33af-4dde-bb60-fbe662e87d02.gif" alt="francistrdev profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/francistrdev" class="crayons-story__secondary fw-medium m:hidden"&gt;
              FrancisTRᴅᴇᴠ (っ◔◡◔)っ
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                FrancisTRᴅᴇᴠ (っ◔◡◔)っ
                &lt;a href="/++"&gt;&lt;img alt="Subscriber" class="subscription-icon" src="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png"&gt;&lt;/a&gt;
                
              
              &lt;div id="story-author-preview-content-4538206" 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="/francistrdev" 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/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3711376%2Fe88f6fdf-33af-4dde-bb60-fbe662e87d02.gif" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;FrancisTRᴅᴇᴠ (っ◔◡◔)っ&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/francistrdev/how-long-does-it-take-for-you-to-write-a-devto-article-49m1" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 31&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/francistrdev/how-long-does-it-take-for-you-to-write-a-devto-article-49m1" id="article-link-4538206"&gt;
          How long does it take for you to write a dev.to article?
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/discuss"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;discuss&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/community"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;community&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/writing"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;writing&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devto"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devto&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/francistrdev/how-long-does-it-take-for-you-to-write-a-devto-article-49m1" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/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;50&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/francistrdev/how-long-does-it-take-for-you-to-write-a-devto-article-49m1#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              51&lt;span class="hidden s:inline"&gt;&amp;nbsp;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;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Computers Powered By Living Human Brain Cells?</title>
      <dc:creator>Daniel Possible Kwabi</dc:creator>
      <pubDate>Thu, 20 Aug 2026 13:37:04 +0000</pubDate>
      <link>https://dev.to/daniel_possiblekwabi_b57/computers-powered-by-living-human-brain-cells-5e2i</link>
      <guid>https://dev.to/daniel_possiblekwabi_b57/computers-powered-by-living-human-brain-cells-5e2i</guid>
      <description>&lt;p&gt;You heard me right, this isn't some SciFi or a new movie script, it's real. Actual Neurons cultivated in labs, wired into computing systems. Though my first question is... does this mean we are a bit closer to AGI? A future where machines don't simply just calculate but think?&lt;/p&gt;

&lt;p&gt;So what is this even? It's Bio-computing. And what is Bio-computing? It's using living neurons as processors instead of your normal silicon chips. Now these cells can adapt, self-organize, and process information in parallel. As we can see, this mimics our human brain.&lt;/p&gt;

&lt;p&gt;Still lots of English. What does it even mean?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Unlike chips, neurons can change their connections over time. So technically they can "learn."&lt;/li&gt;
&lt;li&gt;Energy efficiency: Biological systems consume far less energy compared to traditional data centers.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'd think of all this like swapping out your CPU for a tiny brain network.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does this matter? Why do all this bio-hacking?
&lt;/h2&gt;

&lt;p&gt;Have you ever been online and there's that one guy in the comment section talking about how AI is wasting our water resources or consuming too much electricity etc? Well, they mean the data centers... that's what these models work off.&lt;/p&gt;

&lt;p&gt;This bio-computing solution is essentially energy efficient. Now all this is still fairly early and experimental, but think about all the doors it opens in Science and Technology. Think of the hybrid systems that we can have.&lt;/p&gt;

&lt;h2&gt;
  
  
  However, that being said — it's not all rainbows.
&lt;/h2&gt;

&lt;p&gt;It sounds impressive for a reason. That's because it's not just difficult, it's "hard" too.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Keeping Cells Alive
&lt;/h3&gt;

&lt;p&gt;Neurons need nutrients, oxygen, and stable conditions. So running this "living server" is like running a lab itself more than a data center.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Scaling Up
&lt;/h3&gt;

&lt;p&gt;Sure, a petri dish of neurons is all well and good, but powering global infrastructure on the level that data centers do, or even 2021 ChatGPT, is another thing entirely.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Ethical Questions
&lt;/h3&gt;

&lt;p&gt;To put this in perspective, when I first saw this I didn't know how to react. My tech brain was going cool, awesome wow!!! And then it was like... wait, did they kill someone? (they didn't). We aren't even done with AI ethical frameworks yet. How would we control this?&lt;/p&gt;

&lt;p&gt;What new angles of philosophy do we need to consider? Is there going to be a new Alan Turing test? Like, what even is thinking? Is the "thinking" these bio-computers are going to be doing actually identical to human thinking, or is it just mimicking small portions of thinking?&lt;/p&gt;

&lt;p&gt;My brain runs wild.&lt;/p&gt;




&lt;p&gt;Silicon gave us the digital age, neurons might just give us the biological age of computing. And at this point it's not even about the question of &lt;em&gt;can we build it?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It's rather the question of... what happens when we do build it?&lt;/p&gt;

&lt;p&gt;I hope your brain runs wild as my brain runs wild.&lt;/p&gt;

</description>
      <category>biocomputing</category>
      <category>ai</category>
      <category>future</category>
      <category>technology</category>
    </item>
    <item>
      <title>Is Your REST API really a REST API?</title>
      <dc:creator>Daniel Possible Kwabi</dc:creator>
      <pubDate>Thu, 20 Aug 2026 01:13:53 +0000</pubDate>
      <link>https://dev.to/daniel_possiblekwabi_b57/is-your-rest-api-really-a-rest-api-3bbj</link>
      <guid>https://dev.to/daniel_possiblekwabi_b57/is-your-rest-api-really-a-rest-api-3bbj</guid>
      <description>&lt;p&gt;Before anything I want us to keep this name at the top of our heads, not forever but for now. &lt;strong&gt;LEONARD RICHARDSON&lt;/strong&gt;. I know your question. Why?&lt;/p&gt;

&lt;p&gt;That's because he gave us a practical measure of some sorts to measure how "RESTful" your API actually is, the Richardson Maturity Model (RMM).&lt;/p&gt;

&lt;p&gt;Essentially, it's like a grading system for APIs. From RPC-over-HTTP (Level 0) to hypermedia (Level 3). So let's not be so sure your API is RESTful, let's walk through some ground rules.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 6 REST Constraints
&lt;/h2&gt;

&lt;p&gt;Contrary to what a lot of novices think, it's not about slapping JSON on HTTP. REST is defined by six additional architectural constraints.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Client-Server
&lt;/h3&gt;

&lt;p&gt;Separation of concerns. The client (frontend) focuses on the UI and experience while the server (backend) handles data and security. And they evolve independently.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Uniform Interface
&lt;/h3&gt;

&lt;p&gt;The way I look to put this is that a "contract" should be established between client and server, in the sense that they are on the same page. Resources are identified by URLs (&lt;code&gt;/users/5&lt;/code&gt;), manipulated via standard HTTP methods (GET, POST, PUT, DELETE), and described with self-contained messages. This uniformity makes APIs predictable and interoperable.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Stateless
&lt;/h3&gt;

&lt;p&gt;The server should "remember" nothing between requests. All requests must carry all the information needed to process it. This makes scaling and reliability possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Cacheable
&lt;/h3&gt;

&lt;p&gt;Because we want to be stateless, things can get expensive real fast, so we cache.&lt;/p&gt;

&lt;p&gt;Resources must "say" whether they should be cached or not. So we keep data in some sort of volatile storage as opposed to persistent storage so we prevent the server from repeating identical work.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Layered Architecture
&lt;/h3&gt;

&lt;p&gt;As the name suggests, we should have different layers, e.g., a web tier, app tier, and DB tier. Clients don't really know if they are talking to the actual server or some form of intermediary — maybe a proxy, load balancer, or a gateway. This allows for scalability behind the scenes.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Code on Demand
&lt;/h3&gt;

&lt;p&gt;This is the only optional constraint, as in reality not every system would need this.&lt;/p&gt;

&lt;p&gt;Servers can extend client functionality by sending executable code. Again, this is rarely used but it's part of the family.&lt;/p&gt;




&lt;h2&gt;
  
  
  RMM
&lt;/h2&gt;

&lt;p&gt;Good, we have looked at the 6 REST constraints. But how do we measure RESTfulness? Well, remember our name? It comes into play here again. We'll use the Leonard Richardson Maturity Model.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Level&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;What It Looks Like&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Problem / Limitation&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The Swamp&lt;/td&gt;
&lt;td&gt;One single endpoint (&lt;code&gt;/api&lt;/code&gt;) doing everything. RPC over HTTP.&lt;/td&gt;
&lt;td&gt;No real REST. Hard to scale, brittle.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Resources&lt;/td&gt;
&lt;td&gt;Multiple endpoints (&lt;code&gt;/users&lt;/code&gt;, &lt;code&gt;/orders&lt;/code&gt;). But still relies mostly on POST for all actions.&lt;/td&gt;
&lt;td&gt;Slightly better, but verbs are misused.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;HTTP Verbs&lt;/td&gt;
&lt;td&gt;Proper use of GET, POST, PUT, DELETE. Most APIs stop here.&lt;/td&gt;
&lt;td&gt;Good practice, but still missing hypermedia.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hypermedia (HATEOAS)&lt;/td&gt;
&lt;td&gt;Server responses include links that tell the client what actions are possible next.&lt;/td&gt;
&lt;td&gt;True REST. Flexible, evolvable, self-describing.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;At level 3, your API becomes truly navigable like a website. Instead of hardcoding routes, the client can follow links provided by the server. Which means backend can evolve without breaking the frontend. That's the point of REST in the first place...&lt;/p&gt;

&lt;p&gt;So, is your API really REST? If it's a level 2, I think you're in good company. Not so bad (most APIs are). But if we want to embrace the full REST vision, we should aim for level 3. Hypermedia is not just some fancy word, it's the key to building truly resilient, adaptable, and RESTful APIs.&lt;/p&gt;

&lt;p&gt;Please check out my channel, I just made a Python full Course. &lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/0flk8oYRtVc"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Peace!!!&lt;/p&gt;

</description>
      <category>rest</category>
      <category>api</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How I Built a Retro Python Racer from Scratch (Screenshots Included)</title>
      <dc:creator>Daniel Possible Kwabi</dc:creator>
      <pubDate>Thu, 06 Aug 2026 16:44:10 +0000</pubDate>
      <link>https://dev.to/daniel_possiblekwabi_b57/how-i-built-a-retro-python-racer-from-scratch-screenshots-included-43h5</link>
      <guid>https://dev.to/daniel_possiblekwabi_b57/how-i-built-a-retro-python-racer-from-scratch-screenshots-included-43h5</guid>
      <description>&lt;p&gt;Lovely people, it's been a minute. I hope everyone has been good, alive, and well.&lt;/p&gt;

&lt;p&gt;From my introductory post, I spoke a lot, well actually I speak a lotabout how I build games with Pygame, and... well, here's a little "gamedev" piece with Pygame.&lt;/p&gt;

&lt;p&gt;Let's start with the finished product. Here's a visual.&lt;/p&gt;

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

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

&lt;p&gt;I know it's not exactly &lt;em&gt;Need for Speed&lt;/em&gt;, but let's just go through my building procedure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating the Window
&lt;/h2&gt;

&lt;p&gt;The first thing to do with Pygame, as I have come to find, is to make your game window. I mean, everything is going to be within the window, so it makes a bunch of sense.&lt;/p&gt;

&lt;p&gt;Now, this should be simple, and it usually is but you have to think about the kind of game you want to build.&lt;/p&gt;

&lt;p&gt;I realised I needed a portrait-style window for mine as opposed to a landscape window.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffwqky8a7ziabn3w4qf31.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffwqky8a7ziabn3w4qf31.JPG" alt="Game Window" width="472" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the Environment
&lt;/h2&gt;

&lt;p&gt;Now I had to start putting things in the window because you can't have a blank game, right?&lt;/p&gt;

&lt;p&gt;Of course... unless it's ghosting your partner or those mind games you people do lol.&lt;/p&gt;

&lt;p&gt;The first thing to think about really was the environment. I mean, it's supposed to be a racer, so we need the road, the road lines, and all that.&lt;/p&gt;

&lt;p&gt;I had a plan: just find a colour that looks like a road and add some race lines to divide it.&lt;/p&gt;

&lt;p&gt;Problem solved, right?&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx3wituejl5ntwyomnxqg.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx3wituejl5ntwyomnxqg.JPG" alt=" " width="209" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yeah... not exactly.&lt;/p&gt;

&lt;p&gt;As you can see above, I tried to "cheat." I was thinking I could just use the pipe character (&lt;code&gt;|&lt;/code&gt;) on the keyboard to fake it, but I changed my mind.&lt;/p&gt;

&lt;p&gt;(What do you think?)&lt;/p&gt;

&lt;p&gt;I ended up just drawing some rectangles to make the lane divisions instead.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8jru7vba138dgs8prolk.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8jru7vba138dgs8prolk.JPG" alt=" " width="499" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, if this is your first Pygame trip, don't be confused. A lot of the stuff under the hood is just shapes.&lt;/p&gt;

&lt;p&gt;You'd be amazed at what rectangles can do.&lt;/p&gt;

&lt;p&gt;I bet you thought all that school math was useless.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Spoiler: it isn't.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Drawing Rectangles
&lt;/h2&gt;

&lt;p&gt;Now let's stop having fun and add a little more substance.&lt;/p&gt;

&lt;p&gt;When I say I used rectangles, here's what I mean in detail.&lt;/p&gt;

&lt;p&gt;First, you'd define the rectangle (think of it like creating an object).&lt;/p&gt;

&lt;p&gt;Example:&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="n"&gt;rect&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Rect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you need to define its position. In other words: &lt;strong&gt;Where should this appear?&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="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;
&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;
&lt;span class="n"&gt;width&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;
&lt;span class="n"&gt;height&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;

&lt;span class="n"&gt;rect&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Rect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you have to actually &lt;strong&gt;draw&lt;/strong&gt; it for it to appear on the screen.&lt;/p&gt;

&lt;p&gt;Think of it like creating a variable and performing some calculations. Until you actually &lt;code&gt;print()&lt;/code&gt; something to the terminal, you won't see any output.&lt;/p&gt;

&lt;p&gt;Same idea here.&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="n"&gt;pygame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;draw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;screen&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Red rectangle
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Creating the Player
&lt;/h2&gt;

&lt;p&gt;Now let's continue.&lt;/p&gt;

&lt;p&gt;Having dealt with the road, I now have to add our player car (it's all shapes for now).&lt;/p&gt;

&lt;p&gt;Generally, it's the same procedure.&lt;/p&gt;

&lt;p&gt;At this point, we're simply adding a red rectangle to represent our player car.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjuxzmjhs251pay49wbkq.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjuxzmjhs251pay49wbkq.JPG" alt=" " width="510" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Making the Car Move
&lt;/h2&gt;

&lt;p&gt;Then our car has to move.&lt;/p&gt;

&lt;p&gt;We can't have a game if it doesn't move, right?&lt;/p&gt;

&lt;p&gt;When I was learning this, absolutely everyone would just write some mathematics and leave it at that.&lt;/p&gt;

&lt;p&gt;No proper explanation.&lt;/p&gt;

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

&lt;p&gt;But let me see if I can break the cycle.&lt;/p&gt;

&lt;p&gt;I like to think of it as a graph.&lt;/p&gt;

&lt;p&gt;Let's go back to grade school.&lt;/p&gt;

&lt;p&gt;Think of the player car as a single dot.&lt;/p&gt;

&lt;p&gt;Now imagine the Cartesian plane.&lt;/p&gt;

&lt;p&gt;What does it take to move a point either left or right?&lt;/p&gt;

&lt;p&gt;Let's say, on a scale of 10, the left side contains points &lt;strong&gt;1, 2, 3, 4&lt;/strong&gt;, while the right side contains &lt;strong&gt;6, 7, 8, 9, 10&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Our car is currently sitting at &lt;strong&gt;5&lt;/strong&gt;, right in the middle.&lt;/p&gt;

&lt;p&gt;So if we want to move one unit to the left, that's simply:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5 - 1 = 4&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If we want to move four units to the right:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5 + 4 = 9&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The summary of all I'm saying is this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subtract (decrement) to move left.&lt;/li&gt;
&lt;li&gt;Add (increment) to move right.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h2&gt;
  
  
  Keeping the Car on Screen
&lt;/h2&gt;

&lt;p&gt;Then I hit a problem.&lt;/p&gt;

&lt;p&gt;In theory, the x-axis keeps going forever, so if you keep incrementing, you can literally drive off-screen.&lt;/p&gt;

&lt;p&gt;So we need to set boundaries and handle the left and right wall collisions.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwfwr08uuawjxjg3lyeuh.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwfwr08uuawjxjg3lyeuh.JPG" alt=" " width="454" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The way to do this is to reset the position of the car to the last valid value within your screen's width.&lt;/p&gt;

&lt;p&gt;In our example, let's say the screen width is &lt;strong&gt;500&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But that's not all.&lt;/p&gt;

&lt;p&gt;In my explanation, the car is just a single point.&lt;/p&gt;

&lt;p&gt;In the actual code, it's a rectangle with both width and height.&lt;/p&gt;

&lt;p&gt;So we need to subtract the car's width from the screen width to make sure the entire car stays inside the window.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fafhog056h1r9ske080ye.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fafhog056h1r9ske080ye.JPG" alt=" " width="454" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  And Now We No Longer Disappear
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqd417uuapdrm1skqp67c.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqd417uuapdrm1skqp67c.JPG" alt=" " width="492" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding the Enemy Car
&lt;/h2&gt;

&lt;p&gt;So now we can add in our enemy car, in blue.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyyfc1wx5gdvjez1ua3m0.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyyfc1wx5gdvjez1ua3m0.JPG" alt=" " width="529" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But... same problem with collisions.&lt;/p&gt;

&lt;p&gt;They kind of "smush" into each other.&lt;/p&gt;

&lt;p&gt;And we don't want that.&lt;/p&gt;

&lt;p&gt;That should be a crash that ideally ends the game loop (or whatever outcome you choose).&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkvd9w4vqrdy43ld3xpox.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkvd9w4vqrdy43ld3xpox.JPG" alt=" " width="449" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this, I made object variables for both the player and enemy cars with all the necessary position values and everything else.&lt;/p&gt;

&lt;p&gt;Then this is where Pygame helps.&lt;/p&gt;

&lt;p&gt;I found a method in the docs called &lt;code&gt;colliderect()&lt;/code&gt;. It's a simple way to check whether the two car objects have touched each other.&lt;/p&gt;

&lt;p&gt;Once a collision is detected, I can decide what happens next. In my case, I simply ended the game.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding a Score
&lt;/h2&gt;

&lt;p&gt;Then I added a score system.&lt;/p&gt;

&lt;p&gt;Basically, increment the score as long as the game loop is running.&lt;/p&gt;

&lt;p&gt;(Very creative, I know.)&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5i3oherwk0f2kjyul75i.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5i3oherwk0f2kjyul75i.JPG" alt=" " width="529" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's pretty much it.&lt;/p&gt;

&lt;p&gt;Under the hood, we've basically finished the physics and mechanics for our game.&lt;/p&gt;

&lt;h2&gt;
  
  
  Replacing the Rectangles with Assets
&lt;/h2&gt;

&lt;p&gt;But we don't stop there.&lt;/p&gt;

&lt;p&gt;Hell no.&lt;/p&gt;

&lt;p&gt;So I went asset hunting and picked up some car sprites.&lt;/p&gt;

&lt;p&gt;I got them from the PNGTree website (this is &lt;strong&gt;not&lt;/strong&gt; an ad).&lt;/p&gt;

&lt;p&gt;I mention the site just for anyone who may want to replicate the project.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgn63ue1zqe8vovudon7h.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgn63ue1zqe8vovudon7h.JPG" alt=" " width="419" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The last thing to do was swap the rectangles out for the sprites so the game would render the actual car assets instead.&lt;/p&gt;

&lt;p&gt;And... that's that.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3tqbbcrlfrah85vusebn.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3tqbbcrlfrah85vusebn.JPG" alt=" " width="462" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;If there was something you think I missed, or anything you'd like me to explain in more detail, I go much deeper on my YouTube channel.&lt;/p&gt;

&lt;p&gt;I have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A short, punchy video if you just want the overview.
  &lt;iframe src="https://www.youtube.com/embed/AtkHaCwbv9c"&gt;
  &lt;/iframe&gt;
&lt;/li&gt;
&lt;li&gt;A full 50-minute tutorial for anyone who wants to recreate the game from scratch.
  &lt;iframe src="https://www.youtube.com/embed/sQ2IANKqa1w"&gt;
  &lt;/iframe&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading. I hope this was fun to read as it was fun to build and write about. &lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>gamedev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Deployment strategies every engineer should understand...</title>
      <dc:creator>Daniel Possible Kwabi</dc:creator>
      <pubDate>Mon, 20 Apr 2026 15:10:19 +0000</pubDate>
      <link>https://dev.to/daniel_possiblekwabi_b57/deployment-strategies-every-engineer-should-understand-ch9</link>
      <guid>https://dev.to/daniel_possiblekwabi_b57/deployment-strategies-every-engineer-should-understand-ch9</guid>
      <description>&lt;p&gt;1.Big Bang Deployment&lt;/p&gt;

&lt;p&gt;Here's how it works:&lt;/p&gt;

&lt;p&gt;You build a feature for two weeks. You test it on your machine. Everything is beautiful. Then you push it straight to prod. (it sounds bad already)&lt;/p&gt;

&lt;p&gt;Sure this is the easiest way out but if and when something breaks so help you God. &lt;/p&gt;

&lt;p&gt;This one is no bueno.&lt;/p&gt;

&lt;p&gt;2.Blue-Green Deployment&lt;/p&gt;

&lt;p&gt;Better. You run two identical environments. So basically in parallel and you'd route traffic to it using a load balancer. &lt;/p&gt;

&lt;p&gt;Rollback is fast. That's great. But if that new code has a nasty bug, it still hits everyone at once when you flip the switch. Better than big bang but still not there yet. &lt;/p&gt;

&lt;p&gt;3.Canary Deployment&lt;/p&gt;

&lt;p&gt;The smart play. You roll out new code to like 1% of users first. You watch it. You breathe. If nothing breaks then you roll out to 5%, then 25%, then everyone.&lt;/p&gt;

&lt;p&gt;If something breaks, only a tiny sliver of users ever see it. This is the way.&lt;/p&gt;

&lt;p&gt;Tho there are cases where you just have to big bang it... example being a side project you know isn't very significant. &lt;/p&gt;

&lt;p&gt;I'll like to hear your thoughts in the comments.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>devops</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>Self taught Dev is not a flex</title>
      <dc:creator>Daniel Possible Kwabi</dc:creator>
      <pubDate>Wed, 18 Mar 2026 14:12:11 +0000</pubDate>
      <link>https://dev.to/daniel_possiblekwabi_b57/self-taught-dev-is-not-a-flex-8ib</link>
      <guid>https://dev.to/daniel_possiblekwabi_b57/self-taught-dev-is-not-a-flex-8ib</guid>
      <description>&lt;p&gt;Self-taught developers aren’t real.&lt;/p&gt;

&lt;p&gt;Stay with me now....&lt;/p&gt;

&lt;p&gt;It's a term that shouldn't really exsist because....&lt;/p&gt;

&lt;p&gt;Even the CS grad from MIT.&lt;br&gt;
Even the bootcamp alum.&lt;br&gt;
Even the engineer with 10 years at Google.&lt;/p&gt;

&lt;p&gt;They all are self taught....&lt;/p&gt;

&lt;p&gt;Sure, some people had structured education.&lt;br&gt;
Some had professors.&lt;br&gt;
Some were lucky enough to learn from legends like David J. Malan&lt;/p&gt;

&lt;p&gt;But let’s be honest…&lt;br&gt;
Nobody spoon-feeds you how to debug a production issue at 2AM.&lt;/p&gt;

&lt;p&gt;Nobody forces you to read documentation. (you'll learn)&lt;br&gt;
Nobody can teach you how to think through edge cases under pressure. They can try but replicating the real life pressure is just not realistic...&lt;/p&gt;

&lt;p&gt;At some point, it’s just:&lt;br&gt;
• You&lt;br&gt;
• The docs&lt;br&gt;
• Stack Overflow&lt;br&gt;
• YouTube&lt;br&gt;
• And now… ChatGPT&lt;/p&gt;

&lt;p&gt;And your ability to sit there and figure it out.&lt;br&gt;
The real difference isn’t “degree vs self-taught”.&lt;/p&gt;

&lt;p&gt;It’s:&lt;br&gt;
Are you resourceful?&lt;br&gt;
Can you teach yourself what you don’t know?&lt;br&gt;
Can you stay when it gets frustrating instead of quitting?&lt;/p&gt;

&lt;p&gt;That’s the actual skill.&lt;br&gt;
In tech, your survival depends on how fast you can learn without permission.&lt;br&gt;
So when I see people leading with:&lt;/p&gt;

&lt;p&gt;“Self-taught developer ”&lt;br&gt;
I don’t see a flex, that's just a gimmick at this point &lt;/p&gt;

&lt;p&gt;I see the bare minimum requirement to survive in this field.&lt;br&gt;
If you can’t teach yourself… you’re not lasting anyway.&lt;/p&gt;

&lt;p&gt;I do get it though, it's normal for human beings to try and find ways to be "special". If you do this then from today start leading with your actual skills... your specialization and stuff like that, and let's dwell more on that. &lt;/p&gt;

</description>
      <category>programming</category>
      <category>ai</category>
      <category>beginners</category>
      <category>python</category>
    </item>
    <item>
      <title>How to Never Quit Your Coding Journey</title>
      <dc:creator>Daniel Possible Kwabi</dc:creator>
      <pubDate>Thu, 05 Mar 2026 13:29:07 +0000</pubDate>
      <link>https://dev.to/daniel_possiblekwabi_b57/how-to-never-quit-your-coding-journey-35fg</link>
      <guid>https://dev.to/daniel_possiblekwabi_b57/how-to-never-quit-your-coding-journey-35fg</guid>
      <description>&lt;p&gt;So a lot of times, we look at the tech industry and the advice for people looking to get in is all technical. It's always talking about learning this framework, then learning that one, then getting this certification, or following that creator. We all know the drill.&lt;/p&gt;

&lt;p&gt;But we tend to forget the most important skill of all that you will absolutely need, and that is consistency. Because you won't be motivated every day. God knows—and you know—that it's hard to be on this journey.&lt;/p&gt;

&lt;p&gt;And maybe people do actually speak about this, but it still doesn't quite land for me. Don't get me wrong, I am not taking the piss out of anybody's suggestions, but I just think it's coming from an angle where only naturally driven or passionate people can utilize it.&lt;/p&gt;

&lt;p&gt;Enough rambling. Here are the three targeted mindset shifts that I think you should have that will help you succeed on this journey.&lt;/p&gt;

&lt;p&gt;1.Consistency doesn't mean being busy&lt;br&gt;
Consistency doesn't mean that you have to go and be overly productive, packing an impossible schedule that's just going to end up in burnout. Instead, it means we should focus on establishing a pattern. As long as there is a pattern, your smaller efforts compound.&lt;/p&gt;

&lt;p&gt;I know we have better attention spans here, so let me go deeper. Say we have two guys who have downloaded Duolingo to learn German. The first guy goes in on the first day and puts in a massive 45 lessons—I am talking serious hours. But that's it. He never actually gets to practice again, and then six months or so later he watches a video, gets motivated, and does the same thing again.&lt;/p&gt;

&lt;p&gt;Then we have the second guy who is doing his lessons for 20 minutes a day for a year or even two. Who do you think is closer to being fluent? Yeah, exactly, the second guy. So consistency doesn't necessarily mean being intense and overly productive (if that's even a thing), but rather establishing patterns.&lt;/p&gt;

&lt;p&gt;2.Don't stop&lt;br&gt;
What do we think would help the second guy get to the two-year mark? Yeah, right again: not stopping. And I won't just leave it at that—don't worry, I have some pointers.&lt;/p&gt;

&lt;p&gt;Think about how you remember to brush your teeth. Every morning when you wake up, you do it. You have done it since you were a child. In fact, on the off day you don't do it—say you went for a sleepover and forgot your brush—you feel weird, no? Good. Now I want you to build a pattern in 90 days. I want you to study code at a particular time every day to the point where, if you miss it, it feels weird, like you committed a crime. Three months is level 1. Later, push it to six months, and don't stop.&lt;/p&gt;

&lt;p&gt;3.Switch up your forms of content&lt;br&gt;
Now, you might say that you do not have time. No problem. Maybe you have a demanding day job, a big family at home, or a newborn... whatever it is, no problem, you just need to be strategic.&lt;/p&gt;

&lt;p&gt;If you have 15 minutes, watch a tutorial video where they are not doing heavy coding, but just explaining a concept. If you have 10 minutes, or even 5 minutes, use it. If you are on the road a lot or have a lot of chores to do around the house, plug in a tech podcast or an audiobook.&lt;/p&gt;

&lt;p&gt;That's just three ways out of many that I used—and still use—to stay sharp in my day. Hope you found value.&lt;/p&gt;

&lt;p&gt;And I have a video on this on my YouTube:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/UUbRJFcwBqI?si=GAm9hJK4ed-Rwu70" rel="noopener noreferrer"&gt;https://youtu.be/UUbRJFcwBqI?si=GAm9hJK4ed-Rwu70&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can check it out if you like. Peace.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>discuss</category>
      <category>career</category>
    </item>
    <item>
      <title>Confession time: I’ve been keeping a secret from you all...</title>
      <dc:creator>Daniel Possible Kwabi</dc:creator>
      <pubDate>Fri, 27 Feb 2026 09:42:00 +0000</pubDate>
      <link>https://dev.to/daniel_possiblekwabi_b57/confession-time-ive-been-keeping-a-secret-from-you-all-176n</link>
      <guid>https://dev.to/daniel_possiblekwabi_b57/confession-time-ive-been-keeping-a-secret-from-you-all-176n</guid>
      <description>&lt;p&gt;Dev family, I have a secret.&lt;/p&gt;

&lt;p&gt;In my introduction, I shared most of me but not all of me. And what I failed to share is that I actually have a YouTube channel where I make tutorials on Python!&lt;/p&gt;

&lt;p&gt;Between working as a software engineer for the last couple of years and being a Teaching Assistant for a Python, I’ve spent a lot of time figuring out how to explain coding concepts in ways that actually click. I realized I wanted to take the exact same energy I use to help my university students and share it with the wider dev community.&lt;/p&gt;

&lt;p&gt;On the channel, I’m focused on breaking down Python concepts, sharing practical tips, and walking through tutorials designed to help you build real skills without the usual headaches.&lt;/p&gt;

&lt;p&gt;Whether you're just starting out with Python or looking to sharpen your existing knowledge, I’d love for you to check it out. I'm also super open to feedback and requests—if there's a specific concept or project you want to see a tutorial on, drop it in the comments below!&lt;/p&gt;

&lt;p&gt;Here is the link to the channel: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtube.com/@danielpossiblekwabi?si=UydKV-Xd7-GVap22" rel="noopener noreferrer"&gt;https://youtube.com/@danielpossiblekwabi?si=UydKV-Xd7-GVap22&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me know what you think! 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The killer’s signature wasn’t on the weapon, it was in the code.</title>
      <dc:creator>Daniel Possible Kwabi</dc:creator>
      <pubDate>Thu, 26 Feb 2026 09:05:31 +0000</pubDate>
      <link>https://dev.to/daniel_possiblekwabi_b57/the-killers-signature-wasnt-on-the-weapon-it-was-in-the-code-5ge7</link>
      <guid>https://dev.to/daniel_possiblekwabi_b57/the-killers-signature-wasnt-on-the-weapon-it-was-in-the-code-5ge7</guid>
      <description>&lt;p&gt;The killer’s signature wasn’t on the weapon, it was in the code.&lt;/p&gt;

&lt;p&gt;In the Bull episode “E.J.”, a self-driving car kills a man. The world blames the AI… until the team digs deeper.&lt;br&gt;
Turns out, someone had slipped in a backdoor, lines of hidden logic that influence the AI.&lt;br&gt;
When the truth surfaces, it’s because the CEO notices, “Carter’s coding signature was all over it.”&lt;br&gt;
That’s how they find the real culprit, not through sensors or data logs, but through human fingerprints inside machine logic.&lt;br&gt;
Fast-forward to today.&lt;/p&gt;

&lt;p&gt;Everyone, from students to professionals, even curious hobbyists, are now writing code with AI.&lt;br&gt;
 Lines are suggested, completed, or even fully written by a model trained on someone else’s work.&lt;br&gt;
And while that’s powerful, it also means something else: attackers use the same models.&lt;br&gt;
They generate malicious code that look harmless but hides intent deep inside.&lt;br&gt;
No clear style. No signature. Just machine-written precision masking human purpose.&lt;/p&gt;

&lt;p&gt;If E.J. were real today, would we even find Carter’s signature anymore?&lt;br&gt;
Could anyone say, “this line of logic belongs to this person”?&lt;br&gt;
Because the deeper we depend on AI, the more invisible human fingerprints become.&lt;/p&gt;

&lt;p&gt;Obviously things like this are only relevant to critical systems. But I think it's something to think about. &lt;/p&gt;

&lt;p&gt;And just to add on, bull is a very nice TV show. You should watch it some time. &lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>discuss</category>
      <category>security</category>
    </item>
    <item>
      <title>You'll be a junior forever if you don't learn</title>
      <dc:creator>Daniel Possible Kwabi</dc:creator>
      <pubDate>Wed, 11 Feb 2026 14:28:59 +0000</pubDate>
      <link>https://dev.to/daniel_possiblekwabi_b57/youll-be-a-junior-forever-if-you-dont-learn-1bcg</link>
      <guid>https://dev.to/daniel_possiblekwabi_b57/youll-be-a-junior-forever-if-you-dont-learn-1bcg</guid>
      <description>&lt;p&gt;You'll always remain at junior level if you think "it works" is an excuse for bad code. &lt;/p&gt;

&lt;p&gt;Stop playing the victim when someone with more experience tears apart your code. We aren't trying to find faults. We are trying to save the product.&lt;/p&gt;

&lt;p&gt;I recently reviewed a specific codebase. It was a disaster. Thousands of lines stuffed into two files, zero structure, just a big ball of mud. (They took the monolith literally)&lt;/p&gt;

&lt;p&gt;So, I did the work. I segregated the code. I introduced folders. I analyzed the whole codebase, the imports, the logic, the functions, let's just say I made it modular. I cleaned up the mess.&lt;/p&gt;

&lt;p&gt;The feedback?(More of gossip really but....) "This wasn't necessary. The original code worked."&lt;/p&gt;

&lt;p&gt;"He just wants to make us look wrong" (If you do your job well then mine takes me 10 minutes instead of hours). "There's always something to 'fix' with him. Why change it if it runs?"&lt;/p&gt;

&lt;p&gt;Let’s get one thing straight.&lt;br&gt;
"It works" is not a standard. It's the bare minimum requirement for software to exist. A house built without pillars works fine until the wind blows.&lt;/p&gt;

&lt;p&gt;When I break your code into modules, I am not feeding my ego. I am reducing the cognitive load for the next person who has to read this.&lt;/p&gt;

&lt;p&gt;If you think modularity is optional or just an opinion, you haven't mastered simplicity. You’ve mastered laziness and mediocrity. &lt;/p&gt;

&lt;p&gt;Until you can appreciate why we force you to structure your code, you aren't ready for the next level. 👇 Devs: Does "it works" ever justify a 2,000-line file?&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>discuss</category>
      <category>programming</category>
      <category>architecture</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Daniel Possible Kwabi</dc:creator>
      <pubDate>Sun, 08 Feb 2026 17:22:39 +0000</pubDate>
      <link>https://dev.to/daniel_possiblekwabi_b57/-26n9</link>
      <guid>https://dev.to/daniel_possiblekwabi_b57/-26n9</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/richardpascoe" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2F3689026%2F3359cbba-3c0a-4759-9889-0b30af7894cd.jpeg" alt="richardpascoe"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/richardpascoe/build-an-accessible-audio-controller-4me7" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Build an Accessible Audio Controller&lt;/h2&gt;
      &lt;h3&gt;Richard Pascoe ・ Feb 8&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#community&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#learning&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>community</category>
      <category>learning</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Are you doomed learning coding in the AI era?</title>
      <dc:creator>Daniel Possible Kwabi</dc:creator>
      <pubDate>Fri, 06 Feb 2026 03:08:06 +0000</pubDate>
      <link>https://dev.to/daniel_possiblekwabi_b57/are-you-doomed-learning-coding-in-the-ai-era-33b4</link>
      <guid>https://dev.to/daniel_possiblekwabi_b57/are-you-doomed-learning-coding-in-the-ai-era-33b4</guid>
      <description>&lt;p&gt;I pity all those learning to code post chatgpt&lt;/p&gt;

&lt;p&gt;"They'll never know the feeling of finally solving a problem after going at it for 24 hours."&lt;/p&gt;

&lt;p&gt;I hear this sentiment a lot. And honestly? I get it.&lt;/p&gt;

&lt;p&gt;I mean the dopamine hit from solving a problem that was holding you down for days was crazy good(sometimes you still even won't know why it finally worked)&lt;/p&gt;

&lt;p&gt;It felt like earning your stripes.A brain massage if you may. Now all that being said....&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But I can't help but think some of us want to live in the past.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Isn't what we have now objectively better? I know the application of it is mostly flawed especially in the school system but for this lets assume it's being used wisely.&lt;/p&gt;

&lt;p&gt;We used to spend hours just to realize we missed a semicolon.(I do not miss this specifically)&lt;/p&gt;

&lt;p&gt;That wasn't problem-solving, that was just a syntax bump&lt;/p&gt;

&lt;p&gt;You can still have the pleasure of finishing your projects, though if it takes you too little effort and time it's not the same thing. You won't get the same hit. &lt;/p&gt;

&lt;p&gt;So these days with AI I always tell people the bar has gotten higher and just simple projects are not going to cut it. Whether it's your dopamine hit or in the processional space, the bar is very high. &lt;/p&gt;

&lt;p&gt;We aren't coding just to debug; we are coding to build. If AI lets new learners skip the frustration and get straight to the shipping, I'll take that trade every time.&lt;/p&gt;

&lt;p&gt;And for anyone who shares the nostalgic sentiment;&lt;/p&gt;

&lt;p&gt;Do you really pity them or you're angry they have it easier?&lt;br&gt;
Or is it the tech debt that icks you?&lt;/p&gt;

&lt;p&gt;I'd like to hear what you think in the comments.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>ai</category>
      <category>computerscience</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
