Where It Started
I started programming with Python in September 2025, and it is still my favourite language. My first programs were small: calculators, a maths game, simple utilities. None of them were impressive, but each one taught me to break a problem into steps, read an error message properly, and fix my own mistakes.
Python suited that stage well. It stays out of the way while you learn how programs actually work, which is exactly what a beginner needs.
Learning Beyond Syntax
Knowing syntax and building software turned out to be different skills. I worked through Python fundamentals, then object-oriented programming, inheritance, decorators, recursion and modules. Those topics taught me more than new keywords. They taught me how to organise code so that it can change.
A class is a decision about where responsibility lives. A module is a decision about what should stay separate. Once I started thinking that way, long scripts became harder to justify, and splitting them up became a habit.
From Experiments to Real Projects
Practice exercises only go so far, so I started building things with a purpose.
- Campus Desk is a student management system in Python with desktop, mobile, web and terminal interfaces.
- Student Hub is a progressive web app for a Computer Science department, built with Node.js, Express.js and PostgreSQL.
- Elite Ballers FC is a football club management platform built with HTML, CSS, JavaScript and Supabase, and deployed on Render.
- CyrusBot is a modular WhatsApp automation platform built on Node.js and Baileys.
Each project pushed me into something new: web development, databases, APIs, authentication and deployment. Several of them use JavaScript because the problem called for it, and working across both languages has shown me which ideas are specific to a language and which are general.
The Reality of Building Software
Real projects are less tidy than exercises. I have spent hours debugging problems that turned out to be small. I have met deployment issues that did not appear locally, worked through database configuration, and had to make architectural decisions before I fully understood their consequences.
None of that appears in a tutorial, and all of it is the job. What I took from it is simple: read the error carefully, change one thing at a time, and decide on a structure before the code decides for me. I am still learning to write code that stays maintainable as it grows, and I would rather say that plainly than pretend otherwise.
What I'm Working Towards
My long-term goal is to become a highly capable software engineer and build products that solve meaningful problems. To me, that means understanding a system well enough to explain every part of it: how the data is stored, how requests move, why the code is organised the way it is, and how it behaves once it is deployed.
For now, my focus is backend engineering, API design, database design and cleaner, more structured code.
What's Next
In the near term I want to go deeper on the backend: well-designed REST APIs, better database design, and more testing. I also want to document my projects properly, with their decisions and trade-offs, and take my work with AI integration further.
If you are building something and think I could help, or you simply want to talk about any of this, you can get in touch. You can also see everything I have built on the projects page.

