<?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: Congo Musah </title>
    <description>The latest articles on DEV Community by Congo Musah  (@congomusah).</description>
    <link>https://dev.to/congomusah</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%2F1126502%2F775cac1c-dcfa-4723-8cda-f6fc8f7f388b.jpeg</url>
      <title>DEV Community: Congo Musah </title>
      <link>https://dev.to/congomusah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/congomusah"/>
    <language>en</language>
    <item>
      <title>Three AIs. One Brain. My Story.</title>
      <dc:creator>Congo Musah </dc:creator>
      <pubDate>Thu, 19 Mar 2026 17:04:16 +0000</pubDate>
      <link>https://dev.to/congomusah/three-ais-one-brain-my-story-ah2</link>
      <guid>https://dev.to/congomusah/three-ais-one-brain-my-story-ah2</guid>
      <description>&lt;p&gt;&lt;strong&gt;Three AIs. One Brain. My Story.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How I learned to stop being confused by AI tools — and start using each one like a specialist.&lt;/p&gt;

&lt;p&gt;There's a version of me from two years ago who would open a new browser tab every time he had a question — Google, Reddit, a YouTube rabbit hole, maybe a WhatsApp message to a friend who "knows stuff." That version of me spent a lot of energy just finding the door before even walking through it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Then the AIs arrived. Not one. Not two. Three.&lt;/strong&gt;&lt;br&gt;
And suddenly I had three very different doors, each leading somewhere completely different. It took me a while to figure out which door was which. This is that story.&lt;br&gt;
I want to be clear about something upfront: I don't use AI to replace thinking. I use it to extend it. There's a difference. And understanding that difference is what made me stop treating every AI tool the same way and start treating each one like a specialist I book an appointment with depending on what I need.&lt;br&gt;
Let me introduce you to my three specialists.&lt;/p&gt;

&lt;p&gt;🔵 Tool No. 1 — &lt;strong&gt;Perplexity&lt;/strong&gt;&lt;br&gt;
"The researcher who never sleeps and always cites their sources."&lt;br&gt;
Imagine you need to understand a topic — not just skim it, but actually understand it enough to make a decision or form an opinion. Before Perplexity, I'd fall into the Google trap: ten tabs open, three contradicting each other, and me somehow ending up watching a documentary about something completely unrelated forty minutes later.&lt;br&gt;
Perplexity changed that. My primary use for it is research — pure, clean, sourced research. When I'm trying to understand a market, a trend, a company, a concept, or even just a news story that feels incomplete, Perplexity is my first call. It searches the live web, synthesises what it finds, and — crucially — tells me where it got the information. That last part matters more than people realise. When you're building something, advising someone, or writing something, knowing your source isn't just academic. It's accountability.&lt;/p&gt;

&lt;p&gt;"I don't use Perplexity to get answers. I use it to get orientation — a map of a topic before I decide which road to walk down."&lt;/p&gt;

&lt;p&gt;One of my favourite flows: I type in a broad question — something like "what's happening in the African fintech space right now" — and Perplexity gives me a synthesis with live citations. Then I follow the threads that interest me. It's like having a research assistant who can speed-read the entire internet and hand you a briefing note in thirty seconds.&lt;br&gt;
Is it perfect? No. Sometimes it misses nuance. Sometimes the sources it cites are contradictory and it doesn't flag that well. But as a starting point for any serious research session? It's the best I've found.&lt;br&gt;
**&lt;br&gt;
My honest ratings:**&lt;br&gt;
CategoryScoreResearch depth9.2 / 10Source reliability8.5 / 10Speed9.5 / 10Conversation feel5.5 / 10Overall utility8.8 / 10&lt;br&gt;
Verdict: Perplexity is the tool I open when I need to know what's real. It's not my companion — it's my fact-checker, my research lead, my orientation device. If you're building anything serious and you're not using it for research, you're spending too much time lost in tabs.&lt;/p&gt;

&lt;p&gt;🔴 Tool No. 2 — &lt;strong&gt;Claude&lt;/strong&gt;&lt;br&gt;
"The brilliant co-founder who has read everything you've ever written."&lt;br&gt;
Here's what most people don't know about Claude, or at least what took me a while to discover: it's not just an AI you chat with. It's an AI you can build a context around. And for anyone working on a startup or a serious project, that difference is everything.&lt;br&gt;
I use Claude specifically for startup work. Strategy, positioning, pitch decks, investor thinking, product decisions — the stuff that requires not just intelligence but context. And Claude has a feature that I've genuinely come to rely on: Projects.&lt;/p&gt;

&lt;p&gt;I can upload multiple files — pitch decks, research documents, competitor analyses, internal memos, voice notes I've transcribed — and Claude reads all of it. Then when I ask a question, it's not answering in a vacuum. It's answering as someone who has read my actual material.&lt;/p&gt;

&lt;p&gt;"Claude doesn't just know things. It knows my things. That's the difference that changes how you work."&lt;/p&gt;

&lt;p&gt;Picture this: I'm preparing for a VC conversation. I've uploaded my deck, a market research document, a transcript of a previous investor call, and some notes I wrote at 2am about a pivot I'm considering. I ask Claude: "Given everything you've read, what's the weakest part of my narrative and how would a sceptical investor attack it?"&lt;br&gt;
The answer I get isn't generic startup advice. It's specific, grounded in my actual documents, and often uncomfortably accurate.&lt;br&gt;
That's not a search engine. That's a thinking partner. And for the kind of deep, nuanced, high-stakes thinking that startup-building demands, it's irreplaceable.&lt;/p&gt;

&lt;p&gt;Claude also writes well. Beautifully, actually. When I need something to sound considered and precise — not just generated — Claude is where I go. There's a thoughtfulness in its prose that I haven't consistently found elsewhere.&lt;br&gt;
**&lt;br&gt;
My honest ratings:**&lt;br&gt;
CategoryScoreContextual memory (Projects)9.7 / 10Strategic thinking9.3 / 10Writing quality9.5 / 10Real-time information4.5 / 10Overall utility9.4 / 10&lt;br&gt;
Verdict: If you're building something serious and you're not using Claude's Projects feature to upload and work through your actual documents, you're using maybe thirty percent of what it offers. This is where serious builders should live.&lt;/p&gt;

&lt;p&gt;🟢 Tool No. 3 — &lt;strong&gt;ChatGPT&lt;/strong&gt;&lt;br&gt;
"The reliable friend who's always available and never makes it weird."&lt;br&gt;
And then there's ChatGPT. My daily companion. The one I message the most — not for the deepest conversations, but for the most consistent ones.&lt;br&gt;
I use ChatGPT for life admin, personal planning, and the kind of thinking-out-loud that doesn't require a specialist. What should I cook this week? Help me plan my schedule around this deadline. I need to draft a message to someone I had a disagreement with — help me strike the right tone. I want to think through this personal decision I'm sitting on.&lt;br&gt;
ChatGPT handles all of it with an ease and warmth that makes it feel less like using a tool and more like texting a very competent friend.&lt;/p&gt;

&lt;p&gt;"ChatGPT is the AI I use when I need to think out loud — and I don't want to feel silly doing it."&lt;/p&gt;

&lt;p&gt;There's something about ChatGPT's personality that lends itself to casual use. It's conversational in a way that doesn't feel clinical. It meets you where you are. If I'm stressed and I type something slightly chaotic, it doesn't return something stiff and formal — it reads the room and responds accordingly. That's not a small thing. Over time, that consistent, warm availability becomes genuinely useful.&lt;/p&gt;

&lt;p&gt;I also use it for quick, on-the-go tasks. Summarise this article. Turn these bullet points into a proper paragraph. Write three options for a subject line. Explain this concept like I'm new to it. These are five-minute tasks and ChatGPT handles them without ceremony. Open it, type, get the answer, move on. That frictionlessness is its own kind of superpower.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My honest ratings:&lt;/strong&gt;&lt;br&gt;
CategoryScoreConversational feel9.6 / 10Everyday versatility9.2 / 10Speed &amp;amp; ease of use9.4 / 10Deep strategic work6.8 / 10Overall utility9.1 / 10&lt;br&gt;
Verdict: ChatGPT is the AI I'd recommend to someone who's just starting. It's approachable, reliable, and remarkably good at the everyday. Don't underestimate "everyday" — it covers more of your life than you think.&lt;/p&gt;

&lt;p&gt;The real lesson isn't which AI is "best." It's that none of them are the same.&lt;br&gt;
The mistake most people make is picking one AI and expecting it to be everything. It's like hiring one person and expecting them to be your accountant, your lawyer, your therapist, and your assistant simultaneously. That's not how specialists work, and increasingly, that's not how AI works either.&lt;br&gt;
I think of my three tools as a team:&lt;/p&gt;

&lt;p&gt;Perplexity goes first — it orients me, gives me the landscape, tells me what's real.&lt;br&gt;
Claude goes deep — it knows my context, challenges my thinking, helps me build the hard stuff.&lt;br&gt;
ChatGPT keeps me grounded — it's the daily touchpoint, the planner, the sounding board, the companion.&lt;/p&gt;

&lt;p&gt;Together, they cover most of what I need a thinking partner for. Not perfectly. Not without missteps. But consistently well enough that I genuinely can't imagine working the way I used to. The chaos of ten open tabs, the WhatsApp messages asking friends questions they're too polite to say they can't answer, the hours lost to Google rabbit holes — all of that has been replaced by something that, most days, just works.&lt;br&gt;
Find your three doors. Learn which one leads where. And stop using the wrong one just because it was the first one you found.&lt;/p&gt;

&lt;p&gt;Thanks for reading. If this resonated, I'd love to know which AI tools you're using and how you split the work between them — drop it in the comments.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>ai</category>
      <category>appwritehack</category>
      <category>programming</category>
    </item>
    <item>
      <title>A Weekend Exploring the World of Hackers, Scammers, and Online Deception</title>
      <dc:creator>Congo Musah </dc:creator>
      <pubDate>Mon, 09 Mar 2026 08:56:42 +0000</pubDate>
      <link>https://dev.to/congomusah/a-weekend-exploring-the-world-of-hackers-scammers-and-online-deception-533g</link>
      <guid>https://dev.to/congomusah/a-weekend-exploring-the-world-of-hackers-scammers-and-online-deception-533g</guid>
      <description>&lt;p&gt;This past weekend I decided to explore something many of us hear about but rarely understand deeply — how hackers and online scammers actually gain access to people’s devices, accounts, and personal information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Out of curiosity&lt;/strong&gt;, I started watching investigations and educational content from cybersecurity communities such as the &lt;strong&gt;Scammer Payback movement&lt;/strong&gt;. I also read discussions and reports about cybercrime patterns affecting different regions including West Africa, Pakistan, and other parts of the world.&lt;/p&gt;

&lt;p&gt;What began as simple curiosity quickly turned into a very eye-opening learning experience.&lt;/p&gt;

&lt;p&gt;One thing surprised me immediately: hacking is not always about complex coding or highly sophisticated technology. In many cases, the most powerful tool scammers use is simply understanding human behavior and exploiting small digital weaknesses.&lt;/p&gt;

&lt;p&gt;As I explored more, I discovered several common techniques used by cybercriminals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Fake Website Trap&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the easiest ways scammers steal information is by creating fake websites that look exactly like legitimate ones. A fake banking page, a fake login screen, or even a fake online store can trick people into entering their usernames, passwords, or card details.&lt;/p&gt;

&lt;p&gt;Once the victim types their information, it goes straight to the attacker.&lt;/p&gt;

&lt;p&gt;Sometimes attackers also exploit poorly secured websites by injecting malicious code that redirects visitors to harmful pages.&lt;/p&gt;

&lt;p&gt;Because these pages often look identical to the real ones, many victims do not realize what has happened until it is too late.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Human Hack: Social Engineering&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another major method used by scammers is called social engineering. Instead of attacking computers directly, they target people.&lt;/p&gt;

&lt;p&gt;A scammer might pretend to be a bank officer, customer support agent, government official, or even a friend. They might send messages saying your account has a problem or that you need to verify something urgently.&lt;/p&gt;

&lt;p&gt;The goal is to create trust or panic so the victim reveals sensitive information like passwords, verification codes, or financial details.&lt;/p&gt;

&lt;p&gt;In many investigations I watched, scammers were extremely skilled at conversation. They understand emotions, urgency, and how to push someone into making quick decisions without thinking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Man-in-the-Middle Trick&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One technique that really caught my attention is called a “Man-in-the-Middle” attack.&lt;/p&gt;

&lt;p&gt;This happens when an attacker secretly positions themselves between two parties communicating online — for example, you and a website you trust.&lt;/p&gt;

&lt;p&gt;Normally, when you log into a website, your device sends information directly to that website. But in a man-in-the-middle situation, the attacker intercepts that communication.&lt;/p&gt;

&lt;p&gt;They can observe the information being exchanged and sometimes even alter it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario 1: Fake Public Wi-Fi&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine you are at an airport, café, or hotel and you see a Wi-Fi network called something like “Free Airport WiFi” or “Hotel Guest Network.”&lt;/p&gt;

&lt;p&gt;A hacker nearby might create a fake network with a similar name.&lt;/p&gt;

&lt;p&gt;When people connect to it, all their internet traffic passes through the attacker’s system first. This allows the attacker to monitor certain types of information moving between the user and websites.&lt;/p&gt;

&lt;p&gt;In poorly protected connections, login details or session information could be exposed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario 2: Login Interception&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another scenario involves a malicious proxy sitting between a user and a login website.&lt;/p&gt;

&lt;p&gt;When the user enters their username and password, the attacker captures the information and then forwards it to the real website so the login still works normally.&lt;/p&gt;

&lt;p&gt;From the victim’s perspective, nothing seems wrong. But the attacker now has the login credentials.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Password Wizard Trick&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another tactic used by scammers involves fake password reset systems that look like legitimate “password wizards.”&lt;/p&gt;

&lt;p&gt;Most platforms allow users to reset their password through a guided process. Scammers copy this process and recreate it on fake websites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario 1: Fake Password Reset Page&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A victim might receive a message saying:&lt;/p&gt;

&lt;p&gt;“Suspicious login detected. Please reset your password immediately.”&lt;/p&gt;

&lt;p&gt;The link leads to a page that looks exactly like the official password reset page.&lt;/p&gt;

&lt;p&gt;The victim enters their current password and creates a new one.&lt;/p&gt;

&lt;p&gt;However, the page is controlled by the attacker. Both passwords are captured and the attacker can immediately attempt to log into the real account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario 2: Fake Security Verification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In another case, a scammer might call or message someone pretending to be customer support.&lt;/p&gt;

&lt;p&gt;They guide the victim through what they call a “security wizard” or “verification process.”&lt;/p&gt;

&lt;p&gt;During this process, the victim might be asked to read out verification codes sent to their phone.&lt;/p&gt;

&lt;p&gt;But those codes are actually login authentication codes the attacker requested.&lt;/p&gt;

&lt;p&gt;Once the victim shares them, the attacker can take control of the account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SIM Swap Attacks (Very Common with Mobile Money)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another dangerous scam that has become common in many countries is the SIM swap attack.&lt;/p&gt;

&lt;p&gt;In this situation, a scammer tricks or bribes a telecom agent into transferring your phone number to a new SIM card controlled by them.&lt;/p&gt;

&lt;p&gt;Once they control your number, they begin resetting passwords for your bank, email, social media, or mobile money accounts.&lt;/p&gt;

&lt;p&gt;Because password reset codes are sent to your phone number, the attacker receives them and gains access to your accounts.&lt;/p&gt;

&lt;p&gt;Many victims only realize something is wrong when their phone suddenly loses network service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WhatsApp Account Takeover&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another scam that has affected many people is WhatsApp account hijacking.&lt;/p&gt;

&lt;p&gt;In this scam, someone may message you pretending to be a friend or colleague. They might say they accidentally sent a verification code to your number and ask you to forward it to them.&lt;/p&gt;

&lt;p&gt;The code they are asking for is actually the WhatsApp login verification code for your account.&lt;/p&gt;

&lt;p&gt;If you send it, they immediately gain access to your WhatsApp account.&lt;/p&gt;

&lt;p&gt;Once inside, they often start messaging your contacts pretending to be you and asking for money or promoting fake investment schemes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Learned&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After spending the weekend exploring this topic, one big lesson stood out: many cyberattacks succeed not because technology is weak, but because people are unaware of how these tricks work.&lt;/p&gt;

&lt;p&gt;Awareness is one of the strongest forms of protection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simple habits can make a big difference:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• Always check website addresses carefully before logging in&lt;br&gt;
• Avoid clicking suspicious links in messages or emails&lt;br&gt;
• Never share passwords or verification codes&lt;br&gt;
• Enable two-factor authentication on important accounts&lt;br&gt;
• Be cautious when using public Wi-Fi networks&lt;br&gt;
• Protect your SIM card and report sudden network loss immediately&lt;/p&gt;

&lt;p&gt;The internet offers incredible opportunities to connect, learn, and build businesses. But like any powerful system, it also comes with risks.&lt;/p&gt;

&lt;p&gt;The more we understand how cybercriminals operate, the better prepared we are to protect ourselves and educate others.&lt;/p&gt;

&lt;p&gt;For me, what started as simple weekend curiosity turned into a strong reminder:&lt;/p&gt;

&lt;p&gt;In the digital world, awareness is the first line of defense.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>cybersecurity</category>
      <category>development</category>
    </item>
    <item>
      <title>I Didn’t Stop Coding. I Just Started Coding Differently.</title>
      <dc:creator>Congo Musah </dc:creator>
      <pubDate>Thu, 19 Feb 2026 12:13:00 +0000</pubDate>
      <link>https://dev.to/congomusah/i-didnt-stop-coding-i-just-started-coding-differently-3o3g</link>
      <guid>https://dev.to/congomusah/i-didnt-stop-coding-i-just-started-coding-differently-3o3g</guid>
      <description>&lt;p&gt;&lt;strong&gt;Sometime in the middle of last year, I didn’t quit coding.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I leveled it up.&lt;/p&gt;

&lt;p&gt;As a founder building across MERN, NestJS, Flutter, Dart, AJAX, PHP, and even jQuery when necessary, I was constantly context switching. Backend logic in the morning. Flutter UI at night. Database indexing somewhere in between.&lt;/p&gt;

&lt;p&gt;The bottleneck wasn’t skill.&lt;/p&gt;

&lt;p&gt;It was speed.&lt;/p&gt;

&lt;p&gt;That’s when I discovered what I now call vibe coding.&lt;/p&gt;

&lt;p&gt;And no — it wasn’t laziness.&lt;/p&gt;

&lt;p&gt;It was leverage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Vibe Coding Really Is&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Vibe coding isn’t copy-paste programming.&lt;/p&gt;

&lt;p&gt;It isn’t blindly trusting AI.&lt;/p&gt;

&lt;p&gt;It isn’t “generate and pray.”&lt;/p&gt;

&lt;p&gt;For me, vibe coding means:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using AI to accelerate execution while your fundamentals stay in control.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I vibe code, I don’t outsource thinking.&lt;/p&gt;

&lt;p&gt;I use the solid foundation I already have — database design, API structuring, async behavior, REST patterns — and then I let AI help me move faster through implementation.&lt;/p&gt;

&lt;p&gt;I’m still coding.&lt;/p&gt;

&lt;p&gt;I’m just not typing every character manually anymore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where It Started&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mid last year, I installed the Blackbox extension in VS Code.&lt;/p&gt;

&lt;p&gt;At first, it felt like autocomplete on steroids.&lt;/p&gt;

&lt;p&gt;Then I used it to build the first version of the AgriLync waitlist.&lt;/p&gt;

&lt;p&gt;Simple stack:&lt;/p&gt;

&lt;p&gt;MongoDB schema&lt;/p&gt;

&lt;p&gt;Express endpoint&lt;/p&gt;

&lt;p&gt;Email validation&lt;/p&gt;

&lt;p&gt;Duplicate checks&lt;/p&gt;

&lt;p&gt;Clean error responses&lt;/p&gt;

&lt;p&gt;I described what I wanted.&lt;/p&gt;

&lt;p&gt;It generated a base.&lt;/p&gt;

&lt;p&gt;But here’s the key:&lt;/p&gt;

&lt;p&gt;I didn’t accept the output.&lt;/p&gt;

&lt;p&gt;I refactored it.&lt;/p&gt;

&lt;p&gt;Adjusted validation flow&lt;/p&gt;

&lt;p&gt;Optimized query handling&lt;/p&gt;

&lt;p&gt;Cleaned error structures&lt;/p&gt;

&lt;p&gt;Standardized responses&lt;/p&gt;

&lt;p&gt;That’s when I realized something important:&lt;/p&gt;

&lt;p&gt;AI wasn’t replacing my skill.&lt;/p&gt;

&lt;p&gt;It was forcing me to sharpen it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Real Shift: From Typing to Directing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I built Webarb later, I leaned more into vibe coding.&lt;/p&gt;

&lt;p&gt;NestJS controllers?&lt;br&gt;
Generated.&lt;/p&gt;

&lt;p&gt;CRUD services?&lt;br&gt;
Generated.&lt;/p&gt;

&lt;p&gt;Flutter widgets?&lt;br&gt;
Generated.&lt;/p&gt;

&lt;p&gt;But architecture?&lt;/p&gt;

&lt;p&gt;That was mine.&lt;/p&gt;

&lt;p&gt;Database relationships?&lt;br&gt;
Mine.&lt;/p&gt;

&lt;p&gt;Auth flow decisions?&lt;br&gt;
Mine.&lt;/p&gt;

&lt;p&gt;Security assumptions?&lt;br&gt;
Mine.&lt;/p&gt;

&lt;p&gt;AI became an implementation assistant — not an architect.&lt;/p&gt;

&lt;p&gt;And that difference matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vibe Coding Pushed Me Into Prompt Engineering (Naturally)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One unexpected outcome?&lt;/p&gt;

&lt;p&gt;I became better at giving instructions.&lt;/p&gt;

&lt;p&gt;If you give AI vague prompts, you get vague code.&lt;/p&gt;

&lt;p&gt;If you give AI structured, specific constraints, you get better output.&lt;/p&gt;

&lt;p&gt;So I started learning:&lt;/p&gt;

&lt;p&gt;How to structure prompts clearly&lt;/p&gt;

&lt;p&gt;How to define constraints&lt;/p&gt;

&lt;p&gt;How to specify architecture&lt;/p&gt;

&lt;p&gt;How to instruct agents step-by-step&lt;/p&gt;

&lt;p&gt;How to iterate responses instead of regenerating blindly&lt;/p&gt;

&lt;p&gt;Without realizing it, I was learning prompt engineering in real time.&lt;/p&gt;

&lt;p&gt;Not theory.&lt;/p&gt;

&lt;p&gt;Practice.&lt;/p&gt;

&lt;p&gt;I learned how to:&lt;/p&gt;

&lt;p&gt;Instruct agents like junior developers&lt;/p&gt;

&lt;p&gt;Break tasks into logical components&lt;/p&gt;

&lt;p&gt;Guide outputs toward clean architecture&lt;/p&gt;

&lt;p&gt;Refine rather than regenerate&lt;/p&gt;

&lt;p&gt;Vibe coding improved my communication skills as an engineer.&lt;/p&gt;

&lt;p&gt;That’s something no one talks about.&lt;br&gt;
**&lt;br&gt;
The Discipline Rule**&lt;/p&gt;

&lt;p&gt;Let me be honest.&lt;/p&gt;

&lt;p&gt;There was a short phase where I started accepting outputs too quickly.&lt;/p&gt;

&lt;p&gt;And that’s when things broke.&lt;/p&gt;

&lt;p&gt;Async issues.&lt;br&gt;
Poor error handling.&lt;br&gt;
Edge cases not covered.&lt;br&gt;
Inefficient queries.&lt;/p&gt;

&lt;p&gt;Not because AI failed.&lt;/p&gt;

&lt;p&gt;But because I got lazy reviewing.&lt;/p&gt;

&lt;p&gt;That moment taught me the most important rule of vibe coding:&lt;/p&gt;

&lt;p&gt;Never ship what you don’t understand.&lt;/p&gt;

&lt;p&gt;Now, every generated block goes through:&lt;/p&gt;

&lt;p&gt;Refactoring&lt;/p&gt;

&lt;p&gt;Cleanup&lt;/p&gt;

&lt;p&gt;Naming standard alignment&lt;/p&gt;

&lt;p&gt;Edge case review&lt;/p&gt;

&lt;p&gt;Performance thinking&lt;/p&gt;

&lt;p&gt;AI drafts.&lt;/p&gt;

&lt;p&gt;I edit like a senior engineer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Pros (When You Use It Right)&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1. Speed Without Losing Quality&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When building across multiple stacks — MERN backend, Nest APIs, Flutter apps — cognitive fatigue is real.&lt;/p&gt;

&lt;p&gt;Vibe coding reduces syntax fatigue.&lt;/p&gt;

&lt;p&gt;It frees mental space for:&lt;/p&gt;

&lt;p&gt;System design&lt;/p&gt;

&lt;p&gt;Scaling considerations&lt;/p&gt;

&lt;p&gt;Product thinking&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Faster Iteration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a founder, speed matters more than elegance in early phases.&lt;/p&gt;

&lt;p&gt;Vibe coding allows:&lt;/p&gt;

&lt;p&gt;Rapid prototyping&lt;/p&gt;

&lt;p&gt;Fast feature validation&lt;/p&gt;

&lt;p&gt;Quick refactoring cycles&lt;/p&gt;

&lt;p&gt;You move from idea → working version quickly.&lt;/p&gt;

&lt;p&gt;And that changes momentum.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. It Forces Strong Fundamentals&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ironically, vibe coding exposed weaknesses in my own understanding.&lt;/p&gt;

&lt;p&gt;If I couldn’t evaluate generated code confidently, I knew I had a gap.&lt;/p&gt;

&lt;p&gt;So I studied more:&lt;/p&gt;

&lt;p&gt;Async patterns&lt;/p&gt;

&lt;p&gt;Indexing strategies&lt;/p&gt;

&lt;p&gt;Security best practices&lt;/p&gt;

&lt;p&gt;Architecture layering&lt;/p&gt;

&lt;p&gt;Vibe coding didn’t weaken my fundamentals.&lt;/p&gt;

&lt;p&gt;It tested them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Cons (If You’re Not Ready)&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1. Illusion of Progress&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can generate a lot of code fast.&lt;/p&gt;

&lt;p&gt;That doesn’t mean you’re building something stable.&lt;/p&gt;

&lt;p&gt;If you don’t understand:&lt;/p&gt;

&lt;p&gt;Event loops&lt;/p&gt;

&lt;p&gt;Query optimization&lt;/p&gt;

&lt;p&gt;State management&lt;/p&gt;

&lt;p&gt;Error propagation&lt;/p&gt;

&lt;p&gt;You’ll ship fragile systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Debugging Requires Real Skill&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Generated code can introduce patterns you didn’t originally write.&lt;/p&gt;

&lt;p&gt;If you don’t read and refactor it, debugging becomes painful.&lt;/p&gt;

&lt;p&gt;You must review everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Architecture Drift&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI solves prompts.&lt;/p&gt;

&lt;p&gt;It doesn’t protect long-term structure unless you instruct it to.&lt;/p&gt;

&lt;p&gt;As a founder, that responsibility is yours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What You Must Know Before You Start&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’re a beginner reading this:&lt;/p&gt;

&lt;p&gt;Don’t start with vibe coding.&lt;/p&gt;

&lt;p&gt;Start with fundamentals.&lt;/p&gt;

&lt;p&gt;Learn:&lt;/p&gt;

&lt;p&gt;How REST works&lt;/p&gt;

&lt;p&gt;How databases index data&lt;/p&gt;

&lt;p&gt;How async functions behave&lt;/p&gt;

&lt;p&gt;How state flows in your frontend&lt;/p&gt;

&lt;p&gt;How authentication works&lt;/p&gt;

&lt;p&gt;Then use vibe coding as a multiplier.&lt;/p&gt;

&lt;p&gt;Not a crutch.&lt;/p&gt;

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

&lt;p&gt;I didn’t stop coding.&lt;/p&gt;

&lt;p&gt;I still write code manually.&lt;/p&gt;

&lt;p&gt;I still debug deeply.&lt;br&gt;
I still design systems intentionally.&lt;/p&gt;

&lt;p&gt;But now I build faster.&lt;/p&gt;

&lt;p&gt;Cleaner.&lt;/p&gt;

&lt;p&gt;More strategically.&lt;/p&gt;

&lt;p&gt;Vibe coding didn’t make me less of an engineer.&lt;/p&gt;

&lt;p&gt;It made me more of a technical director.&lt;/p&gt;

&lt;p&gt;And as a founder shipping products, that shift matters more than typing speed ever did.&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>programming</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Standing Alone Before God -Into a New Year</title>
      <dc:creator>Congo Musah </dc:creator>
      <pubDate>Wed, 31 Dec 2025 20:11:00 +0000</pubDate>
      <link>https://dev.to/congomusah/standing-alone-before-god-into-a-new-year-3i9e</link>
      <guid>https://dev.to/congomusah/standing-alone-before-god-into-a-new-year-3i9e</guid>
      <description>&lt;p&gt;As a new year approaches, there is always noise.&lt;/p&gt;

&lt;p&gt;Noise about resolutions.&lt;br&gt;
Noise about goals.&lt;br&gt;
Noise about becoming a “better version” of ourselves.&lt;/p&gt;

&lt;p&gt;But before the calendar changes, there is a quieter moment many people skip—the moment where you stand alone before God and take stock of your soul.&lt;/p&gt;

&lt;p&gt;Not as part of a crowd.&lt;br&gt;
Not behind a leader’s prayer.&lt;br&gt;
Not echoing words you borrowed from someone else.&lt;/p&gt;

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

&lt;p&gt;Moving into 2026, I’ve realized that faith cannot be carried into a new year second-hand. You cannot survive what’s ahead on motivational quotes alone. You cannot face uncertainty by reposting hope instead of practicing it.&lt;/p&gt;

&lt;p&gt;At some point, faith stops being inspirational and starts being personal.&lt;/p&gt;

&lt;p&gt;Regardless of religion, there is a universal truth: every human being must learn to stand on their own feet before God. There will be seasons where community fades, guidance feels distant, and answers don’t come quickly. In those moments, what sustains you is not how loudly you prayed in public, but how honestly you showed up in private.&lt;/p&gt;

&lt;p&gt;Hope is not pretending the past year didn’t hurt.&lt;br&gt;
Faith is not denying exhaustion.&lt;/p&gt;

&lt;p&gt;Hope is choosing to step into 2026 believing that God is still present—even when clarity is not.&lt;/p&gt;

&lt;p&gt;We are entering a year where no quote can do the work for us. Where belief must turn into discipline, prayer into action, and trust into consistency. A year where doing matters more than declaring, and obedience matters more than aesthetics.&lt;/p&gt;

&lt;p&gt;Sometimes, the most sincere prayer at the edge of a new year isn’t ambitious or poetic. Sometimes it’s simply: “God, I don’t have everything figured out, but I’m willing to walk.”&lt;/p&gt;

&lt;p&gt;And that willingness is sacred.&lt;/p&gt;

&lt;p&gt;Standing alone before God does not mean rejecting religion, leaders, or community. It means refusing to outsource your faith. It means taking responsibility for what you believe, how you hope, and how you live.&lt;/p&gt;

&lt;p&gt;As we move into 2026, may we carry less noise and more depth. Less performance and more truth. Less borrowed motivation and more grounded faith.&lt;/p&gt;

&lt;p&gt;Because when the year truly begins—and challenges inevitably come—it will not be quotes that hold you up.&lt;/p&gt;

&lt;p&gt;It will be the quiet strength you built while standing alone before God.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>mentalhealth</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>2025: The Year I Built Foundations, Not Perfection</title>
      <dc:creator>Congo Musah </dc:creator>
      <pubDate>Tue, 30 Dec 2025 21:32:57 +0000</pubDate>
      <link>https://dev.to/congomusah/2025-the-year-i-built-foundations-not-perfection-1j3f</link>
      <guid>https://dev.to/congomusah/2025-the-year-i-built-foundations-not-perfection-1j3f</guid>
      <description>&lt;p&gt;&lt;strong&gt;2025 in one line:&lt;/strong&gt;&lt;br&gt;
A year of foundation-building, first wins, and learning how hard consistency really is.&lt;/p&gt;

&lt;p&gt;I didn’t finish everything I planned.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
But I became someone capable of finishing bigger things.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And that matters more.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;What Actually Worked (I’m Finally Giving Myself Credit)&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Career &amp;amp; Tech&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This was the year things started to feel… real.&lt;/p&gt;

&lt;p&gt;I bagged my first onsite tech job after working in multiple remote roles across african. That alone deserves more weight than I used to give it. I worked professionally with PHP, WordPress, and Sikasoft, and for the first time, my skills were tied to responsibility, deadlines, and impact.&lt;/p&gt;

&lt;p&gt;On the technical side, I touched MERN, Node.js, Express, MongoDB, system design, and CI/CD. But more importantly, I didn’t just “learn”—I built.&lt;/p&gt;

&lt;p&gt;Some of the projects I shipped or actively worked on:&lt;br&gt;
    • AgriLync&lt;br&gt;
    • WeBarb&lt;br&gt;
    • Artisan Hub&lt;br&gt;
    • Real Rate&lt;/p&gt;

&lt;p&gt;Along the way, I strengthened my portfolio and—almost without realizing it—started thinking beyond stacks and syntax. I began thinking about products.&lt;/p&gt;

&lt;p&gt;Translation: I moved from learning how to build → building things that matter.&lt;/p&gt;

&lt;p&gt;⸻&lt;br&gt;
**&lt;br&gt;
🌱 AgriLync: From Idea to Early-Stage Product**&lt;/p&gt;

&lt;p&gt;AgriLync deserves its own section because it changed me.&lt;/p&gt;

&lt;p&gt;This year, I:&lt;br&gt;
    • Created and grew a WhatsApp community&lt;br&gt;
    • Built a solid early team&lt;br&gt;
    • Hosted webinars&lt;br&gt;
    • Designed UI/UX&lt;br&gt;
    • Started building dashboards (Grower &amp;amp; Agent)&lt;br&gt;
    • Did real strategy work, not just coding&lt;/p&gt;

&lt;p&gt;AgriLync moved from a vague idea in my head to an early-stage product with users, conversations, and direction.&lt;/p&gt;

&lt;p&gt;That’s not failure.&lt;br&gt;
That’s traction.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎤 Visibility, Leadership &amp;amp; Stepping Up&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Quietly, I started showing up in rooms I once only watched from the outside.&lt;br&gt;
    • Served as a hackathon mentor&lt;br&gt;
    • Got invited as a panelist at an AI event&lt;br&gt;
    • Attended and learned from multiple webinars&lt;br&gt;
    • Began public reflection through DEV posts and journey updates&lt;/p&gt;

&lt;p&gt;It didn’t feel loud or dramatic, but I was stepping into thought leadership—learning to share, not just consume.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;📚 Mind, Growth &amp;amp; Inner Work&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Beyond tech, I invested in my thinking.&lt;/p&gt;

&lt;p&gt;I started reading The Lean Startup and No Excuses. I listened to podcasts, began learning product development, worked on improving my communication, and practiced public speaking—even if only “somewhat.”&lt;/p&gt;

&lt;p&gt;Progress here was uneven, but it was real.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;What Didn’t Work (Without Beating Myself Up)&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
This part matters too.&lt;/p&gt;

&lt;p&gt;The pattern was clear:&lt;br&gt;
    • Too many parallel goals&lt;br&gt;
    • Spiritual, fitness, and reading habits often postponed&lt;br&gt;
    • Long gaps of inactivity, especially with consistency-based habits&lt;br&gt;
    • Frequent context switching (Node → Flutter → ML → DevOps)&lt;/p&gt;

&lt;p&gt;This wasn’t laziness.&lt;br&gt;
It was overload.&lt;/p&gt;

&lt;p&gt;I tried to run five lives at once:&lt;br&gt;
    • Engineer&lt;br&gt;
    • Founder&lt;br&gt;
    • Student&lt;br&gt;
    • Spiritual growth&lt;br&gt;
    • Financial reset&lt;/p&gt;

&lt;p&gt;That’s a lot for one human in one year.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;The Part I Rarely Talk About&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
This year wasn’t just challenging on paper—it was heavy in real life.&lt;/p&gt;

&lt;p&gt;There were moments I genuinely felt like giving up.&lt;/p&gt;

&lt;p&gt;I found myself in debt. At one point, I lost almost everything I had within a single day. I questioned my decisions deeply, replayed them over and over, and sat with regret—wondering if I had made the wrong choices entirely.&lt;/p&gt;

&lt;p&gt;There were sleepless nights, trying to figure out how to recover, how to move forward, and how not to quit.&lt;/p&gt;

&lt;p&gt;I even considered shutting down AgriLync.&lt;/p&gt;

&lt;p&gt;My roadmap shifted drastically—more than once. Plans I was confident about fell apart. Some days, progress looked like survival, not growth. There were moments I was put out of home, forced to rethink stability while still trying to build something meaningful.&lt;/p&gt;

&lt;p&gt;Yet, in the middle of all this, something unexpected happened.&lt;/p&gt;

&lt;p&gt;Through my startup journey, I met wonderful people—supportive, kind, and belief-filled. People who reminded me that I wasn’t alone, even when everything felt uncertain.&lt;/p&gt;

&lt;p&gt;That season taught me something no course or tutorial ever could:&lt;/p&gt;

&lt;p&gt;Resilience isn’t built when things work.&lt;br&gt;
It’s built when you keep showing up after things break.&lt;/p&gt;

&lt;p&gt;I didn’t come out of it perfect.&lt;br&gt;
I came out stronger, clearer, and more grounded.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Real Wins (The Invisible Ones)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are the upgrades that don’t show up on GitHub stats:&lt;br&gt;
    • I now understand how hard execution really is&lt;br&gt;
    • I learned that shipping beats planning&lt;br&gt;
    • I experienced community building firsthand&lt;br&gt;
    • I tasted real responsibility&lt;br&gt;
    • I stopped building only “toy projects”&lt;br&gt;
    • I began thinking like a product strategist, not just a developer&lt;/p&gt;

&lt;p&gt;Most people never reach this stage.&lt;br&gt;
I did.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;A Hard Truth (Said With Respect)&lt;/p&gt;

&lt;p&gt;I don’t have a discipline problem.&lt;/p&gt;

&lt;p&gt;I have a focus and energy allocation problem.&lt;/p&gt;

&lt;p&gt;My next level isn’t:&lt;/p&gt;

&lt;p&gt;“Learn more tech.”&lt;/p&gt;

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

&lt;p&gt;Choose fewer things and do them relentlessly well.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;If I Compress My 2025 Into Five Achievements&lt;br&gt;
    1.  My first paid tech work 💰&lt;br&gt;
    2.  AgriLync became real 🌱&lt;br&gt;
    3.  I built multiple usable products 🛠️&lt;br&gt;
    4.  I stepped into mentorship and leadership 🎙️&lt;br&gt;
    5.  I started thinking in systems, not tutorials 🧠&lt;/p&gt;

&lt;p&gt;That’s a successful year—just not a perfect checklist year.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One Question That Matters Going Into 2026&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ll leave myself with this:&lt;/p&gt;

&lt;p&gt;Do I want to be a strong engineer who occasionally builds products,&lt;br&gt;
or a &lt;strong&gt;product builder who uses engineering as a tool?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I don’t need to answer it loudly yet.&lt;br&gt;
But I already know which direction my feet are facing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Above all&lt;/strong&gt;, this year reminded me that I am not carrying this journey alone. In moments of loss, confusion, and exhaustion, faith became my anchor—not because everything made sense, but because I trusted that purpose still existed even when clarity didn’t. I’m deeply grateful for the people who showed up, the lessons that reshaped me, and the strength I discovered in seasons I never asked for. As I step into the next chapter, I do so with hope—not the loud kind, but the quiet confidence that growth is unfolding, even when the path isn’t straight. Whatever comes next, I move forward grounded, grateful, and still building.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>startup</category>
      <category>product</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>This is me for the past few Months- growth is not linear 🧨</title>
      <dc:creator>Congo Musah </dc:creator>
      <pubDate>Mon, 15 Sep 2025 22:55:53 +0000</pubDate>
      <link>https://dev.to/congomusah/this-is-me-for-the-past-few-months-growth-is-not-linear-4dna</link>
      <guid>https://dev.to/congomusah/this-is-me-for-the-past-few-months-growth-is-not-linear-4dna</guid>
      <description>&lt;p&gt;When I look back at my developer journey this year, it hasn’t exactly gone as I planned. My roadmap was ambitious, but along the way I’ve realized something important — growth is not a straight line. It’s messy, full of detours, but also full of lessons that stick with you. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;My Time with jQuery&lt;/em&gt;&lt;br&gt;
“For the past few months, I’ve been working a lot with jQuery and AJAX. Some people may see them as old tools, but for me, they’ve been like a foundation — a way to understand how the web really works. Making dynamic requests, fetching data without refreshing the page, manipulating the DOM — it felt powerful. Almost like React, in its own way. The more I worked with jQuery, the more I noticed how it gave me a small taste of what React tries to solve at a bigger scale.”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A Taste of Real-World Challenges&lt;/em&gt; &lt;br&gt;
“At the same time, I’ve been pushing myself to go beyond tutorials. I started integrating third-party authentications — TikTok, LinkedIn, Pinterest, Discord. Real apps, real users, real logins. And trust me, it wasn’t always smooth. Every provider had its quirks, their own OAuth flow, their own way of handling tokens. But through those struggles, I learned something priceless — building for real people is never as simple as the documentation makes it look. It’s in the debugging, the failed requests, the late-night fixes, that I started to feel like a real software engineer.”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;My Side Path with Cursor&lt;/em&gt;&lt;br&gt;
“And because I didn’t want to lose momentum, I started a personal project with Cursor. Not something big, but enough to keep me productive, to keep my mind sharp, and to remind myself that every small step builds my skillset. Sometimes it wasn’t about finishing the project — it was about staying consistent, staying engaged with the tech, and adopting myself to tools that can shape the future of my career.”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Growth Is Not Linear&lt;/em&gt;&lt;br&gt;
“If I’m being honest, my roadmap didn’t unfold the way I drew it up at the start of the year. I thought I’d be deep into Ml and flutter by now, maybe even shipping production-ready apps. Instead, I found myself rediscovering jQuery, battling OAuth integrations, and tinkering with side projects. But looking back, I see that’s okay. Growth is not linear. Every tool I touched, every bug I fixed, every little project I started — they’re all threads weaving together into the developer I’m becoming.”&lt;/p&gt;

&lt;p&gt;“So, where do I go from here? Maybe ML, maybe deeper into backend systems, maybe something else entirely. What I know is this — the journey matters more than the roadmap. Because even if it doesn’t go exactly as planned, every detour teaches you something new. And that’s how I know I’m still growing, one line of code at a time.”&lt;/p&gt;

&lt;p&gt;Let’s get in touch at &lt;a href="https://congodev.netlify.app" rel="noopener noreferrer"&gt;https://congodev.netlify.app&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>machinelearning</category>
      <category>jquery</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Congo Musah </dc:creator>
      <pubDate>Mon, 15 Sep 2025 22:49:28 +0000</pubDate>
      <link>https://dev.to/congomusah/-29je</link>
      <guid>https://dev.to/congomusah/-29je</guid>
      <description></description>
    </item>
    <item>
      <title>My Transition into System Design: Building Better, Smarter Systems</title>
      <dc:creator>Congo Musah </dc:creator>
      <pubDate>Tue, 17 Jun 2025 17:09:28 +0000</pubDate>
      <link>https://dev.to/congomusah/my-transition-into-system-design-building-better-smarter-systems-1702</link>
      <guid>https://dev.to/congomusah/my-transition-into-system-design-building-better-smarter-systems-1702</guid>
      <description>&lt;p&gt;From clean code to clean systems — my journey into system design and the architectural insights that changed the way I build.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 My Transition into System Design: Building Better, Smarter Systems
&lt;/h2&gt;

&lt;p&gt;At the end of May, I made a conscious shift in my learning journey — I dove deep into &lt;strong&gt;System Design&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;It became clear that writing clean, scalable, and maintainable code goes far beyond just knowing a language or framework — it starts with how your &lt;strong&gt;entire system is designed&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔄 Learn — Unlearn — Relearn
&lt;/h3&gt;

&lt;p&gt;I’ve always believed in the cycle of &lt;em&gt;learn–unlearn–relearn&lt;/em&gt;. So I paused, re-evaluated, and redirected my focus toward understanding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What is system design?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why does it matter?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When do we need it?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This shift opened my eyes to the architectural thinking behind every successful product.&lt;/p&gt;




&lt;h3&gt;
  
  
  🧱 The Foundation: Architecture &amp;amp; PRDs
&lt;/h3&gt;

&lt;p&gt;I started with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Architecture patterns&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PRD (Product Requirements Document)&lt;/strong&gt; — understanding how clear documentation shapes the development lifecycle.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🧩 Enter Microservices — Where the Magic Began
&lt;/h3&gt;

&lt;p&gt;Next came &lt;strong&gt;Microservices Architecture&lt;/strong&gt; — and that’s when things got exciting.  &lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Architectural styles and service boundaries
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Gateway&lt;/strong&gt; and &lt;strong&gt;NGINX&lt;/strong&gt; for routing, load balancing, and security
&lt;/li&gt;
&lt;li&gt;The role of &lt;strong&gt;asynchronous communication&lt;/strong&gt; in system performance&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🗃️ Monorepo vs Polyrepo
&lt;/h3&gt;

&lt;p&gt;Version control and project organization also matter. I studied:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Monorepo&lt;/strong&gt;: Single repository for all services/projects
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Polyrepo&lt;/strong&gt;: Independent repositories for each service/module
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both have their strengths. Knowing when to use one can streamline collaboration and CI/CD processes.&lt;/p&gt;




&lt;h3&gt;
  
  
  🛡️ Security &amp;amp; Structure
&lt;/h3&gt;

&lt;p&gt;I wrapped up with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RBAC (Role-Based Access Control)&lt;/strong&gt; to structure user permissions
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ERD (Entity Relationship Diagrams)&lt;/strong&gt; to visualize data models and relationships across the system&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🎯 The Goal
&lt;/h3&gt;

&lt;p&gt;To &lt;strong&gt;build systems that are clean, efficient, and easy to evolve&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;System design is helping me see how everything connects — from requirements to deployment. And I’m just getting started.&lt;/p&gt;




&lt;p&gt;💬 &lt;em&gt;Are you also diving into system design? Share your experience or favorite resources in the comments!&lt;/em&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.amazonaws.com%2Fuploads%2Farticles%2Flw0antyulpycdh0lj9z9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flw0antyulpycdh0lj9z9.jpg" alt="Image description" width="736" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📌 Connect with me on &lt;a href="https://dev.to/congomusah"&gt;DEV&lt;/a&gt; — that’s where I’ll be documenting the journey further.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Dive into jQuery &amp; AJAX Fundamentals – 3-Day Learning Recap with a curiosity mindset. follow with me</title>
      <dc:creator>Congo Musah </dc:creator>
      <pubDate>Wed, 28 May 2025 17:03:25 +0000</pubDate>
      <link>https://dev.to/congomusah/dive-into-jquery-ajax-fundamentals-3-day-learning-recap-with-a-curiosity-mindset-follow-with-me-4a37</link>
      <guid>https://dev.to/congomusah/dive-into-jquery-ajax-fundamentals-3-day-learning-recap-with-a-curiosity-mindset-follow-with-me-4a37</guid>
      <description>&lt;p&gt;Over the past three days, I’ve focused on building a strong foundation in jQuery and AJAX, diving into both theory and practice. Here's a breakdown of the key concepts, how they work together, and how I used them in a hands-on project (a simple blog app).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;jQuery&lt;/strong&gt;: What It Is and Why It Matters&lt;br&gt;
jQuery is a lightweight JavaScript library that simplifies DOM manipulation, event handling, and AJAX interactions. It allows developers to write less code while achieving more, especially in projects that rely heavily on dynamic content. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core jQuery Concepts I Studied&lt;/strong&gt;&lt;br&gt;
• • Selectors: Easily target HTML elements:&lt;br&gt;
•    - $('#id') – selects an element by ID&lt;br&gt;
•    - $('.class') – selects elements by class&lt;br&gt;
•    - $('tag') – selects all elements of a given tag&lt;br&gt;
• • DOM Manipulation:&lt;br&gt;
•    - .text(), .html(), .val(), .addClass(), .hide(), .show()&lt;br&gt;
• • Event Handling:&lt;br&gt;
•    - .click(), .on(), .change()&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;jQuery Filters and Statements&lt;/strong&gt;&lt;br&gt;
jQuery statements use the $ function as a shorthand for jQuery. Filters help refine selections. Examples:&lt;br&gt;
•    $('li:first')      // First list item&lt;br&gt;
•    $('input:checked') // Checked checkboxes&lt;br&gt;
•    $('div:visible')   // All visible divs&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AJAX: Asynchronous JavaScript and XML&lt;/strong&gt;&lt;br&gt;
AJAX allows web applications to communicate with a server without reloading the page. It’s essential for dynamic, real-time web apps.&lt;br&gt;
What I Learned About AJAX&lt;br&gt;
• • How it works: AJAX uses the XMLHttpRequest object.&lt;br&gt;
• • Common methods: $.ajax(), $.get(), $.post()&lt;br&gt;
• • Callbacks: success, error&lt;br&gt;
XMLHttpRequest (XHR)&lt;br&gt;
AJAX is built on the XMLHttpRequest object. Key methods include:&lt;br&gt;
•    - .open(method, URL)&lt;br&gt;
•    - .send()&lt;br&gt;
Example:&lt;br&gt;
let xhr = new XMLHttpRequest();&lt;br&gt;
xhr.open('GET', 'data.json', true);&lt;br&gt;
xhr.send();&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;jQuery + AJAX: How They Work Together&lt;/strong&gt;&lt;br&gt;
jQuery simplifies the process of making AJAX calls by wrapping XMLHttpRequest in utility methods like $.ajax() or $.post().&lt;br&gt;
Real-World Scenario: In a blog app:&lt;br&gt;
• • I used jQuery to submit a blog form via AJAX&lt;br&gt;
• • Data was sent to a PHP backend&lt;br&gt;
• • On success, jQuery updated the DOM to show the new post—without refreshing the page&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practical Skills Gained&lt;/strong&gt; &lt;br&gt;
Select and update DOM elements using jQuery ✅&lt;br&gt;
Use jQuery events like .click(), .on()  ✅&lt;br&gt;
Fetch and display JSON data using AJAX  ✅&lt;br&gt;
Send form data asynchronously   ✅&lt;br&gt;
Handle success and error callbacks  ✅&lt;br&gt;
Dynamically update DOM after AJAX responses ✅&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hands-On: Blog Post App&lt;/strong&gt;&lt;br&gt;
Built with HTML + CSS + jQuery + PHP + MySQL&lt;br&gt;
• • Fetches blog posts from MySQL using PHP&lt;br&gt;
• • Posts are displayed using jQuery and AJAX&lt;br&gt;
• • Form data is submitted asynchronously&lt;br&gt;
• • DOM is updated without full page reload&lt;br&gt;
Backend: PHP + MySQL&lt;br&gt;
Frontend: HTML, CSS, jQuery&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;br&gt;
Mastering jQuery and AJAX fundamentals helped me build dynamic, responsive apps quickly. While modern frameworks like React and Vue handle much of this today, understanding how jQuery and AJAX work gives me deeper insight into how modern front-end works under the hood.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s Next?&lt;/strong&gt;&lt;br&gt;
I’ll continue with AJAX CRUD operations, real-world API integrations, and build a mini project by the end of the week to fully consolidate what I’ve learned.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;check out my portfolio here and let's get interactive&lt;/strong&gt;: &lt;a href="https://congodev.netlify.app" rel="noopener noreferrer"&gt;https://congodev.netlify.app&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fcrqs51hn444gopozzciz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcrqs51hn444gopozzciz.jpg" alt="Image description" width="464" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Been having fun with TDD for the past two weeks- this is to boost my confidence &amp; and how to logically refactor code</title>
      <dc:creator>Congo Musah </dc:creator>
      <pubDate>Fri, 09 May 2025 00:37:15 +0000</pubDate>
      <link>https://dev.to/congomusah/dive-into-tdd-for-the-past-two-week-this-is-to-boost-my-confidence-353j</link>
      <guid>https://dev.to/congomusah/dive-into-tdd-for-the-past-two-week-this-is-to-boost-my-confidence-353j</guid>
      <description>&lt;p&gt;Hello Devs! Over the past two weeks, I’ve been sharpening my backend testing skills and diving deep into Test-Driven Development (TDD) using Node.js, Jest, and SuperTest.&lt;/p&gt;

&lt;p&gt;Here’s a breakdown of everything I learned and practiced — plus a step-by-step guide to how I implemented it on my backend project.&lt;/p&gt;

&lt;p&gt;🔗 GitHub Repo: &lt;a href="https://github.com/CongoMusahAdama/webarb-be" rel="noopener noreferrer"&gt;https://github.com/CongoMusahAdama/webarb-be&lt;/a&gt;&lt;br&gt;
🐦 Twitter/X: @1real_vee&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Test-Driven Development (TDD) The Foundation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I learned that TDD flips the traditional workflow:&lt;br&gt;
    • Red – Write a test that fails.&lt;br&gt;
    • Green – Write just enough code to make it pass.&lt;br&gt;
    • Refactor – Clean up the code while keeping tests green.&lt;/p&gt;

&lt;p&gt;This cycle ensures that code is:&lt;br&gt;
    • Behavior-driven&lt;br&gt;
    • Reliable and testable&lt;br&gt;
    • Cleaner over time&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Unit Testing with Jest&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unit tests target small, isolated functions. Using Jest, I could:&lt;br&gt;
    • Test logic like validation, utilities, and controllers.&lt;br&gt;
    • Avoid dependencies like databases.&lt;br&gt;
    • Use clear structure (AAA Pattern).&lt;/p&gt;

&lt;p&gt;I used Unit Testing on the Auth and User Management modules to ensure isolated logic was tested thoroughly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arrange&lt;/strong&gt;&lt;br&gt;
const input = 2;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Act&lt;/strong&gt;&lt;br&gt;
const result = square(input);&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assert&lt;/strong&gt;&lt;br&gt;
expect(result).toBe(4);&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. API Integration Testing with SuperTest&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To test real-world behavior, I used SuperTest to:&lt;br&gt;
    • Simulate HTTP requests (e.g., PUT /profile).&lt;br&gt;
    • Test how routes, middleware, and services work together.&lt;br&gt;
    • Confirm correct status codes and JSON responses.&lt;/p&gt;

&lt;p&gt;✅ I applied Integration Testing to the Barber Management module to verify end-to-end flow and API behavior across multiple components.&lt;/p&gt;

&lt;p&gt;✅ Tested Scenarios:&lt;br&gt;
    • Authenticated user can update their profile.&lt;br&gt;
    • Returns 400 for invalid data.&lt;br&gt;
    • Handles errors from services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. AAA Pattern – Arrange, Act, Assert&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This structure gave my tests clarity:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arrange&lt;/strong&gt;&lt;br&gt;
Set up data, mocks, and preconditions&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Act&lt;/strong&gt;&lt;br&gt;
Call the function / make the request&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assert&lt;/strong&gt;&lt;br&gt;
Check the result or output&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Mocks and Spies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I mocked database logic using:&lt;/p&gt;

&lt;p&gt;jest.mock('../services/userService.js', () =&amp;gt; ({&lt;br&gt;
  updateProfile: jest.fn(),&lt;br&gt;
}));&lt;/p&gt;

&lt;p&gt;This helped me:&lt;br&gt;
    • Avoid hitting real DBs&lt;br&gt;
    • Test error handling&lt;br&gt;
    • Control the response of services&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Test Coverage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To ensure I tested enough of the code, I used:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;[jest --coverage ]&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It reports:&lt;br&gt;
    • ✅ Statements&lt;br&gt;
    • ✅ Branches&lt;br&gt;
    • ✅ Functions&lt;br&gt;
    • ✅ Lines&lt;/p&gt;

&lt;p&gt;🎯 Goal: Write meaningful tests—not just 100% for the sake of it.&lt;/p&gt;

&lt;p&gt;These two weeks gave me a solid foundation in:&lt;br&gt;
    • TDD mindset&lt;br&gt;
    • Unit &amp;amp; integration testing&lt;br&gt;
    • Writing clean, maintainable tests&lt;/p&gt;

&lt;p&gt;🧑🏽‍💻 I’m open to criticism, suggestions, and areas for improvement — and also ready to collaborate on backend projects using Node.js!&lt;/p&gt;

&lt;p&gt;Let me know if you’re starting your TDD journey or want to connect!&lt;/p&gt;

&lt;p&gt;🧑🏽‍💻 GitHub: @musahcongoadama&lt;br&gt;
🐦 Twitter/X: @1real_vee&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[](`url`)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>webdev</category>
      <category>node</category>
      <category>tdd</category>
      <category>programming</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Congo Musah </dc:creator>
      <pubDate>Thu, 08 May 2025 20:42:03 +0000</pubDate>
      <link>https://dev.to/congomusah/-ikl</link>
      <guid>https://dev.to/congomusah/-ikl</guid>
      <description></description>
      <category>development</category>
      <category>programming</category>
    </item>
    <item>
      <title>Looking for FastApi Buddy !</title>
      <dc:creator>Congo Musah </dc:creator>
      <pubDate>Thu, 27 Jul 2023 21:30:35 +0000</pubDate>
      <link>https://dev.to/congomusah/looking-for-fastapi-buddy--4jg2</link>
      <guid>https://dev.to/congomusah/looking-for-fastapi-buddy--4jg2</guid>
      <description>&lt;p&gt;Good day techies, trust y’all good?&lt;br&gt;
Who is currently taking up Fastapi project or have an idea about fastApi &lt;br&gt;
🇬🇭&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
