I'm a Software developer Nigeria. I build things on the web with Python, JavaScript and Go. Besides programming i have other interests and hobbies which Include Football, Playing Drums and Swimming.
Check out some of my projects
Open source libraries
I've released some open source libraries that you may find useful.
django-notifs
django-notifs is not just another notifications app for django. It’s the only django library that supports in-app notifications and at the same time allows you broadcast these notifications via email, SMS, Slack, push notifications and any other means you can think of through custom backends.
Even through websockets so you can build a Realtime notification system.
I wrote a tutorial on how it can be used in conjunction with Vue.js
, RabbitMQ
and uWSGI
websockets to build a Chat application
Technologies:
django-dynamic-tests
django-dynamic-tests is a collection of tests that check Django templates for common errors and violation of best practices like hardcoding static URL’s, missing staticfiles etc.
I wrote an article on medium that explains the rationale behind this library.
Technologies:
staticfy
staticfy is a command line tool for transforming hardcoded links and URL’s in html files to the dynamic equivalent in your web framework. It can save you a lot of time if you have a lot of html files with hardcoded URL’s.
It currently supports templates from django, flask (Jinja2) and Laravel (Blade templates).
Technologies:
Tutorials
I enjoy experimenting with new technologies and using them to build demo/sample apps which i document as articles. Below are some tutorials i've written.
chatire
Chatire is a Realtime chat application built with django, RabbitMQ, Vue.js and uWSGI it’s a demo of another open source project (django-notifs) i built for building and managing user notifications for django web apps.
Technologies:
Votr
Votr is a polling/Voting application built with Flask and React, Users can create polls with different options and invite other users to vote on them. The polls are automatically closed after a set amount of time (This is handled by Celery in the background). I got some inspiration from twitter polls.
Technologies:
Projects
Apart from tutorials i've written on my blog, i also have some side projects i've worked on that i didn't document.
ATMFinda:
ATMFinda was my attempt at solving the annoying issue of non-functional ATM’s in Nigeria. It’s pretty common to go to an ATM and after inserting your card, inputting your password you get the dreaded “Temporarily unable to dispensh cash” message.
The idea was to create a mobile app that pulls data from an API of ATM’s around the country (Provided by Banks) about the status of various ATM. Using google places API and Google maps we could easily display a custom maps showing Active ATM’s (green) and Inactive ATM’s (Red).
It failed because for some reason, no bank listened to us (I had other people push the idea to them). So we didn’t have any API to use.
I decided to crowd source the app but to be honest it wasn’t feasible No one has the time to click around to say “Hey this ATM is active/inactive” when there’s no reward or points to gain. I also thought about implementing Background Geolocation like Google maps but that didn’t work because of a limitation in the Expo framework. At the moment it’s impossible to have background geolocation with Expo without Ejecting the application and building it manually.
The good news is that the Expo team is working on background geolocation and i think it should be ready sometime in 2018.
ATMFinda was built with React Native with Flask serving as the backend API. The source code for the Server and the Mobile app is available publicly on github.
URL: ATMFinda on Expo
Public Repos:
Technologies:
Find a lodge
Find a lodge is a website i built to help Youth Corpers find a Corper’s lodge in their state of deployment.
Technologies:
Talks
PyCon NG 2017
I gave talk at PyCon Nigeria 2017 (The first PyCon in Nigeria) on Continuous Integration for Python applications with Gitlab CI. It was my first talk at a major event.
The audio is choppy
Technologies: