Talk is cheap, show me the source code.

GitHub page | StackOverflow page | CodeWars | LinkedIn account | Resume PDF

I've been coding professionally since 2012, with 7 years of experience.

Started out developing sites with Django and been doing it ever since. I handle both front and backend development and that includes the site's server.

This is Django, this is Python, this is Linux; that's how I run things.

It works best when you get a clean linux server and install & setup everything. This is how I setup every site I design.

Some people do ask: Do you use Python 2 or 3? truth is, it doesn't matter. The syntax is mainly the same to the point I can only say apart from the neat features only supported in python 3 the one main difference is how to use the print in the two version. that's likely the main porting issue you'll get porting your code to 3.x. But still at this point there's no need to use Python 2, practically all new packages support 3 by default and some even have only neat and new features available in Python 3.

I'm going where few web developers go...

Diversity is our stength: something you'll hear organisations and some countries say, for me it means taking advantage of the ecosystem that knowing Python really well has opened up, an opportunity I plan to explore fully starting with Data Science also known as Machine Learning.

As for javascript, it lead me to discover NodeJS ( a web framework in Javascript, the backend is in C ) with a neat package Electron which allows you to design native cross-platform applications using javascript, css and html.

Work Experience


Position: Web Developer


At first, this started by reimplementing the old site in Wordpress with Django, but during development, some additional improvements were added along to make it as easy on the eye on desktop and on mobile.

Since it's launch I've been adding some features to existing pages including new ones as new ideas come along and new ways to make the user learn the information shared on the site but still guided by their interest find sufficient information to make an informed decision.

Start Date: Oct. 1, 2018

End Date: To Date


Position: Developer


Using Quvidi a system that processes info from the camera and returns relevant information like the number of people, age, sex, concentrating on the screen, mood, with/without glasses etc. Built a python API to read from it’s system output.

Linked the output to a Django site that based on this feedback would choose which ad to show.

Start Date: July 10, 2017

End Date: Sept. 22, 2017


Position: Web Developer


Create from bottom up job listing site

Implement Oath login for Google, Twitter, Facebook and Linkedin

All post requests used ajax with csrf token

Return HTML response in ajax for "Add Another" item that worked

Project was built with intent of using all available best open source tools

Added OpenSSL to the site for https

Start Date: April 19, 2017

End Date: Oct. 4, 2017


Position: Web Developer


Developed internal movie & event ticketing platform using reportlab including designing the layout, js and seat selection

Deployed mobile version of the site that serves a different template for mobile devices

Implemented javascript based caching of results for booking movie tickets that would give saved results for a selection and at the same time query for new data allowing for a tailor made offline first experience. It would thereafter update the dict giving a fast user experience

After the server at time would become unresponsive and needed to be restarted, implemented a cronjob that would listen and check if gunicorn was running and the site itself. If so logs "no action taken" otherwise restarts gunicorn and note of the two which were also down. This made life easier and better way to track the source of the problem.

Setup Combo offers like couple tickets.

Where needed updated the code, and django itself from 1.5 to 1.8 compliant

Integrate with payment gateway JamboPay and Bardo

Trained Intern on how to work with Django in deployment

Start Date: March 13, 2015

End Date: March 13, 2017

Lamu Software

Position: Junior Developer


With little experience using Django on actual projects and more so using CSS and JS I worked on a few simpler projects getting used to developing, styling a site, adding features with jQuery and deploying it to the server.

With time I got comfortable dealing with most of the development cycle including debugging and fixing issues.

Start Date: Dec. 5, 2012

End Date: Dec. 5, 2014



GIMP is a free and open-source raster graphics editor used for image retouching and editing, free-form drawing, converting between different image formats, and more specialized tasks.

Time Frame: 2 days



Blender is a free and open-source 3D computer graphics software toolset used for creating animated films, visual effects, art, 3D printed models, interactive 3D applications and video games.

Time Frame: 3 days


Video Editing

Video Editors are generally responsible for editing and assembling recorded raw material into a suitable, finished product ready for broadcasting. The material may include camera footage, dialogue, sound effects, graphics and special effects.

Time Frame: 4 months, 1 week



PyTorch is an open-source machine learning library for Python, based on Torch, used for applications such as natural language processing. PyTorch provides two high-level features: Tensor computation (like NumPy) with strong GPU acceleration.

Time Frame: 9 months



Electron is a framework for creating native applications with web technologies like JavaScript, HTML, and CSS. It takes care of the hard parts so you can focus on the core of your application.

Time Frame: 1 year



Node.js is an open-source, cross-platform JavaScript run-time environment that executes JavaScript code outside of a browser.

Time Frame: 1 year, 1 month



In computing, React (also known as React.js or ReactJS) is a JavaScript library for building user interfaces. It is maintained by Facebook and a community of individual developers and companies. React can be used as a base in the development of single-page or mobile applications.

Time Frame: 1 year, 3 months



TensorFlow is a Python library for fast numerical computing created and released by Google. It is a foundation library that can be used to create Deep Learning models directly or by using wrapper libraries that simplify the process built on top of TensorFlow.

Time Frame: 1 year, 3 months



Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano. It was developed with a focus on enabling fast experimentation.

Time Frame: 1 year, 3 months



Machine Learning in Python. Simple and efficient tools for data mining and data analysis; Accessible to everybody, and reusable in various contexts

Time Frame: 1 year, 3 months



is an open-source JavaScript framework for building user interfaces and single-page applications.

Time Frame: 1 year, 4 months



pandas is a software library written for the Python programming language for data manipulation and analysis. In particular, it offers data structures and operations for manipulating numerical tables and time series.

Time Frame: 1 year, 5 months



jQuery is a concise and fast JavaScript library that can be used to simplify event handling, HTML document traversing, Ajax interactions and animation for speedy website development. jQuery simplifies the HTML's client-side scripting, thus simplifying Web 2.0 applications development.

Time Frame: 6 years, 3 months



The only programming language that runs on your browser, where CSS makes it pretty, JS makes it alive.

Time Frame: 6 years, 12 months



Python Web Framework: The Web framework for perfectionists with deadlines

Time Frame: 7 years, 1 month



This is make-up for websites, without it, it would look like you when you wake up in the morning.

Time Frame: 7 years, 3 months



Python is an interpreted, high-level, general-purpose programming language. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, notably using significant whitespace. It provides constructs that enable clear programming on both small and large scales.

Time Frame: 7 years, 5 months



This is the the xml of websites; the backbone of the web-pages that pulls CSS, JS and the content of the page and present it to you, the curious wanderer, wondering if this is another click-bait site. Though HTML5 did bring new cards to the table, the poker game still has the same rules.

Time Frame: 7 years, 8 months



Overcoming Common Android Performance Barriers

School: PluralSight


This course teaches you how to investigate, evaluate, and improve common performance hazards related to memory, UI rendering, and more using the latest analysis and profiling tools.

Overcoming Common Android Performance Barriers certificate

Start Date: July 3, 2019

End Date: July 3, 2019

Exposing Data and Information Outside Your Android App

School: PluralSight


Android allows apps to extend beyond reach of their traditional boundaries. In this course, you'll learn how to capitalize on these capabilities through the use of Content Providers, notifications, and PendingIntents.

Exposing Data and Information Outside Your Android App certificate

Start Date: July 1, 2019

End Date: July 1, 2019

Building Apps with Android Architecture Components

School: PluralSight


This course will teach you to utilize the ARCH components libraries and master building Android apps.

Building Apps with Android Architecture Components certificate

Start Date: June 30, 2019

End Date: June 30, 2019

Creating Your First Android App with Android Studio and Firebase

School: PluralSight


This course will teach you how to use Firebase within your app so that you can build great full-stack apps quickly and follow best practices.

Creating Your First Android App with Android Studio and Firebase certificate

Start Date: June 29, 2019

End Date: June 29, 2019

Building Android Apps with Kotlin: Getting Started

School: PluralSight


Dive into the language set to replace Java while building Android applications. This course will give you a foundation of both Kotlin and Android skills to allow you to build apps faster and cleaner than ever before.

Building Android Apps with Kotlin: Getting Started certificate

Start Date: June 28, 2019

End Date: June 28, 2019

Building Your First Connected App with Android Studio

School: PluralSight


This course will teach you how to make your Android app connect to a web service and retrieve JSON data from the web, show it with a RecyclerView and persist data with SharedPreferences. You'll also create menus dynamically and use data binding.

Building Your First Connected App with Android Studio certificate

Start Date: June 24, 2019

End Date: June 26, 2019

Enhancing the Android Application Experience

School: PluralSight


Learn the skills necessary to create Android apps that provide the kind of rich, high-quality, and engaging experience users expect.

Enhancing the Android Application Experience certificate

Start Date: June 17, 2019

End Date: June 23, 2019

Working with Android Tools and Testing

School: PluralSight


This course covers the skills necessary to work efficiently as an Android app developer, and assure quality software through testing by learning to effectively utilize the single most important tool for Android developers, Android Studio.

Working with Android Tools and Testing certificate

Start Date: June 7, 2019

End Date: June 15, 2019

Understanding Android Application Basics

School: PluralSight


Start learning the skills necessary to become a successful Android developer by developing your understanding of Android application development and the creation of interactive user experiences with Android Activities.

Understanding Android Application Basics certificate

Start Date: May 8, 2019

End Date: May 26, 2019

JavaScript Fundamentals

School: PluralSight


Learn everything you need to know to produce production quality web applications and web page features with this foundational course on JavaScript.

JavaScript Fundamentals certificate

Start Date: Feb. 5, 2019

End Date: Feb. 7, 2019

JavaScript: Getting Started

School: PluralSight


JavaScript is the popular programming language which powers web pages and web applications. If you are new to programming or just new to the language, this course will get you started coding in JavaScript.

JavaScript: Getting Started certificate

Start Date: Dec. 12, 2018

End Date: Dec. 14, 2018

HTML, CSS, and JavaScript: The Big Picture

School: PluralSight


The course is about what HTML, CSS, and JavaScript are and how they interact to bring content to your browser.

HTML, CSS, and JavaScript: The Big Picture certificate

Start Date: Dec. 10, 2018

End Date: Dec. 12, 2018

Google Africa Scholarship Mobile Web Specialist Course

School: Udacity


Covers the basics of web development.

Google Africa Scholarship Mobile Web Specialist Course certificate

Start Date: May 7, 2018

End Date: Aug. 16, 2018

Product Design Course

School: Udacity


Process of working on releasing a viable software product cycle.

Start Date: Feb. 12, 2018

End Date: March 21, 2018

MS Bots

School: SitePoint


Using Microsoft Bot framework Azure to design automated tasks including a simple chatbot.

MS Bots certificate

Start Date: Feb. 3, 2018

End Date: Feb. 17, 2018

Introduction to Machine Learning

School: Udacity


This covers some core concepts of Machine Learning and how to use some open source packages to make predicting models.

Other Online Machine Learning related Courses taken thereafter

● Udacity: Statistics

● MIT 6.S094 OpenCourseWare: Deep Learning for Self Driving Cars

● Udacity: Introduction to Computer Vision

● MIT 6.858 OpenCourseware: Computer Systems Security

Start Date: Nov. 9, 2017

End Date: Feb. 14, 2018

Introduction to Computer Science: Building a Search Engine

School: Udacity


You get to build a mock search engine getting a good idea on how search engines are built, how to build a site including styling the site's pages.

Introduction to Computer Science: Building a Search Engine certificate

Start Date: Jan. 16, 2012

End Date: April 6, 2012

Diploma in Information Technology

School: Kenyatta University


The course was intended to equip the student with the skills for becoming an I.T. specialist.

Not Completed. Reasons: (discontinued) I found it lacking.

Start Date: July 12, 2011

End Date: July 12, 2012