Talk is cheap, show me the source code.

GitHub page | StackOverflow page | 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


Re-design site using Django.

Starting by duplicating the existing site from WordPress while on the fly adding and removing (redesigning the layout) content.

The advantage of moving from WordPress to Django is the ease and speed to adjust any content on the page without the risk of bugs cropping up.

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


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: 2 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: 7 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: 10 months, 4 weeks



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

Time Frame: 12 months



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, 1 month



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, 2 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, 2 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, 2 months



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

Time Frame: 1 year, 2 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, 3 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, 1 month



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

Time Frame: 6 years, 10 months



Python Web Framework: The Web framework for perfectionists with deadlines

Time Frame: 6 years, 11 months



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

Time Frame: 7 years, 1 month



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, 3 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, 6 months



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