About Me — Francis Bannerman
From Code to Soccer Fields: My Journey as a Self-Taught Backend Engineer Enthusiast
I never planned on becoming a software engineer. There was no childhood dream of building the next great app, no computer science degree hanging on my wall. Just curiosity, stubborn persistence, and countless late nights debugging code that refused to work.
Four years ago, I got employed as an Inventory Manager in a Fintech(Hubtel Ghana) when they had just entered the e-commerce space. To make my work and reports easy, I took up some YouTube videos on shortcuts I could use in Excel. A blend of curiosity and laziness drove me to delve deeper into automating some of these repetitive inventory management tasks and reports. Then I stumbled across Python language and started taking FreeCode courses on YouTube. Got stuck several times and whenever I asked for help from the in-house engineers, they would ask me to use C#, which is the engineering language used by the engineers at my workplace. On a whim, I downloaded Visual Studio and dove into C# tutorials.
That first week was brutal. I kept thinking, “Who invented these damn semicolons anyway?” But something clicked. The logic made sense to me — the way everything had to fit together perfectly or nothing worked at all. It reminded me of watching soccer matches, where one Toni Kroos pass could collapse an entire correctly shaped defensive sequence.
Learning in the Deep End
Being self-taught means you’re constantly swimming in the deep end. There’s no professor to ask when Stack Overflow fails you at 2 AM or when ChatGPT code just will not run. When I built my first real project — a simple To-Do app — I celebrated alone in my apartment with a bottle of Coca-Cola and Frankie’s shawarma. Nobody else understood why I was so excited about finally implementing proper dependency injection.
Last year, I launched Baggin Beads, an e-commerce site for my girlfriend where she sells her handmade jewelry for pickup or delivery anywhere in the world; not the point. Four years earlier, I could barely print “Hello World” to a console.
What nobody tells you about being self-taught is how isolating it can be. You don’t have classmates to commiserate with or professors to guide you. It’s just you, the problem in front of you, and a hundred extra Google Chrome tabs. And honestly, some days suck.
Where Soccer Meets Code
Most weekends, you’ll find me glued to soccer matches. Not just watching — analyzing. I track patterns, playing styles, expected goals and the players that make the most impact on the game and what to expect from them next. My friends laugh when I bring up my predictive scores and game analysis before and during halftime conversations, but they still come to me before placing bets.
Soccer isn’t just a hobby — it’s how i break from routine and re-energize myself. It’s shaped how I approach coding problems. Both require patience, pattern recognition, and the ability to predict what happens next. A good midfielder sees passes before they’re possible; a good developer anticipates edge cases before they crash production.
As a Madridista, I spent hours analyzing Dani Olmo when he transferred to Barcelona to see where his strengths are, how he can hurt us and how we can stop him. How does he improve this stubborn Barcelona side and what that means for Ceballos in the national team place. The same weekend, I was optimizing database queries for Baggin Beads and looking at building another platform for users to find gyms close to them more easily. Different contexts, same mental process: looking for patterns and platforms that would aid decision making.
Finding My Path in Engineering
Recently, I’ve been teaching myself Python — partly because it’s unavoidable in 2025, but mostly because I want to dive deeper into machine learning. I’ve built a simple model that predicts player performance based on historical data. It’s nothing groundbreaking, sometimes even heartbreaking because watching something I built predict that Real Madrid is to win against Arsenal and that didn’t happen had me relooking at the codebase and watching the match over and over again just to understand where it all went wrong.
Nowadays, the intersection of backend development and AI is where I feel most alive. There’s something profoundly satisfying about building systems that can handle massive amounts of data and extract meaningful insights. Whether it’s optimizing an e-commerce recommendation engine or predicting soccer transfer values and likely goal scorers, the problems are endlessly fascinating.
The Reality No One Talks About
Here’s what those polished LinkedIn success stories don’t tell you: learning on your own is messy. For every “eureka” moment, there are weeks of frustration. Last month, I spent three days tracking down how a user was able to checkout with an amount of “0” which was caused by a single line of code. No mentor to call. No study group to brainstorm with. Just me, coca-cola and my increasingly desperate Google searches.
But that’s also the beauty of it. Every problem solved is entirely mine. Every working feature is a personal victory. When users browse smoothly through Baggin Beads, they don’t see the countless hours of debugging that went into the caching system. But I know. And weirdly, that’s enough.
Where I’m Headed
I don’t have a five-year plan or aspirations to found the next unicorn startup. What drives me is simpler: I want to build things that work beautifully and solve real problems. I want to keep learning, earning-of course-, keep growing, and keep finding those moments where technology feels like magic.
Right now, that means exploring how to integrate machine learning models into .NET applications. It means diving deeper into data science, both for my professional projects and my soccer obsession. And it means embracing the reality that I’ll always be learning, always be slightly uncomfortable, always wondering if I’m doing it “right.”
But that’s the thing about being self-taught — there is no “right” path. There’s just my path and it has led me from confused beginner to someone who can build systems that thousands of people use daily.
So if you’re out there learning on your own, struggling through tutorials and wondering if you’ll ever “get it” — keep going. The view from the other side is worth it. And trust me, you never stop being a beginner at something. That’s not a bug in the self-taught journey — it’s the feature that makes it worthwhile.
Now, if you’ll excuse me, I need to complete this “selective promo” feature before the Champions League matches start. Some priorities never change.