Skip to main content

Command Palette

Search for a command to run...

Welcome to Build, Break, Learn

My route from curious beginner to Software Engineer

Published
5 min read
Welcome to Build, Break, Learn
M
I'm Moussa, a Beninese Software Engineer based in Rwanda. I took what many considered an unlikely path, pivoting from Diplomacy and International Relations to Software Engineering. That career switch taught me something I carry into everything I do: the best learning happens when you're willing to start from zero. I work as a full-time software engineer and contribute to nonprofits supporting African students and sport talents in their education. I'm passionate about EdTech and AI and their potential to empower learners across Sub-Saharan Africa. Writing is how I process what I learn and give it back — every article here is something I wish I'd found when I was figuring it out myself. Fun facts: I'm a certified IJF judo instructor, I taught myself English through YouTube, and I'm always one rabbit hole away from picking up something new.

If you're reading this, you're probably a developer, or becoming one.
Either way, welcome. I'm glad you're here 🙂.

I'm Moussa Kalam AMZAT, a proud citizen of the Benin Republic 🇧🇯.
I'm a Software Engineer with 2+ years of work experience based in Kigali, Rwanda, and this blog is something I should have started a long time ago.
Let me tell you why.

The long road here

My journey into tech didn't start with a computer science degree. It started with Diplomacy and International Relations. That's what I studied. That's the career I was building. And for a while, that was the plan.

But somewhere along the way, I feel in love with learning autonomously and building things. Not policy frameworks, actual systems that solve real problems. So I made a decision that scared me: I broke away from everything I knew and started over in tech. From ZERO.

So I went all in. I enrolled in a BSc. (Honors) in Software Engineering, graduated in June 2025, and taught myself everything I could alongside it: YouTube tutorials, documentation, online courses, bootcamps, and a stubborn refusal to give up.

That journey, building something, breaking away from it and learning through the process, is exactly why this blog is called Build, Break, Learn. It's not just catchy name. It's the cycle that defines how I got here, and it's how I approach every new thing I learn as a developer: I build it, I break it, I figure out why, and I come out the other side understanding it at a level I couldn't have reached by just reading about it.

Why this blog exists

For years, every time I learned something new, I documented it. Detailed notes, step-by-step breakdowns, real examples, the works. But I never shared any of it. I figured everything was already on the internet. Someone smarter had already explained it better. Why bother?

Then a colleague of mine, Fabien Ishimwe, asked me a question I couldn't answer: "You document everything you learned. You are great at explaining what you know. Why are you keeping all that to yourself?"

He was right. So here I am.

Who is this blog for

I write for developers who want to actually understand what they're using, not just copy-paste code and hope it works.

If you've ever stared at a tutorial and thought "Okay, but why does this work?", this blog is for you.

If you're starting out and most resources feel like they're written for people who already know the thing they're trying to learn, this blog is for you.

I especially write with aspiring developers and students in mind, because I believe we deserve technical content that is practical, clear, and doesn't assume we all had the same starting point.

How I write

I have a few principles that shape every article on this blog:

  • I put myself in your shoes: I mainly write about things that took me time to understand. If something confused me, I assume it'll confuse someone else too. So I take the time to break it down the way I wish someone had broken it down for me.

  • I explain the why, not just the how: I'm not interested in showing you how to use something without helping you understand why it works. I want you to see what's happening underneath, how the pieces connect, and what's actually going on when you run that code.

  • I keep it digestible: No 45-min reads. I organize topics into short series so you can learn at your own pace without feeling overwhelmed. Each article is a small, focused step forward.

  • I write like we're talking: No academic tone. No unnecessary jargon. Just a clear, honest conversation between two people who care about getting better at this craft.

What I'll be covering

This blog will span everything I'm learning and building as a developer:

  • Full-stack web development: TypeScript, React, Next.js, and the frameworks and tools I use every day.

  • Python: From the fundamentals to more advanced patterns.

  • AI and Data: I'm investing deeply into this space and I'll be documenting as I go.

  • Authentication and databases: Real-world patterns using the best and recommended tools out there.

  • Developer Life: Career switches, learning strategies, and the things nobody tells you when you're starting out.

💡
New articles will be dropping 1 - 2 times a week, organized into series so you can follow along at your own pace.

A personal note

If you're someone who's just getting started in tech, or if you've ever felt like you don't have the "right" background to be a developer, I want you to know that I get it. I've been there. I studied diplomacy and international relations. I learned English on my own through the internet and English communities in Benin, a country that primarily speaks French, and then switched careers in a way that baffled many people I knew.

And here I am, writing to you as a Software Engineer.

The path doesn't have to be straight. It just has to keep moving. Some moves are so decisive that they don't need constant motion to matter. Build, break, learn and repeat.

I'm glad you're here. Let's learn together

-- Moussa Kalam AMZAT

Add value and get rewarded ❤️