Nerding in Nairobi

A few months travelling, living and hacking in Kenya

mSurvey Product Launch

mSurvey, our officemates, had a launch party last week for their new self-serve mobile survey tool. Check out the product here and sign up soon for some free credits. Or text “nerding” to 619-377-4673 to try it out.

It was a nice launch – cocktails, snacks, schmoozing followed by a talk and demo. Dr. Ndemo, the permanent secretary for ICT in Kenya, made a guest appearance and introduced Ken. It’s a rule of live demos and product launches that something always breaks. In this case the power went out, we got back on batteries and then internet went out. Ken was a pro and worked through it all. Congrats to the mSurvey team!

  • Showing off the product before the preso.
  • Cool data on Boda Boda’s collected by mSurvey.
  • Dr. Ndemo leading things off.
  • Ken gets the demo going.
  • Power outage! Right in the middle of the demo.

Nairobi National Park

Yesterday was Labour Day and instead of relaxing like a sane person, I woke up at 5:15 to join a Safari in Nairobi National Park. First off, there’s a park with frikkin wild lions a half hour from my apartment! Sadly it wasn’t the most bountiful of game drives and we didn’t see any lions. I prefer to experience nature on foot or bike than in a van but am forced to concede that deadly hippos, rhinos, lions and elephants limit your options. We did see some cool animals – check out the pictures!

  • Perils of the rainy season
  • We had to fight them off our breakfast with rocks and sticks
  • Can you spot the hippo?
  • Crocodile, just chilling
  • Antelope fight!
  • Ostriches are funny looking animals.
  • Right next to the city!
  • Just as we were leaving, a black rhino!

Biking with giraffe (and more!)

I made it a quiet night on Friday to get an early start on a weekend trip up to Lake Naivasha. I hopped a matatu to the Central Business District and quickly caught another headed for Naivasha. We stopped briefly to have the police search us for weapons and then headed straight out of town. I lucked out – our driver took the Old Naivasha Road and had no trouble dropping me on the side of the highway just a few kilometers from the entrance to Mt. Longonot park.

Mt. Longonot

Buying bread from a roadside stand, it became pretty clear that not a lot of Mzungu’s wander around here. On the walk through farmland to the park gate I met a lot of children shouting “Hello!”, “How are you?” or “Give me money”. I started up the path not long after 10AM and made the crater rim after an hour or so of steep climb. Make sure to look at the panorama in the images below – the view of the crater with the Rift Valley behind was stunning. I hiked the heavily eroded trail around the crater and up the summit to be greeted by clouds.

On the way around I met Agatha, a Filipino woman who fell in love with Nairobi 11 years ago and hasn’t left since. She kindly offered to give me a ride back to the highway. From there I got a lift on a piki piki (motorbike) back to Longonot town and caught a matatu to the lake. I hitched a ride with a nice Kenyan guy who runs a construction business and was happy to talk about the Naivasha area on the way to Fisherman’s camp. The camp itself was only decent but I wasn’t in a position to refuse a warm shower and cold beer before bed.

  • Looking up at Longonot from the farmland
  • Ok…
  • People wanted pictures with the crazy lone Mzungu.
  • Standing at the crater rim
  • Click for a panorama of the top (drag to scroll).
  • Not much of a view from the summit
  • The bar and restaurant at camp after a long day
View from Longonot crater

Hell’s Gate

I caught the sunrise and first breakfast to get an early start on Hell’s Gate. Against Morgan’s sensible advice, I rented a bike for the trip and rode mostly righty for the day. I was the first one at the park and for a couple hours I had the place to myself. The ride began beautifully but I didn’t see much wildlife and found myself thinking, “ah well I imagine the game has been a bit overstated.” Then I rounded the bend right into a herd of gazelle with wildebeest grazing farther afield! I continued along past more gazelle, rounded another bend and thought “those look a little like horses.” No, I was biking next to zebras!

I shared the road only with animals until I passed near the KenGen geothermal power stations and out to the top of the gorge. From there I hired a Masai kid to guide me on foot through the deep limestone gorges. We spent an hour climbing through narrow water-worn passageways and past hot springs before climbing back out for a view over the park.

I asked a park ranger if there was a more interesting route back to the gate and took off on the buffalo circuit at his suggestion. Skirting past the “Road Closed” sign and around the gaping pits eroded in the road I started to question his (and my) wisdom. I was quickly rewarded with the sight of a giraffe grazing at the edge of the treeline alongside some zebras! From there the road climbed, dipped, crossed the paved KenGen road and then started a very steep climb. Stubborn as I am, I pushed my bike one handed several kilometers up the steep hill in the noon heat for a somewhat obscured view of Lake Naivasha. Going downhill on a bike over dirt roads without fully using both hands turns out to be pretty difficult and I was cursing myself a bit towards the bottom. It was looking like a rough end to the day until I saw a black herd in the distance and found myself riding by dozens of buffalo. I cleared out quickly when they started to gather and head TOWARDS me. Not far after, I came across three more giraffe standing near the road. As I biked along, they paced a few hundred yards ahead of me with their beautifully strange strides. I passed out of the park and figured I was done for the day until about 50 baboons stopped by to see me off!

It was an easy ride back to camp for a very welcome shower and beer. The matatu ride home got a little dicey trying to skirt an accident but I finally made it just as darkness was falling. I slept like a rock after a throughly amazing and exhausting weekend.

  • Sunrise from Fisherman’s camp
  • My (reasonably) reliable bike
  • Descending into the gorge
  • Apparently a scene from Tomb Raider was filmed here.
  • My guide leading the way.
  • Standing above the gorge
  • Buffalo after a tough ride
  • Chasing giraffes on a bike!
  • Baboons saying goodbye

iHub Nairobi

iHub launched 3 years ago and became a pioneering co-working space and incubator in Nairobi. I’ve visited a few times and sat down with their community manager, Rachel Gichinga.

  • Part of the iHub co-working space
  • 3D printing at iHub
  • Pete’s coffee? Lots of SF people here.
  • An evening talk at iHub

iHub currently runs four programs, mostly paid for by grants from groups like Omidyar and Microsoft:

  • Co-working and pre-incubation space is offered free to accepted applicants. Developers in the space spend about 60% of their time freelancing to pay the bills and the remainder developing mobile apps to turn into a business. iHub offers some mentorship but is mostly pretty hands-off aside from organizing events and bringing in experts from the likes of Microsoft, Google and Intel. From here, some developers move to running small businesses (e.g. IT, web development) or incubating a startup downstairs but most stick around to freelance.
  • m:lab provides subsidized space for early-stage startups to work on their products. They evaluate applicants for their potential for both social impact and profitability and expect them to stay in the space for 6-24 months. During that time they provide some advisory services but also seem to remain pretty hands off.
  • The UX lab helps developers test usability and learn to good experience design. The lab is for-fee but offers some free sessions every week for developers to come in and get their mobile app tested.
  • iHub research does commissioned studies of ICT use patterns in East Africa. One current project seeks to understand how individuals budget for mobile service and trade it off against other costs like food.

Rachel talked about a few of the challenges holding back the iHubers. She said that there isn’t much seed money ($10-100k) to incentivize people to leave their jobs to start a company. Yet she also said that there is too much contest and grant money available to developers without a real business plan. I would expect partnerships between tech and business founders to fill the gap but Rachel said few have made those connections. Developers are afraid that a partner will steal their idea and business people are finding opportunity elsewhere. It sounds like Rachel would argue for smarter money that pushes developers to build viable businesses and incentivizes non-tech types to get involved.

I’ve had a chance to wander around the space, meet a few people and attend a (not great) talk last week. It seems like iHub is doing a good job fostering a developer community but needs to do more to convert freelancers into entrepreneurs.

CORRECTION: The post originally read that not enough seed money in the $5-10k range was available. Rachel corrected me to $10-100k.

Lino, i4a and homegrown talent

On Tuesday, I met Lino Carcoforo of Innovation 4 Africa for lunch at 88mph. Lino and his partner Nancy came to Kenya in 2010 and founded i4a to invest in mobile tech startups. They believe in an extremely hands on approach to investing and work daily with their companies on marketing, sales, recruiting, and more. It looks like their model is working – of their three portfolio companies mKazi just secured significant follow-on funding and mChanga is only weeks behind.

Lino and I talked a good bit about the role of local and expats in founding Kenyan companies. He clearly felt some contempt for investors that don’t recognize the value of local knowledge in a founding team but he sees why expats play a big role. Local entrepreneurs tend not to have the financial ability and motivation to forgo a salary and pursue a long term vision. Few Kenyans have had to opportunity to develop the skills required to run a startup business and the ecosystem isn’t mature enough to teach them. He’s bringing in an expat CEO at one of his companies but doesn’t think they could survive without a major Kenyan presence on the management team.

Later in ther afternoon, we did a team building exercise at Soko that highlighted the significance of cultural context. The game was essentially a competitive, team version of 20 questions with only yes/no answers. Even simple questions were interpreted very differently and the game was generally much more natural for the Mzungu’s on the team. Is chapati a snack? Depends on where you grew up! Liz and I immediately understood the dedutive process of narrowing down the solution space. Are we better trained in analytical thinking? Maybe, but more importantly, every Mzungu had played 20 questions as a kid and not a single Kenyan had played something comparable. We practiced!

It’s really easy to miss these subtle differences in what our cultures teach us. Even the games we play as kids say something about the skills we promote and how we relate to each other. Large scale entrepreneurship is on a tear in Kenya but making it integral to the culture will take time. For now, expats will lead many of the successful teams but won’t be successful without partners who understand Kenya on a much deeper level.

Weekend in Emali

Ella invited me to get out of Nairobi for the weekend with a group of their friends. Driving on the Mombasa Road was CRAZY with overloaded buses passing trucks on the wrong side of the highway, shanty town truck stops and all surrounded by green plains. It’s a bit like driving to Tahoe though – stress goes down as you get farther out of town and into the clean country air.

  • Overloaded buses at the rickety stops along the way
  • One of many freshly crashed trucks and containers
  • Tea and lunch at the Sky Hotel
  • Future home of KweKwe and Jeremy’s rooftop restaurant
  • At KweKwe’s family farm outside of Emali
  • Racing the sunset with Kilimanjaro in the background
  • Pre-dawn light across the plains below
  • Followed by a spectacular orange sun
  • Looking at the lodge from my water tower perch
  • Down to the lodge for breakfast
  • Out on a hike in the surrounding hills
  • That’s a grasshoper with crazy camouflage
  • Looking back at the group from a rock ledge
  • Stunning rainbow to take our eyes off the traffic back to Nairobi

Sky Hotel Emali

Our first stop was the Sky Hotel, run by their friends KweKwe and Jeremy. They moved back from Canada, took the half finished building over from KweKwe’s parents and are in the process of finishing the job. They have big plans to grow into the first real 3 star hotel chain in rural Kenya.

For now, they’ve opened the restaurant downstairs to make some money while they finish the upper floors (active construction does not preclude occupancy here). We had a nice tea and lunch at the restaurant followed by a tour of the hotel-to-be. It’s a pretty awkward building (unless you like standing on the sink to shower) but they’re making the best of it and planning an awesome restaurant on the roof.

Kivutha Farm

We followed lunch with a short(ish) detour down a rough road to KweKwe’s family farm. We got a lot of attention from kids herding their cows and goats down the road – probably not a lot of Mzungu’s over their way. The farm itself is an unassuming place with a nice grove of mango trees, some cows and corn. Her parents put out a nice spread of fruit for everyone and joined us for the snack. Her father is the newly minted governor of the county and well-known constitutional lawyer in East Africa. It would have been interesting to stick around and hear more from him but we had to hit the road to make the lodge.

Oloosikitok Hill View Lodge

Cutting south towards the lodge pointed us straight at Kilimanjaro down a rough red dirt road. We even saw an impala grazing on the outskirts of the pastures! Our little SUV struggled into the night through water, deep sand and steep bits up to the lodge. We missed the sunset but arrived right in time for dinner in the main thatch-roofed cabin. We turned in early after a long day of travel and a few of us resolved to catch the sunrise.

I awoke at 6AM and found a little ledge on the water tower with a view to the east. The bright orange sunrise over the hills and plains was almost impossible to fully capture on camera. As was the strange effect of all the cows moo’ing when the first sliver of sun crested the horizon. I climbed down, took a morning tea service and walked over to join Ella and Ken in the main lodge.

The rest of the group straggled in far after sunrise but in time for breakfast. We spent the morning hiking around the hills before lunch at the lodge and a loooong drive back into Nairobi.

Splitting git branches into repos

Soko asked me to look at their current git workflow and suggest any improvements and best practices. They specifically pointed to the fact that they’re currently using branches of a single repository to hold completely separate codebases for different apps. I also noticed that all development occurs on these individual branches with no additional branching for feature development and testing.

I think Vincent Driessen does a great job describing good git practices and the Soko team will move in this direction long term. For now, I suggested that the team move to a model that uses a master branch reflecting the latest production code, a dev branch to stage features and fixes for production and feature branches for all development work. We talked about the idea behind hotfix and release branches but will hold off on using them until the team size and complexity grows.

Splitting Branches

The first step was to split the branches in a single repo into separate repos for each of the 4 apps. Today at 11AM East Africa Time the entire team committed their code and joined a Skype call to execute the split. Each team member was assigned a branch/app and took the following steps:

  1. Make sure you’re using SSH to connect to Github. See instructions here.

  2. Check that everything is committed on MYBRANCH and push (to ensure everything is backed up remotely).

     git checkout MYBRANCH
     git status
     git push origin MYBRANCH
    
  3. Push MYBRANCH from the old repository into the dev branch of the new repository.

     git push git@github.com:ORGANIZATION/NEWREPO.git MYBRANCH:dev
    
  4. Checkout the new code.

     cd MY_CODE_DIRECTORY
     git clone git@github.com:Sasa-Development/<REPO>.git
     git checkout dev
    
  5. Create a new branch to start feature development

     git checkout -b MYFEATURE dev
    
  6. Before merging into master for the first time, create the branch

     git fetch origin master 
     # The fetch should FAIL indicating that no one else has created a master branch
     git checkout -b master dev
    

Development Workflow

The split process retained all of the commit history and got the team ready to start using the new master/dev/feature branch workflow. The old repository is now deprecated completely and should never need to be touched. Going forward the team will use the following merge process for most of the workflow across their repos.

  • Merge a feature into dev:

      git checkout dev
      git pull origin dev
      git merge --no-ff <FEATURE>
      git push origin dev
    
  • Merge a feature into master for deployment into production:

      git checkout master
      git merge --no-ff dev
      git push origin master
      # Delete any feature branch you don't need anymore
      git branch -d MYFEATURE
    

Summary

Splitting up separate codebases into their own repos allows us to get much more branch-happy without becoming disorganized and selectively share apps with contractors. All of that branching should make it easier for the team to work concurrently on different features in one app and deploy only tested code into production. Over the next few weeks we hope to move towards faster deploy cycles with the team working concurrently on different parts of the ecommerce front end.

Sean – Invested Development

I met Sean Smith of Invested Development for a beer last Thursday at Brew Bistro. One beer turned into several and dinner over a fun night. We came pretty close to ordering “The Pornstar” – a burger with peanut butter, jelly, bacon and sriracha – but luckily got to ordering before drinking too much.

I’ll spare the details of our wide ranging conversation but relate a bit of what Sean has learned with ID. He came to Nairobi looking to place ~$500k investments in mobile tech and energy. He found it very hard to find companies and entrepreneurs that were mature enough to take that size investment. That kind of money goes a long way when you can hire a developer for $12k / year. They’re now looking at much smaller ~$50k deals which are still pretty substantial in this market.

He also found that the best opportunities hinged on improvements in some basic services and infrastructure. It’s not worth investing in an ag products startup if there’s no sales and delivery network! As a result, they’re looking at investing in distribution and supply chain ideas. It’s a long way from where they started but it seems like a good adaptation to the state of affairs here.

Johnni - GrowthAfrica

I had coffee yesterday morning with Johnni Kjelsgaard, ex-dotcom’er, 15 year veteran of the Nairobi tech scene and founder of GrowthAfrica. Soko was a leading member of his first incubation cohort and Gwen introduced us back in January.

GrowthAfrica runs incubation programs (GrowthHub), co-working space and a consulting group all focused on helping African entrepreneurs. Johnni mentioned that social impact is a major criteria for their upcoming incubator class but the organization as a whole definitely wants to grow capital in Kenya.

He feels that basic business skills are the most important thing GrowthAfrica offers (e.g. recruiting, customer development, sales, financial modeling). He talked about using quantitative models to give entrepreneurs new understanding of their own businesses. At one point they tasked their companies with getting front of 40 potential customers over a couple weeks — despite initial grumbling the exercise proved (unsurprisingly) insightful.

Johnni is currently recruiting early stage entrepreneurs for their second incubator cohort. Over the 20 weeks, GrowthHub will guide them through defining, building and market testing a pilot. There’s more competition from other incubators now and they are working much harder to track down great candidates. He is already excited about a few ideas including helping farmers grow and sell more efficiently, and developing animated educational materials for East Africa.

Johnni is bullish about Kenya’s entrepreneurial future but feels that there are a few barriers that need to be overcome:

  • Entrepreneurs focus too much on products and not enough on customers. They need to get comfortable talking to prospects early and, later, pitching them hard.
  • Startups are not really part of the culture — there is no pride in living off ramen and working weekends to pursue your vision. It’s pretty hard to forgo a salary for months without forgiving significant others, financial support from family and friends or any public safety net.
  • Failure is also not part of the culture. People hold on to floundering ideas too long and pivot towards short-term revenue too soon.

He thinks foreigners could help overcome some of these barriers and would like to see the Kenyan government emulate Chile in their support for outside entrepreneurs. I wouldn’t hold my breath waiting for the government but I’m excited to see what cool companies he adds to the GrowthHub roster next month!

Johnni at GrowthAfrica

Kenyan Medicine

Getting hit by a car gave me the unique opportunity to explore the (private) Kenyan medical system. After a long night trying to sleep through the pain in my wrist I resolved to get the thing looked at. I found a reputable medical center near the office and landed an appointment at 10:30.

I arrived a few minutes after 10:30 to learn that appoinments are a pretty loose concept. I was the second person in the waiting room that morning so I was seen second, around 11AM. Dr. Zulpiquar Ali Jaffrey was a character of few words in his 70s, hard of hearing, with rotted out teeth and no bedside manner. He examined my wrist from across his desk over the top of today’s paper with expertly probing fingers. He quickly determined that I needed an X-ray, collected my name and mobile number and sent me across the hall.

The imaging people took $17 along with my name and mobile number. After about 15 minutes of waiting (with anmind melting soap opera blaring in the background) I was led to an X-ray machine, zapped and sent back to wait. Another 15 minutes and I was back across the hall waiting to give the doctor my freshly developed film. After some further waiting, the doctor emerged into the now packed waiting room and announced “You have a half healed fracture, about 40-50% healed.” No HIPAA here!

I was sent downstairs to the pharmacy to get bandages and came back up to wait again for them to be applied. The doctor told me to take it easy, come back next week and pay him $35 cash. Final diagnosis was a distal fracture in my radius from my recent ski accident refractured hitting the car yesterday. The break is stable and healing nicely with no need to cast it. Competent care for a broken bone ran me <$60 plus 3 hours of shuttling around between waiting rooms. Good deal for those who can afford it!

You might notice a few things missing from this story. At no point did I give any information other than my immediate health concern, name and phone number. Nor did anyone keep significant records beyond a carbon copy of my receipt and diagnosis. At no point did the doctor ask if I was in pain or mention pain management. Apparently, if I want Vicodin, I just have to go to any pharmacy. In many ways, the patient here is expected to carry the load of managing their care — it is nice to be treated as the primary actor not a diagnosis + possible lawsuit. Still, if I need open heart surgery, I’ll be on the first plane back home.

  • Lots of time in waiting rooms
  • X-ray time, real film here
  • Can you spot the fracture? I can barely see it.
  • Thankfully just a wrap, no cast