I’ll be hosted by the Kampala Facebook Developer Circle to an Ask Me Anything session. To give context for some questions, here’s a bit more about me and my journey as a software engineer in Uganda:
A friend, Andrew, and I had an idea to start a job-matching/sports-betting site in our S.6 vacation. I say job-matching/sports-betting because I can’t quite remember which of the two it was. Either way, we paid someone to build the website and we never got a thing. I think the desire to learn to build sites myself was birthed then.
I studied Electrical Engineering. When it came to time to do internship(which happens in the second year), I chose to join a web development company. First, I wasn’t sure the Faculty would allow me to do web development for internship since it wasn’t part of the things we were taught. Secondly, I worried that I might be given a poor grade because of that choice.
The Faculty agreed. Helika Limited, a private company, took me on. I had access to the internet and I was told we’d use WordPress for the first website we’d do. I spent my first day cramming HTML tags.
By the end of the internship, I’d put together a website for a client using WordPress. I’m not certain it was ever published. Special thanks to the amazing Hellene K. for getting me started with a keen eye on quality and professionalism.
I was fortunate enough to make it into MTN Uganda for my next internship a year later. I worked in the Network Operations Center – the NOC. It is a section that monitors the status of the telecom network and also addresses some customer issues. I got to see the practical side of the telecom aspects I was learning in school.
I was still coding. One particular project that consumed me was building an arts & crafts website. I was targeting a launch around the 2007 Commonwealth Heads of Government Meeting (CHOGM) that Uganda would host. I used Joomla to build it. I got a lot of help from a course mate, Wallace., who was already doing work for some major clients at the time. CHOGM came and went and my site didn’t see the light of day…
For my final year project in school, a friend and I designed a fire alarm system with SMS notification. It involved interfacing with and programming microprocessors. It was a disaster. I’m still getting lessons from FundiBots to make up for it.
Just before completing school, there was an opportunity to join MTN as a temporary staff member in the NOC. I applied and since I’d interned in that section before, I got in. It was one foot in the door…
I loved the team – they really helped me find the ropes and learn the telecom network well. Sam Naseke, Thaddeus, Mark Oula, Collins Kiwotoka, Irene Ekama, everyone. I particularly loved the night shift – less traffic on the network so I got to do more coding. I built an app that made it easier to do my work – it logged into the servers I was monitoring, run the commands I needed to, combined the output and displayed it in a pretty interface I could click through. I got help on some tricky display bits from a good friend and heavyweight in these things, Ssegga
An opportunity to join another section in MTN as a Billing Systems Analyst came by. I applied and didn’t get invited for the interviews.
Another opportunity came by – one to join the Software Systems Support section. This, I felt, was the dream job! I applied. I was invited for the written interview which beat me into a pulp. Ssegga got that job.
Yet another opportunity came by, this time in a section called Value Added Services (VAS). I applied, fought through the hard written interview, tussled through the oral interview and got the job! Software engineering took a marked new turn for me from here….
Part of the job involved creating customer-facing USSD/SMS/Web products for the company. The other part involved planning for several VAS services – WhoCalled, Voice SMS, Voice Mail, USSD, SMS, etc. Legend has it that the person who held the job before me up and left one day, leaving unfinished products behind. I found a code base in PHP. One of the product was going to be launched in a few months. I feared to make changes to the product yet the marketing team always spoke to me like they had no doubt I knew what I was doing. In time, I grew more confident, I think I started to believe them. I started making more changes without holding my breath. Special thanks to Dennis Musinguzi, Eddie Kibuuka, Chris Ssali from the marketing team that didn’t eat me alive.
The product launched and the rest is history. NOT. I struggled. The demand grew exponentially and I couldn’t understand why the product kept failing. I learned the hard way how to scale an app. On the database side, I got a lot of guidance from Chris Musasizi. On the code side, I leaned a lot on the late Revence Kalibwami for pointers on what to try. It was tough. I recall spending an entire weekend at my laptop and eventually passing out, seated, typing. I also remember when it finally worked; when friend’s stopped calling to say “Gwe, the thing is off again”. I couldn’t believe it. The app scaled to handle 4 million customers.
I wore all software engineering hats – systems admin, database admin, software support, dev ops, the works.
There were a lot of products and services thereafter. At some point, my supervisors, Elizabeth Olule Liri & Jennifer Kanyunyuzi, pushed to create a special section that only wrote code and asked HR that I head it. We recruited 2 solid engineers – Sidney W. & Alex N. – and I started to learn how to lead a software engineering team. Special thanks to Bod Toki from Google whom I spoke to for several hours getting tips. Extra, extra special thanks to Elizabeth and Jennifer for taking such a big leap.
I requisitioned and bought servers and we went about setting up (doing physical installation, laying cables, labeling, choosing and installing software) for some really solid architecture spanning multiple data centers and involving over 24 virtual servers. Special thanks to *NIX maestro Alberto for all the tips & guidance.
We built several products & services. One of the most memorable for all of us was migrating traffic for internet bundle provisioning from a big international vendor to our platform. If there were ever any doubts that we were doing fairly solid work, that transition eliminated them.
Kanzu Code was officially born somewhere amidst all this. We launched a product into the WordPress repo, have done several projects and grown in many ways. Special thanks to the entire team for all those things we’ve knocked out of the park and those we are still finding ways to excel at. A word from our sponsor: We’ll release tutorials on how to grow as a software engineer in the Kanzu Lab here. Do sign-up. Our initial focus will be on WordPress.
Andela came up last year. Maria Kyamulabye felt I was a good fit for a role I thought was out of my league. It was a really grueling interview process but as all good things go, it ended. I’ve enjoyed getting back into writing more code and mentoring a lot more people.
Outside code, I’ve been a part of other endeavors:
- Blue Bolt Limited – Initially, an events management and web development company. It is now a consultancy
- FUNtime! – A magazine for primary school children
- Pork stall – I run a pork stall at the Mitchellex Bazaar in Makerere University
- Urban Legend Kampala – Co-founder and writer in that leading humor and satire website
- GNLD – Sales and marketing which I soon found out wasn’t my strong hat
- Humor and Satire Columnist for The Daily Monitor
I am a Christian – one still discovering what it means to be a child of God, a husband to my best friend and a father.