Image for post
Image for post
Photo by Mika Baumeister on Unsplash

This post is a continuation of untidy data blog I did previously. To understand what an untidy data is, kindly have a look at the post. As a recap, data is said to be tidy if it has the following properties:

  1. Each variable forms a column.
  2. Each observation forms a row.
  3. Each type of observational unit forms a table.

Here I am going to tidy up an untidy data I introduced in that post. I am going to use Python to do this, to be more specific pandas library. …

Image for post
Image for post
Photo by Sharon McCutcheon on Unsplash

Why tidy data?

It is hard to manipulate, model and visualize raw data. This is because raw data is messy. A lot of time and effort is spend in preparing data to make it ready for manipulation, modelling and visualization. I am going to talk about handling untidy data i.e tidying untidy data. The idea of tidying data is well covered by Hadley Wickham in tidy data paper.

This is an introduction to the topic of tidy data. …


We hear the terms “correlation” and “causation” a lot, but what do they actually mean?

Correlation defines how two variables relate to each other when they change. When one variable increases, the other may increase, decrease or remain the same. For example, when it rains more, people tend to buy more umbrellas.

Causation implies that one variable causes another variable to change. For example, we can confidently conclude that more rain causes more people to acquire umbrellas.

In this post, I am going to explore the meaning of the terms and try to explain a way of deciding how they relate. …

Traditionally, the model used in software development involved consistent sequence of stages to design, build, and test software. This is called waterfall development model. Just like a river waterfall, the flow is only downstream and there was no means of water flowing upstream. Each development stage is done by a specialized group of people who then hand over the work to the next stage after completing their task. This can be seen as a very organized way of software development, but it comes with a cost. There is another model however, which makes it possible to develop software quickly and be able to respond to change. …

One day my boss suggested that we were going to work on a feature together for about 30 minutes. I was still new to software development and I had not heard of an extreme programming technique called pair programming. He said that some development teams had fully adopted it and do it on daily basis. I could not understand how it made sense that two programmers work together everyday on the same workstation. That would definitely lead to wastage of resources as I though that the productivity would be half. Moreover, it seems annoying to always have someone looking over my shoulder the whole day! It is intruding my privacy. …


A good design helps to create a good visual impression and makes it easy to get the information on the page. The is a design book that I have just finished reading and I have decided to share the most important concept here. There are four basic design principles that every designer should adhere to. These are Proximity, alignment, repetition and contrast. These principles are important in any design work. They can be used in websites, business cards, flyers, newsletters among others. …

Agile development describes a set of values and principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams.

Agile development focuses on achieving personal, technical and organizational goals. Agile methods achieve organizational success by focusing on delivering value and decreasing costs which translates to increased return of investment. The iterations involved in agile development leads to continuous integration preventing unexpected delays before release and allows the team to change direction at will. …


Kim Rodgers

I am a software engineer at Echo Mobile, a Nairobi based Tech firm that focuses on enabling 2 way communication between businesses and their customers

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store