I wrote my first real program in 2018. Nobody assigned it to me and there was no course behind it. I wanted to build an Android app, so I learned Java and kept going until it ran on a phone.
Eight years later I work as a full-stack developer. This post covers the path between those two points and what I learned along the way.
Stage 1: Self-taught Android in Java
My first serious project was an educational Android app for students preparing for the Baccalaureate. I designed it, built it in native Java, and published it on the Google Play Store on my own.
Shipping to the Play Store taught me things no tutorial covered:
- Real users don’t follow your plan. They open screens in the wrong order, rotate the phone mid-action, and lose connectivity.
- Publishing comes with paperwork. Store listings, screenshots, versioning and policy reviews are all part of shipping software.
- Content is a product too. An educational app only works if the material is well organized.
I followed it with a voice-command Android app, which I also published. It has since been delisted because I stopped maintaining it, and that taught me something too: software that isn’t maintained eventually stops existing. Platforms change, APIs get deprecated, and store policies tighten.
Stage 2: Desktop applications with WinDev
Next I built desktop applications in WinDev / W-Language. It’s a very different world from Android. The focus is business software: forms, databases, reports and the workflows that companies run on.
That experience changed how I think about software. Clever features matter less than reliable workflows. A business app that saves people ten minutes a day, every day, is worth more than an impressive demo.
Stage 3: Formal training
From 2022 to 2025 I earned an engineering degree in computer science at Université Aube Nouvelle. Being self-taught got me building quickly. The degree filled in the fundamentals behind what I was already doing: algorithms, data structures, databases, networks and software engineering practices.
The two complemented each other. Having already shipped projects made the theory concrete, and the theory made my projects better.
Stage 4: Modern web and full-stack work
Over time I moved to modern web stacks: React, Next.js, Tailwind CSS, Node.js, and later Spring Boot on the backend. I used them to build projects such as BONKOUNGOU POS, a point-of-sale system that runs over a network so several terminals share one backend.
The POS taught me about the problems you get once more than one machine is involved: concurrent writes, keeping terminals in sync, and what happens when one of them drops off the network.
Today: full-stack work in a professional team
Since June 2026 I’ve been a full-stack developer intern at SM Protection Global Solution Inc. The work is what I enjoy most: features that go from the interface all the way down to the backend services.
Working inside a company has taught me things my own projects couldn’t:
- Requirements come from people, not from me. Turning a business need into a feature means asking questions until the rules are clear, then checking the result with the people who asked for it.
- Code is read more than it’s written. In a shared codebase, clear structure and consistency matter as much as getting the feature to work.
- Reliability beats cleverness. Business software is used every day, so a feature that always works is worth more than an impressive one that sometimes doesn’t.
What’s next: AI
Alongside my job I’ve been going deeper into AI agents, machine learning and generative AI. I’ve built a RAG-powered agent (BONKOUNGOU AI) and a generative image tool (BONKOUNGOU LABS), and I completed a certificate in AI Agents and Agentic AI from Vanderbilt University on Coursera.
What I’d tell someone starting out
- Ship something real early. A published app, even a small one, teaches more than a dozen tutorials.
- Maintenance is part of the job. Plan for it, or plan for the project to disappear.
- Learn the fundamentals eventually. Self-teaching gets you moving, and theory makes you better.
- Follow the problems, not the hype. Every stack I learned, I learned because a project needed it.
Thanks for reading. If you’d like to talk about any of this, reach out on GitHub or by email.