From Engineering School to Software Engineer: My Journey
The story of how I went from studying at ENSIASD to building SaaS platforms, freelancing internationally, and presenting at GITEX Africa — and what I learned along the way.


Table of Contents
Every developer’s journey starts somewhere. Mine began in a small classroom at EST Sidi Bennour, writing my first lines of C code on a clunky desktop computer. I had no idea then that those humble printf("Hello, World!") exercises would lead me to building restaurant management SaaS platforms, scraping millions of data points, and presenting at GITEX Africa.
This post is my origin story — not because it’s unique, but because I hope it shows that the path to becoming a software engineer is rarely a straight line.
The Beginning: EST Sidi Bennour
I started my higher education at EST Sidi Bennour, a technical institute that gave me my first real exposure to programming. The curriculum was practical — we learned C, algorithms, and data structures. I remember spending late nights in the computer lab, debugging pointer arithmetic and trying to wrap my head around recursion. It was frustrating, exhilarating, and addictive.
What EST taught me wasn’t just syntax — it taught me how to think like an engineer. Break problems down. Test assumptions. Iterate until it works. Those principles stuck with me.
Leveling Up: ENSIASD
After EST, I moved to ENSIASD (École Nationale des Sciences Appliquées et d’Ingénierie), one of Morocco’s top engineering schools. The jump in difficulty was staggering. Suddenly, I wasn’t just writing small programs — I was learning about software architecture, database design, networking protocols, and project management.
ENSIASD pushed me beyond what I thought I was capable of. Group projects taught me version control (Git) the hard way — after one too many merges gone wrong. A particularly tough distributed systems class forced me to truly understand how the web works under the hood: HTTP, TCP/IP, DNS, load balancing. These fundamentals became invaluable later when I started building production applications.
Going Freelance: The Real Education
While still in school, I started taking freelance projects. This was where my real education began. In school, projects are neat — requirements are clear, deadlines are reasonable, and the “client” always knows what they want. In the real world, none of that is true.
My first freelance project was a simple landing page for a local business. I quoted $200, spent three weeks on it, and learned more about CSS than any course ever taught me. More importantly, I learned about client communication, scope creep, and the importance of a contract.
Platforms like Upwork became my gateway to global clients. I worked with startups from the US, UK, and across Europe. Each project taught me something new:
- A real estate platform taught me about API design and why REST conventions matter
- An e-commerce scraping project forced me to master Selenium and proxy rotation
- A SaaS dashboard introduced me to real-time WebSockets and the challenges of keeping state synchronized across clients
The SaaS Leap: Garista
The most significant project of my career so far has been Garista, a cloud-based restaurant management platform. This wasn’t just another freelance project — it was a full SaaS product that I architected and built from the ground up.
Garista is built on a Next.js + Laravel stack with MySQL, Redis, and WebSocket support. The idea was simple: give restaurants a modern, cloud-based tool to manage orders, menus, staff, and reporting. The execution was anything but simple.
I learned hard lessons about:
- Database indexing — the hard way, when a simple query took 12 seconds on a production database with 100,000+ orders
- Caching strategies — Redis isn’t a magic wand; you need to know what to cache, for how long, and when to invalidate
- Multi-tenancy — keeping restaurant data isolated while sharing infrastructure
- Deployment pipelines — automating builds, tests, and deployments so you can ship with confidence
Garista was also the project that earned me a spot at GITEX Africa, where I presented the platform and connected with investors, potential clients, and other builders. It was a surreal moment — from debugging C code at EST to showcasing my own SaaS at one of Africa’s biggest tech conferences.
Why I Started This Blog
Writing is one of the best ways to learn. When I write about a topic, I’m forced to understand it deeply enough to explain it clearly. That clarity benefits you, the reader, but it benefits me just as much.
I also believe that the Moroccan and African tech ecosystem needs more voices sharing real, practical knowledge. There’s no shortage of generic programming tutorials out there, but there’s a gap in content that addresses the specific challenges and opportunities of building software from this region.
What to Expect
On this blog, you’ll find:
- Technical deep dives into topics like TypeScript, Python automation, SaaS architecture, and web performance
- Freelancing insights — finding clients, pricing projects, managing remote work
- Project postmortems — what went right, what went wrong, and what I’d do differently
- Career reflections — lessons from the journey so far
I write for two audiences: developers who are early in their journey and want practical, actionable advice, and experienced builders who might find something useful in my mistakes and successes.
Let’s Connect
The best part of putting your work out there is the conversations it starts. If something here resonates with you — or if you disagree and want to argue — reach out. I’m active on GitHub and always open to connecting with fellow developers.
One thing I’ve learned: the best time to start sharing your knowledge was yesterday. The second best time is today. Whether you’re a student trying to break into tech, a freelancer looking for your next client, or an experienced engineer building your first SaaS — your perspective matters, and someone out there needs to hear it.
Thanks for reading. Let’s build something.