The Echo from Uganda, We are Team Echo

Posted on by Naggita Keziah and Nanjekye Joannah

Categories: blog and student posts

Who are we?

We are Naggita Keziah and Joannah Nanjekye from Kampala, Uganda. We met at a tech meetup dubbed GeekNight kampala at the former thoughtworks kampala offices where Joannah was speaking about the Transition from continous intergration to continous delivery. The chemistry was instant and we decided to team up and apply for the Rails Girls summer of code with a strong desire to start our journey of contributing to open source.Now here we are one of the 20 teams around the globe sponsored for the fellowship.This is our first time in RGSoC and we are so grateful to RGSoC for this grand opportunity.

Our goal for the summer of code is to learn and learn as much as we can, to become better developers with clean code, to write thousands of lines of code for qutebrowser, to pass on what we have learnt and our experiences to the community and to build a bigger network through networking with those in RGSoC.

This is our team:

team picture
Supervisor Kasia Jarmołkowicz (bottom right); coach Wilson Kiggundu(top left); coach Kisitu Augustine(top right); mentor Florian Bruhin (bottom left)

Keziah: Is a third year undergraduate software engineering student at Makerere University Uganda. Her greatest emphasis is in designing scalable software solutions to solve the common problems in our community through using apropriate technologies.

She has a great interest in Python programming language and Real time Embedded systems. she loves mentoring and inspiring others and she is currently a coach at Django girls, a Tech Kids tutor and a math tutor. She would love to see more women taking up STEM courses at the university.

She started learning python in July 2015 from AI research lab where she was doing her internship. she fell in love with python and she has never looked back. After her internship she joined Django girls Kampala as a participant in September during which she developed flashtrolley an e-commerce site that connects small business owners to their customers. After her cohort of study, she enrolled to become a coach for the next cohort..

Joannah: She earned a degree in Software Engineering from Makerere University, Kampala, Uganda. She joined Laboremus Uganda as a software engineering trainee from September 2013 to March 2014 after which she joined Fintech Uganda Limited as a programmer till June 2016.

She has primarily been developing software in C# for all her roles in industry but has this passion for ruby and python. She first fell in love with python from her first year in university till she learnt of ruby from ruby Friday events that were held at thoughtworks Kampala. During ruby Fridays she was able to learn ruby programming and after which she was able to teach in one of the days in the next cohort of ruby Fridays. She has worked with ruby frameworks like Ruby on Rails and shoes and Python frameworks like django. She has contributed to many banking applications during her position a programmer at Fintech Uganda Limited.

She is an advocate for agile software development practices and values reliability in software because she believes it’s an attribute that must never be compromised. She has organized several software development events to pass on knowledge. She organized an Hourofcode event to celebrate computer science week in 2015 where she taught university girls how to begin programming in JavaScript. She also taught ruby and Sinatra a light weight ruby web framework for a week in a code camp she and team she was part of organized.

Other than programming she loves planes and very curious about how they work and in September this year, she will be moving to Nairobi to finally join aviation school to purse aeronautical engineering with a bias in Engines and frames a dream she had from childhood.

What we are working on

We are working on qutebrowser, a keyboard driven, vim like browser. The browser is built with python3, PyQt5 and QtWebEnginee and it is 100% open source.

We chose to contribute on qutebrowser because we wanted to do something interesting and loved the idea of browsing the web using commands and shell. The project also presented us a great opportunity of learning new things and exploring python3 and PyQt5 deeper.

The fast pace and sheer amount of information keeps us on our toes, but we have each other, our coaches( Wilson and Augustine ) , our mentor (Florian) and supervisor (Kasia) to keep us on track. Thank you all for your selfless help :)

What have we achieved thus far?

About the project

  • Browser architecture. We had no idea how a browser archiecture looks like before we joined the summer of code. But now through the different tutorials and udemy course that our coaches and mentors pointed us to, we feel that we are now comfortable with the architecture of a browser.
  • Knowledge of TDD and application. Testing has now become a very important aspect of our programming.Now we use it frequently and know how to write tests and apply the idea of TDD. We are writing tests for the commands on qutebrowser..
  • App features. We are currently solving issues 1395, 844 and 47 and hopefully we will have a pull request for one of them this week and for our tests.
  • Python3. We have expanded our knowledge in python forexample the use of pdb, decorators and more OOP.
  • Qt. We read a great deal QtUrls when trying to solve issue 1998, understanding the QtWebEnginee.
  • Becoming Github Gurus. We are now quite used to performing various GitHub gymnastics such as rebasing, squashing, resolving conflicts, etc. (but sometimes it still acts mysteriously).

Our first conference

  • Arrival. We arrived in Nairobi, Kenya for the conference on Wednesday 20th of July 2017 in the morning. We rested for some hours before we started the conference.
  • Networking session. We attended this session on 20th/July/2017. We made alot of friends, exchanged business cards and it was an amazing evening.


  • Day 1 of the conference. We gave a presentation on how drones, sensors and apps are rewriting the rules in agriculture and the future. This talk pulled attention from the attendees after which we got an invite from one of them to do the same talk at another engineering conference in nairobi.We listened to other presentations from other women in the african tech space.

Day 1

  • Day 2 of the conference. On this day we did not have a talk but we listened to different panels being conducted by different women in the tech space in Africa. They talked about common reasons why women exit stem , how to succeed as a woman in tech , how to run successful startups and the various innovation opportunities in the fintech space. We also witnessed some women led startups pitch their products and win funding and incubation space.We ended the day with getting some swag from google.

Day 1

And Yeah..our kickoff Party

We also had an amazing kickoff party with our host C.K Japtheth and the great minds Shakira and Angela


Community involvement

  • Rails girls Kampala. We are currently in the process of reviving Rails Girls Kampala chapter,a community that had gone cold after thoughtworks left kampala . We are doing this so that future RGSoC fellows have a commnunity they can call home in uganda as we impart ruby on rails web development skills to ladies in our commnunity. As part of the program , we shall run an 8 week cohort of ruby on rails programing sessions and a rails girls kampala all with the support of our hosts The Innovation Village kampala.
  • Hack for Corruption. We are in the process of organising a hackathon to cub the raging problem of corruption in our country. This is an idea that was bone during a discussion we had during our rails girls kick off party with the Team lead of The Innovation Village kampala. We talked about how technology can impact our country and as we closed the party We coined hack for corruption which is the war against corruption.The organisation for the hackathon is underway with the help of our hosts The Innovation Village kampala.

Tips we want to share

  • Take a deep breath, don’t panic. A castle wasn’t built in one day :)
  • You need to first clearly understand the problem before writing code for it.
  • Understanding the code flow is the first step to diving into legacy code.
  • Writing tests for legacy code is one of the best ways to understand the code base.
  • Be persistent because persistence breaks resistance. Look for all possible ways for squashing that bug, don’t give up and don’t settle.
  • Make your week’s plan and stick to it.
  • It’s good to express your problem in clear way, so your helpers can give related suggestions and solutions.

What will we do next ?

  • Finish all the issues at hand
  • Write more tests for the project
  • Embark on solving other issues
  • Revive rails girls kampala

And we are always looking for new contributors for qutebrowser, so please, join us!

Follow us on twitter and like us on facebook for daily updates :)</p>