<?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: Johnston Abubakar Kweku</title>
    <description>The latest articles on DEV Community by Johnston Abubakar Kweku (@johnstonkweku).</description>
    <link>https://dev.to/johnstonkweku</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%2F3803799%2Fa57bf478-a9c8-45c5-976d-b7043d12840f.png</url>
      <title>DEV Community: Johnston Abubakar Kweku</title>
      <link>https://dev.to/johnstonkweku</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/johnstonkweku"/>
    <language>en</language>
    <item>
      <title>The African Developer Tax</title>
      <dc:creator>Johnston Abubakar Kweku</dc:creator>
      <pubDate>Wed, 29 Apr 2026 16:23:41 +0000</pubDate>
      <link>https://dev.to/johnstonkweku/the-african-developer-tax-3e0c</link>
      <guid>https://dev.to/johnstonkweku/the-african-developer-tax-3e0c</guid>
      <description>&lt;p&gt;&lt;strong&gt;Nobody talks about this enough.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Being a developer in Africa isn't just about writing code. There's an invisible tax you pay every single day that developers in other parts of the world don't think about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The infrastructure tax&lt;/strong&gt;&lt;br&gt;
Your internet goes out in the middle of a deployment. Load shedding kills your machine mid-compile. You're debugging a production issue on mobile data because the power has been out for three hours. Meanwhile someone in San Francisco is complaining their office WiFi is slow.&lt;/p&gt;

&lt;p&gt;You learn to code defensively. Save often. Work offline where possible. Commit frequently. Not because best practices told you to — because the environment demands it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The payment tax&lt;/strong&gt;&lt;br&gt;
You want to buy a course. Pay for a domain. Subscribe to a tool that would make you 10x more productive. But your card doesn't work on Stripe. PayPal is restricted in your country. The workarounds cost more than the product.&lt;/p&gt;

&lt;p&gt;You watch free tiers evaporate and can't upgrade. You learn to squeeze everything out of what's free because paid is not always an option.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The visibility tax&lt;/strong&gt;&lt;br&gt;
You build something real. Something good. But your network is small, your country doesn't trend on tech Twitter, and the algorithm wasn't built for you. Developers in other regions get featured, funded, and followed. You get ignored — not because the work is worse, but because the spotlight doesn't reach here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The doubt tax&lt;/strong&gt;&lt;br&gt;
The most expensive one.&lt;/p&gt;

&lt;p&gt;When every example you see doesn't look like you. When the success stories are always from the same cities, the same schools, the same backgrounds. You start to wonder if this path is really for you. If you're building toward something real or just running in place.&lt;/p&gt;

&lt;p&gt;That doubt is not weakness. It's a rational response to a system that wasn't designed with you in mind.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But here's the thing&lt;/strong&gt;&lt;br&gt;
Every African developer who ships something — anything — has already cleared a bar that most people don't see. The finished product looks the same. The path to get there didn't.&lt;/p&gt;

&lt;p&gt;That's not a consolation prize. That's a genuine edge. Resilience, resourcefulness, and the ability to build under constraint are skills. Hard-earned ones.&lt;/p&gt;

&lt;p&gt;We're not behind. We're building on a harder difficulty setting.&lt;/p&gt;

&lt;p&gt;And we're still shipping.&lt;br&gt;
&lt;a href="https://www.syntaxandstories.dev/post/41/" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>developer</category>
      <category>discuss</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I Finally Took Git &amp; GitHub Seriously — Here’s What Changed</title>
      <dc:creator>Johnston Abubakar Kweku</dc:creator>
      <pubDate>Mon, 23 Mar 2026 05:54:29 +0000</pubDate>
      <link>https://dev.to/johnstonkweku/i-finally-took-git-github-seriously-heres-what-changed-326p</link>
      <guid>https://dev.to/johnstonkweku/i-finally-took-git-github-seriously-heres-what-changed-326p</guid>
      <description>&lt;p&gt;I just completed the &lt;strong&gt;Learn Git &amp;amp; GitHub&lt;/strong&gt; course on Scrimba, and I can confidently say this is one of the most impactful things I’ve done for my development workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Version Control Actually Matters
&lt;/h2&gt;

&lt;p&gt;For a long time, Git felt like one of those tools you “kind of know” but don’t fully understand.&lt;/p&gt;

&lt;p&gt;But the truth is — version control is not optional.&lt;/p&gt;

&lt;p&gt;It’s what allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Track every change in your codebase&lt;/li&gt;
&lt;li&gt;Experiment without fear of breaking everything&lt;/li&gt;
&lt;li&gt;Collaborate effectively with other developers&lt;/li&gt;
&lt;li&gt;Roll back mistakes without panic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without Git, you're basically coding without a safety net.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changed for Me
&lt;/h2&gt;

&lt;p&gt;After going through the course, I noticed a shift in how I approach development:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I think in &lt;strong&gt;commits&lt;/strong&gt;, not just code&lt;/li&gt;
&lt;li&gt;I structure projects more intentionally&lt;/li&gt;
&lt;li&gt;Debugging feels less chaotic because I can trace history&lt;/li&gt;
&lt;li&gt;I’m more confident experimenting with new features&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s one of those skills that doesn’t just add to your toolkit — it upgrades how you use everything else.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Recommend Scrimba
&lt;/h2&gt;

&lt;p&gt;What stood out to me was how &lt;strong&gt;hands-on&lt;/strong&gt; the learning experience is.&lt;/p&gt;

&lt;p&gt;Instead of passively watching videos, you’re:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing actual commands&lt;/li&gt;
&lt;li&gt;Interacting with a live environment&lt;/li&gt;
&lt;li&gt;Practicing concepts in real time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The lessons are also &lt;strong&gt;very comprehensive&lt;/strong&gt;, covering both fundamentals and practical workflows you’ll actually use.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Quick Note on Scrimba Pro
&lt;/h2&gt;

&lt;p&gt;If you’re serious about improving quickly, Scrimba’s Pro subscription is worth checking out.&lt;/p&gt;

&lt;p&gt;It gives you a more structured path and helps you stay consistent — which, honestly, is half the battle when learning anything in tech.&lt;/p&gt;

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

&lt;p&gt;If you’re still “winging it” with Git or avoiding it altogether, I’d strongly recommend fixing that.&lt;/p&gt;

&lt;p&gt;It’s one of the highest ROI skills you can learn as a developer.&lt;/p&gt;

&lt;p&gt;If you want to try the course, here’s my referral link:&lt;br&gt;
&lt;a href="https://scrimba.com/?via=u4375fca" rel="noopener noreferrer"&gt;https://scrimba.com/?via=u4375fca&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Would love to hear how others learned Git — was it structured, or just trial and error?&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Turning My Gap Year Into a Developer Launchpad: Building Real Projects While Learning JavaScript</title>
      <dc:creator>Johnston Abubakar Kweku</dc:creator>
      <pubDate>Tue, 03 Mar 2026 11:53:03 +0000</pubDate>
      <link>https://dev.to/johnstonkweku/turning-my-gap-year-into-a-developer-launchpad-building-real-projects-while-learning-javascript-22he</link>
      <guid>https://dev.to/johnstonkweku/turning-my-gap-year-into-a-developer-launchpad-building-real-projects-while-learning-javascript-22he</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79xsabbq70hlutrx962w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79xsabbq70hlutrx962w.png" alt=" " width="800" height="444"&gt;&lt;/a&gt;My gap year wasn’t a pause in my life. It became the most deliberate year of skill-building I’ve ever had. At first it felt like a setback, but I reframed it as an opportunity for structured growth.&lt;/p&gt;

&lt;p&gt;Two years ago, I lost my mom. Since then, I’ve been living with my dad and sister. My sister is currently in her final year at university, so I decided to wait until she completes school before leaving home for mine. That meant I had time. Instead of drifting through it, I decided to design it.&lt;/p&gt;

&lt;p&gt;I’ve always had an affinity for technology. I was curious about how systems work long before I understood what software engineering actually meant. When I decided to start web development, I was confused. I didn’t know the optimal path. I didn’t feel ready. But I started anyway.&lt;/p&gt;

&lt;p&gt;I chose Django as my entry point and committed to building real systems instead of just finishing courses.&lt;/p&gt;

&lt;p&gt;Building Instead of Waiting&lt;/p&gt;

&lt;p&gt;My first serious projects were backend-heavy because I wanted to understand how applications function beneath the interface.&lt;/p&gt;

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

&lt;p&gt;A pharmacy POS system with role-based access control (RBAC), handling both wholesale and retail logic.&lt;/p&gt;

&lt;p&gt;A blog platform called SyntaxAndStories with authentication, CRUD operations, and an AJAX-powered chat feature.&lt;/p&gt;

&lt;p&gt;BizChat, a chat application using Django email-based signup verification.&lt;/p&gt;

&lt;p&gt;Smaller CRUD-focused systems like a notes app and a learning log to strengthen database modeling patterns.&lt;/p&gt;

&lt;p&gt;Working on these projects forced me to understand:&lt;/p&gt;

&lt;p&gt;Authentication and authorization flows&lt;/p&gt;

&lt;p&gt;Model relationships and database normalization&lt;/p&gt;

&lt;p&gt;Django’s request/response lifecycle&lt;/p&gt;

&lt;p&gt;Template rendering vs dynamic updates&lt;/p&gt;

&lt;p&gt;Version control discipline with Git&lt;/p&gt;

&lt;p&gt;Debugging became my primary learning mechanism. Errors in migrations, mismatched querysets, CSRF failures in AJAX requests — those moments clarified concepts more than any tutorial.&lt;/p&gt;

&lt;p&gt;Watching code builds familiarity. Shipping code builds competence.&lt;/p&gt;

&lt;p&gt;Why I Added JavaScript After Django&lt;/p&gt;

&lt;p&gt;Django gave me backend confidence, but modern applications are interactive. Static template rendering isn’t sufficient when building responsive user experiences.&lt;/p&gt;

&lt;p&gt;If my long-term goal is to contribute to remote teams globally, I need full-stack fluency.&lt;/p&gt;

&lt;p&gt;That’s why I started learning JavaScript seriously.&lt;/p&gt;

&lt;p&gt;I focused on:&lt;/p&gt;

&lt;p&gt;DOM manipulation&lt;/p&gt;

&lt;p&gt;Event-driven logic&lt;/p&gt;

&lt;p&gt;Asynchronous programming&lt;/p&gt;

&lt;p&gt;Fetch API and AJAX workflows&lt;/p&gt;

&lt;p&gt;Scope, closures, and execution context&lt;/p&gt;

&lt;p&gt;Structured learning helped accelerate my understanding of core JavaScript mechanics before integrating them into production code. Platforms like Scrimba (&lt;a href="https://scrimba.com/?via=community" rel="noopener noreferrer"&gt;https://scrimba.com/?via=community&lt;/a&gt;&lt;br&gt;
) made it easier to experiment directly inside lessons and understand real-time behavior before applying it to my own applications.&lt;/p&gt;

&lt;p&gt;But the goal wasn’t just to complete lessons. It was integration.&lt;/p&gt;

&lt;p&gt;I implemented AJAX in SyntaxAndStories to update chat messages without full page reloads. Instead of refreshing templates, I returned JSON responses and dynamically updated the DOM. It reduced friction and improved user experience significantly.&lt;/p&gt;

&lt;p&gt;As traffic grows, my plan is to transition that feature to WebSockets for real-time updates. I’m thinking ahead about scalability even while building at a small scale.&lt;/p&gt;

&lt;p&gt;What Building Real Projects Taught Me&lt;/p&gt;

&lt;p&gt;Debugging is the real curriculum.&lt;br&gt;
Understanding why something breaks is more valuable than copying a working solution.&lt;/p&gt;

&lt;p&gt;Database design determines long-term flexibility.&lt;br&gt;
Poor model planning creates refactoring debt.&lt;/p&gt;

&lt;p&gt;UI matters more than backend developers initially assume.&lt;br&gt;
Perceived performance affects user trust.&lt;/p&gt;

&lt;p&gt;Shipping consistently beats chasing perfection.&lt;br&gt;
Iteration creates momentum.&lt;/p&gt;

&lt;p&gt;Learning in public creates proof.&lt;br&gt;
Documentation and public repositories signal seriousness.&lt;/p&gt;

&lt;p&gt;The Bigger Vision&lt;/p&gt;

&lt;p&gt;This gap year is not idle time. It is a controlled build phase.&lt;/p&gt;

&lt;p&gt;I code consistently. I refactor old projects. I improve UI with Tailwind. I integrate JavaScript intentionally instead of randomly adding features.&lt;/p&gt;

&lt;p&gt;My goal is to become a developer capable of contributing remotely to teams across time zones — collaborating asynchronously, writing maintainable code, and shipping features that solve real problems.&lt;/p&gt;

&lt;p&gt;What initially looked like a delay became my most focused period of technical growth.&lt;/p&gt;

&lt;p&gt;I’m not waiting for opportunity. I’m preparing for it.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>learning</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
