Internet in Kenya

I recently traveled to Kenya for work (read here for details on why) and being a web developer, the internet there was a little rough to work with. There were a few times we left the co-working space to head to our apartment because we simply couldn't load web pages or sustain a stable connection during important tasks.

So one day, when there weren't too many people at the co-working space, I did some speed tests to see what I was working with.


Now here is a speed test I did on my first day back at work.


So as you can see, Kenya is a little different that Atlanta when it comes to internet speeds. However, I did some research upon my return and discovered that Kenya is growing in terms of speed and usage. In (a report produced by Akamai) it's stated that Kenya has the highest avg. speed in Africa at 15 mbps which ranks it at 23 out of 108 countries globally.

Challenges

I want to preface this by saying that even though the internet was slow, I was able to maintain a connection the whole time. There were a few days when the co-working space was crowded and the speed took a nose dive, but at the end of the day I was still able to work, albeit slowly.

Top tasks affected:
- SSH'ing to a server
- Logic connecting to S3 (file upload/download)
- Database connection and SQL queries
- Anything that connected to external sites/services

SSH

Some of my first tasks while in Kenya involved SSH'ing into a server to check on some issus. While I eventually connected, the delay when performing/executing tasks and typing were brutal. Thankfully I didn't spend too much time having to work over SSH, but I did have one task that took almost an hour to complete because of the delays. I had to clean out a folder that contained over 5,000 temp files that got generated during excel file parsing, and eventually I just executed a script on the server and walked away while it handled it.

S3

A few parts of the system I work on use S3 to either store or retrieve documents and this proved to add to development time, which caused some of my tasks to take longer to complete. Looking back, I could/should have temporarily removed the logic that was communicating with S3, but to make sure everything worked like I expected, I chose to leave the S3 calls in place. Again, the slow internet did not break my development process but merely extended or added to the time it took to finish.

Database Connections

One of the first "issues" I had was connecting to some MySQL databases through Sequel Pro. On my first attempt I thought something had happened to the database/server becasue I was timing out when trying to connect. I would note that this happened before I really saw how the slow internet affected my work speed. So after failing to connect a few times through Sequel Pro, I was going through the normal motions of checking the website, connecting to different environments and trying other databases. It wasn't until about 20 minutes passed did I think my issue was related to my internet. So after a quick Google search I found out that SequelPro will timeout a connection after 10 seconds. In the end all I had to do was change my connection timeout to 30 seconds instead of 10.

Final thoughts

All in all my trip to Kenya was a great experience and I am glad I did it. The people in Kenya are some of the nicest I have ever meet and the country was beautiful. Despite the slow (to me) internet in Kenya, the country is really growing when it comes to technology. Almost every shop in Kenya accepts payments by M-Pesa, which is a mobile phone-based money transfer system (aka you can text people money). This is possible becasue the mobile phone penetration rate is around 90%. I think that technology and internet speeds in Kenya will continue to improve as the culture continues to grow and develop.
Picked by Scott
Apr. 13 2017
note