This is Africa

Corey Sanford
8 min readMay 11, 2017

Our Experience at Ensibuuko

Around the end of January 2017, Jamal and I flew through Amsterdam to work for Ensibuuko, a growing fin-tech start-up in Kampala, the capital of Uganda. From the moment our driver picked us from the airport, it’s been an unforgettable adventure.

We’ve gone from two local devs down to one… and now up to five (for our team of eight).

We’ve progressed from a mash of various operating systems and programming environments to standardized Ubuntu distros running VMs. Importantly, we moved from PHP 5.3 to PHP 7.1.

We’ve moved from creaky 5+ year-old laptops to respectable machines with external monitors.

We’ve retired hacky USB-key file-swapping for pull-requests on GitHub.

We’ve got a staging server, continuous integration, and sanity all under control.

We’ve got a Laravel app well underway with over 350 tests and 500+ assertions.

We’ve rafted the Nile, been on safari, and made genuine friends here in Africa.

We’ve covered a lot of ground.

Living

We have to thank our investor Ed Levinson (see more) for lodging us in a safe haven — an immaculate apartment close to food & work. We’re air-conditioned, have consistently flushing toilets, and enjoy a full kitchen. Not to mention stable power and our lifeline, the internet.

Que Pasa?

On occasions when we want a bite or drink after work, there are a host of comfort-food options on the stroll home. We eat out most meals as the plates range from $5–$10 USD. Our favourite go-to is Que Pasa, a charming Mexican diner in the Acacia Mall complex.

Local food here is even cheaper.

You can buy a filling rolex (Spanish omelette wrap) for 1500 Ugandan Shillings (40 cents USD). I pay Ronny the rolex guy 2000 Shillings for extra veggies, and sometimes bring him an avocado to mix in. From Ronny’s mom, we order big fruit bowls for 1000 UGX = 25 cents.

The people here are friendly and violent crime is virtually unheard-of. Still, you’d better not leave your cellphone on the table. The way our currencies are valued, it may total more than your neighbour’s yearly income.

Mind the basics like taxi-ing at night and respecting your sobriety. You’ll be fine.

When you need a quick ride within town, you typically choose one of two options. A boda driver will zip you from A-to-B on the back of their motorbike. A fifteen minute journey will cost you about $2–3. A ride from home to work (20 minute walk), about 50 cents. Otherwise, Uber is popular here and you can hail one from your phone. Prices on Uber are comparable to boda drivers. It’s safer but slower, and not quite as on-demand as the ubiquitous boda.

Fredrick on the boda with his new laptop & monitor, screaming at me that, “we forgot the power cable!”

There’s no shortage of nightlife options whether you’re hungry for fancy and fun restaurants or after-hours. Do beware that the locals head out for drinks around midnight, so you may be in for a long ride.

Work

In a culture of time-mismanagement (they call it Ugandan Time), I’m proud to say that we’ve formed a dev culture of diligence, dispassionate debate, and focus. We work consistent 9–5 days and do a push-up for every minute we’re late past 9am. With a minimum of ten.

Each day starts with a brief stand-up, then it’s off to the races. Wednesdays and Friday afternoons we heckle each other playfully as we take turns demoing code.

Some familiar tech facilitates our productivity. We’re all on Slack and tasks are managed on our Trello board. We use GitHub, CircleCI, and Laravel Forge for our deployments. Sublime or VisualStudioCode for editing, and all the regular Google apps for soft docs.

We made an early decision to rewrite the previous iteration of the system, a CodeIgniter project. It had some troubling shortcomings: no consistent conventions, queries in views, brutally long functions, plenty of unused files, mixing of languages, no version control, and no clear way set up a new environment.

It needed a rewrite. The only problem was that it had no documentation.

Mwaka Ambrose, demoing his first feature

The product of our decision to rewrite is a wonderfully clean and well-documented Laravel app. Every pull request has come through me, ensuring the system is at least consistent in all its conventions, the code is DRY, and every feature is well-tested. Any code that makes it into our mainline dev branch is production-standard and passes continuous integration checks.

Refactoring is common and pull requests typically go back and forth a few times before they’re ready to merge.

Despite the entire local team having learned Laravel from scratch, we’ve grown to include a healthy range of abilities. The first two weeks at Ensibuuko are spent watching Laracasts to get them up to speed. They’re told to experiment, to play around, and to get to know the system. We care more about the durability and readability of code they write than the speed at which they write it. And they write docs to outline any outstanding issues or notable quirks.

Impact

You’re not here building video games or redesigning Lululemon’s website for the fourth time this year. This is not fluff.

Authoring software in Africa is about facilitating basic needs. Without software of this sort, individuals may ride an hour to make a bank deposit. And it’s not cheap for them.

Travel-hack: Carry around balls to throw to kids

Consider that some individuals we support save just UGX 1000 per week.

That’s 40 cents per week.

That’s shy of $15 USD per year.

Remote individuals are torn between stashing cash in their residence and paying for a bus to deposit money an hour away. They’ll only deposit once every few months, and it’ll still eat a significant amount of their savings — just to keep it safe.

On my tour of village savings groups around Uganda, I was treated like royalty and always welcomed enthusiastically to sit and chat. The members were thrilled that we were solving problems for them and thanked me repeatedly for helping.

Elephants

These were the areas you might envision when thinking of Africa. Women walking miles for water with a jerry can balanced on their heads. Mud huts with straw roofs.

When 20 cents means a meal and your software saves $4 per trip to town, you’re not just writing code. You’re providing meals, security, comfort, and capacity for rural individuals who don’t know the luxury of a disposable income.

The Team

We’ve cultivated a wonderful team here and aim for at least one big dev-team function per month, not counting the usual hang-outs. This past weekend we went to Kabira Country club together to lounge, swim, work out, and enjoy a couple weekend beers by the pool.

The month prior, we hosted a party at our apartment, played bocce, and ended up in a sudden dance party.

Next time we’re thinking about paintball at $8 per person.

Perks

Uganda has a bunch of world-class attractions.

Our first big adventure was rafting on the Nile!

Next, we went on Safari to Murchison Falls.

Next, we’re thinking about hiking into the rainforest to spend an hour with a band of gorillas or hiking a 4000m+ peak near the border of Rwanda.

Challenges

As they sometimes say here, “this is Africa.”

Internet is a major challenge for Ugandans. The service can be bafflingly slow in the daytime. Think 10KBps. You’re trying to download some critical software and the time estimate reads seventeen hours.

We wasted no time before finding solutions:

  • Weak, local internet option with 80% uptime
  • 4G Vodafone Boost router with 90% up-time
  • Smartphone tethering with 100% uptime, but the most expensive data

Between the three sources of internet, we’re always covered, but the smartphone tethering is the best option. For the consistency, the extra 20% in cost is a pittance.

It was made clear to us early by the execs: If a lack of technology is causing a decrease in productivity, just go $olve the problem.

As such, we’ve gone a long way to creating an efficient workspace for the developers here; a rare occurrence in this part of the globe. And the appreciation has been clear.

Occasionally, the power drops out. This might happen out at dinner, at work, or at home (fortunately our apartment’s fully equipped backup generator). It might happen twice in a week for 4 hours, then not again for a month. Keep your devices charged and avoid this issue.

It’s decently hot here, but not nearly as hot as I imagined it. As a glacier-loving Canadian, I’m most comfortable with dress-shorts and a short-sleeve button-up. Pants are bearable after 6pm. Fans and AC help.

It’s been a once in a lifetime opportunity to spend a dedicated work term on the opposite side of the planet. We’re privileged to write an important financial system from scratch using the latest tech.

We’ve found it a pleasure to connect with people from a vastly different culture. We’ve made legitimate relationships that will one day make us grin in our old age.

We’ve seen elephants and baboons and hippos and crocodiles and giraffes. We’ve rafted on the Nile river.

This trip has been unforgettable and amazing, but it comes to an end soon for me as I return for family. At least for a while.

If you or someone you know might be interested in this exact opportunity, here’s the posting for my position.

And the posting for a similar DevOps position.

I highly recommend the experience.

--

--