September 11, 2020

Developer Hack: Creating a Portable PyPI Server for Offline Access

by:
TECH TOOLS :
Raspberry Pi

Despite the significant progress over the past two decades to get Africa online, connectivity is still a challenge in many countries. 

Today, while the global average for internet penetration has grown to 58 percent, Africa still lags behind at 40 percent.

Zimbabwe, however, is one of the few sub-Saharan nations that has broken the halfway mark. According to POTRAZ, there are 8.6 million active internet subscribers across the country.

Moreover, stable internet and power are essential to sustaining a fruitful tech ecosystem. It gives techies access to the resources they need to build and grow their skillset. Despite the not so ideal conditions, we’ve seen African techies create products used around the globe, and tech hubs train world-class developers.

To help techies gain access to tech tools without an internet connection, Vuyisile Ndlovu created PyPI in a Box. Post PyCon Africa, in the conference slack group, attendees shared the most common problems across the continent, and the state of internet connectivity was the overwhelming response. 

Compelled to do something, Vuyisile created PyPI in a Box, a Raspberry Pi with Stack Overflow and PyPI cloned onto it. PyPI in a Box allows connected devices to pip install packages without an active internet connection.

I spoke with Vuyisile Ndlovu, Software Developer at Ideation.AI, about PyPI in a Box, his experience as an open source developer, and the value in a pan-African approach to Africa’s tech ecosystem. 

Introduction:

I was born and bred in Zimbabwe. And I currently work as a web developer at Ideation.AI, a startup that builds intelligence systems for doctors to help them make better decisions.

I’ve always been a tech-oriented person. I studied IT in college and worked in tech support for about three years. Then, I decided to learn development and began working towards becoming a software developer. 

I’ve been working professionally for about two years now. From the time I started learning about development to actually working professionally, I contributed to open source projects and was active in the tech community. 

 

What is PyPI in a box, and what value does it provide to the marketplace?

In Zimbabwe, the internet is expensive and, at times, unreliable. On several occasions, I’ve been working on a project, and the power went out, which meant I couldn’t access the libraries I needed. So I built a solution.

PyPI in a Box is a Raspberry Pi configured to work as a wireless access point for the Python package index. I cloned the whole thing onto a small Raspberry Pi and set it up as a server because they’re affordable, low power, and portable.

Unfortunately, I don’t have the capacity or bandwidth to make these for people, so I put up instructions on how to do it on my blog

How have you contributed to the open source community? 

There wasn’t a strong software development community in Zimbabwe, so open source is how I learned the skills needed to be a world-class developer.

After college, I started working with Mozilla, answering questions on their forums. Then, I did testing for a few years. I worked on the beta versions of Firefox, with other testers to verify the bugs reported were fixed and check for any new bugs.

Mozilla once tried their hand at making a mobile operating system called Firefox OS. I got a team of five friends to translate the browser into Ndebele, which is the language I speak here in Zimbabwe. Unfortunately, the product didn’t survive the market. And it was thrown out along with all our work.

Then I got involved in advocacy, just talking about open source in general and encouraging other people to get into it. Last year, I got a line of code that I wrote approved into Firefox.

I’ve also worked with Oppia, an online learning education platform. I wrote some of their user-facing documentation and redesigned one of their pages.

No items found.

How are you involved in Africa’s tech community?

When I started, I was a community builder around open source projects. Now I mostly share the knowledge that I have through my blog and talks at conferences and meetups. 

Last year, I attended Pycon Africa, the first Pan African Python conference, and it was amazing. It was the first time I’d ever been in a room full of Africans from different countries. There were Nigerians, Egyptians, Namibians, and Kenyans — people from all over north, east, west, central, and south Africa. 

It’s where the idea of building PyPI in a box first sparked. I noticed that many other Python developers had the same problem, access to power, and the internet. It was a recurring theme throughout the conference, which got me thinking about what I could do to help myself and others.

It was also nice to see that we had a lot of shared experiences. What I admire about the US is that it’s one big country. In Africa, we’re in silos, it’s one continent, but we don’t work together as well as we should. 

We build systems for individual countries; there isn’t a lot of pan African, anything. I’d love to see the tech space working towards changing that. I look forward to seeing projects coming from Africa that are built by people from different African countries. 

 

What do you believe are the keys to being a successful software developer in Africa? 

First, know your environment. You need to understand what sort of businesses are successful in your country or region. Then, pick up the skills that are relevant to those businesses. 

For instance, in Zimbabwe, banks, insurance, and big FinTech companies are the successful businesses, and the software that they use is traditional legacy, tried, and tested software. So if you’re going to work at one of these companies, that’s the software you need to learn.

There’s also a growing demand for mobile applications from small businesses and startups. And the tech stack you need to learn to build mobile applications and software for banks is different. So know your environment and what tools are necessary for that environment. 

Second, think outside the box. One of Africa’s challenges is that things don’t always work the way they’re supposed to. You have to learn how to get around roadblocks. 

If it’s a poor Internet, download stuff and use it offline. If you have no power, get a generator or solar panel. Don’t let any problems limit you because the world’s not going to stop. 

The third thing is attitude. As a developer, you’re going to work in teams, and no one wants to work with someone who’s a difficult person. Be humble, teachable, and flexible.

Built In Africa? What does that mean to you, and what are your thoughts on tech in Zimbabwe? 

The most obvious is products Built In Africa. But more so, a product that provides opportunities for Africans, addresses a practical need in Africa, and is built by Africans. 

When I started, tech in Zimbabwe was very different, the internet was bad, but things have changed. It’s much better now, infrastructure is improving, we have 4G, fiber optics in metropolitan areas, and more people are getting connected. 

A lot of our financial systems are electronic, and most of the transactions we have in the country are through mobile money payment systems. When it comes to the software development space, we’re up to 12 hubs now, and for a small country like Zimbabwe, that’s quite a lot.

Also, the quality of software developers coming out of the country is getting better. On Twitter, every day, I see people getting jobs with big tech companies. I can see the growing excitement around tech, which makes me happy to be a part of the ecosystem. 

Subscribe to our newsletter

Stay up to date with our newest posts and special happening here at Built In Africa. Your information is safe with us, we hate receiving pointless emails also. :)

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.