Code and Words
A 2025 retrospective
I’ve always thought the best measure of a good technical year was how much you shipped.
This year though, has taught me something more precise: a good year is one where your thinking changes.
2025 wasn’t about chasing frameworks or padding a GitHub profile. It was about building systems, returning to fundamentals, working with others, and slowly moving from someone who codes to someone who takes responsibility for software.
I started close to the ground, working on small projects in C#. One of them wast Array-Demo, a visualizer for rectangular and jagged arrays. It was simple, but it forced me to slow down and explain things clearly to myself first.
This led to GitMaster, a .NET tool designed to teach Git interactively. Turning Git concepts into a learning tool pushed me beyond muscle memory. I had to reason about state, transitions, and workflows from first principles.
By midyear, my focus shifted toward systems design. I built Vesper, a Go backend for time-block planning. The challenge wasn’t the feature list but learning to respect simplicity in persistence and API design. Go’s lack of abstractions ensures you feel the weight of every decision.
I also worked on mnotify-ts-sdk, a TypeScript SDK for the mNotify SMS platform. This was my first serious encounter with SDK design. Writing an SDK is different from writing an app. You’re not just solving your own problem; you’re defining a contract other developers will rely on. Error surfaces matter. Types matter. Naming matters.
As the year progressed, my work became increasingly collaborative. I worked on GitMate, a CLI tool I built with my team at work ( Orcta Technologies) to improve Git workflows. Team projects force a different discipline. You write code knowing someone else will read it, modify it, or maintain it after you. You start caring about conventions, documentation, and restraint.
I also joined EaseCHAOS as a maintainer. EaseCHAOS is a class scheduling system used by students at my university.
One of the most meaningful moments happened outside the editor. Attending PyCon Africa 2025 in Johannesburg was a lesson in the human side of engineering. Seeing how African developers use open source to solve local problems reminded me that technology is never neutral. It reflects the values of its builders. I returned with a commitment to deeper engagement: always ask a thoughtful question and share ideas even when nervous.
In December, I released PodPlay, a full-stack podcast player. This project it integrated the year’s lessons: a Python backend, a clean API, vanilla JavaScript, and a UI that respects the user’s attention. It isn’t perfect, but it is complete. It felt like closing a loop from fundamentals to a user-facing product.
2025 wasn’t only about building; it was about reflecting on the how. In my essay, “How AI Almost Broke Me and How Deep Work Brought Me Back,” I explored the tension between shipping and understanding.
I had to admit:
I could ship, but I couldn’t explain.
The solution was a return to Cal Newport’s principles of deep work. For the past three months, I’ve committed to two hours of undistracted focus daily. This practice has changed my life and career trajectory more than any framework ever could.
Other writing followed the same thread.
In “The Silent Teacher “I reframed setbacks as lessons
“Growth isn’t about speed or hitting milestones. It’s about struggle, patience, and doing small things well.”
Across Substack, Notion, and LinkedIn, my goal was to write candidly, to share lessons from coding, AI, and life, and to invite peers into reflection and action.
Looking back, several threads stand out across code and writing:
Mastery over shortcuts: Deep understanding matters more than fast delivery
Patience and reflection: Setbacks and struggle are teachers
Documentation and stewardship: Whether code or words, clarity and care matter
Projects
Learning & Fundamentals:
Array-Demo – C# console app for visualizing arrays
GitMaster – Interactive Git learning CLI
Backend & Systems:
Vesper – Go backend for structured time-block planning
Quotes-Africa – Starter API for quotes services
SDKs & Tools:
mnotify-ts-sdk – TypeScript SDK for SMS integration
listen-to-this-article – Text-to-speech tool for web articles
GitMate – Git CLI companion for team workflows
Collaborative Projects:
valkey-collab-demo – Real-time collaborative whiteboard
EaseCHAOS – Class scheduling system (maintainer)
User-Facing Apps:
PodPlay – Full-stack podcast player
Photo-Album – Simple web gallery app
2026 for me began last week. It is one continuous loop. I am starting the new year ready to work deeper, slower, and with more purpose.




