Lesson 6: Employers vs Employees

*This is the last part of a series of posts I am doing about some six lessons I wish I had known better in school

My dad has had the biggest influence in my life; he is my hero. He is the one person who has always told me like it is. He is not the strict kind of dad though, my mum was the one who disciplined us. I am still afraid of my mum, I always feel if I do something wrong she might just give me a serious whooping. My dad has never been employed in his entire life. He is the classic hustler, you will find him doing this today and when we do the Kenyan thing of copying everything he jumps to the next venture. If you don’t believe me just open a shop or something and within no time someone will open a shop with the exact painting. The only difference is the name and I guess that is because it is illegal.

My dad started simple, with a bike. He used to deliver goods to shops. From there he bought a pick up and his business grew. After sometime he was able to open a physical shop as before he used to hawk his stuff from the back of his truck. Next was an insurance company (after he did a diploma in an insurance related course). He ventured into much more things, I am not able to keep track of all of them.

My dad was born an entrepreneur, he was born an employer. His mind was never set to work for anyone, a little bit of that sprinkled on me. I have always had a dream of running my own company in the future, I have always dreamed of having a product out there in the market. For some people like a friend of mine their ultimate dream is getting a job at the UN.

What is your dream? Not everyone can be an employer nor everyone can be an employee. Someone has to hire another and vice-verse. Somehow students have been fed the idea that we must all be entrepreneurs or that we all need to work for someone. Find out the kind of person you are and be the best you can be!

*I was a bit under the weather this week otherwise this post would have been up earlier, my body had rebelled against me so I spent a considerable amount of time in bed. I have not recovered fully but slowly by slowly I am getting there. I am going to create a section on the blog and have all the lessons there.

Lesson 5: The power of networking

Hanging out with Emilio

Hanging out with Emilio. It is a pity I closed my eyes. A camera is not my kind of thing

*This is the fifth part of a series of posts I am doing about some six lessons I wish I had known better in school

Sometime back last year during the launch of opendata.go.ke I had the chance of representing MChanjo at a showcase at the KICC. I got the chance to meet the president in person! The invite was courtesy of the ICT Board. This was just after the inaugural Pivot 25 competition.

Now you have the skills, you have slowly been improving day by day but nobody wants to hire you. At this point you might start wondering whats the point and even some people think of giving up. Let me use two analogies to put this point across.

In a football match a striker is a very important person (Unless you are a traitor like Van Persie then this point simply doesn’t apply). Need I say that no team has ever won a game without scoring. A striker consistently tries to put himself/herself in a scoring position. Without doing this the chances of scoring are nil.

What do people do when they are looking for a better half. I know some of my friends who stay in the house the whole time or go to the same places all the time and hence never get to meet new people. For the purpose of this post I will not be referring to them at all. We normally go to new places and try to meet new people in the hope that we will actually meet someone we like. You have to put yourself out there so that you get noticed. You have to meet people so that they can see that awesomeness you believe you have (You might not have it but at least you tried 🙂 )

How does this fit in to my post? Networking is pretty much  the same thing. People will not know of your capabilities unless they interact with you first. In my third year of study I made sure that I networked extensively as my external attachment was coming up and I never wanted to go to those places where you sit and do nothing. I made a point of attending many tech events and talking with the who and whos in IT. Through this I was able to meet Liko, the CEO Pesapal, and a few months later when I applied for internship they responded well and gave me a chance. Remember that we are all human, an employer is more likely to give you a chance if you have met before in a different setting. You are much better off if he/she remembers you.

Go out there, meet the key people in the industry and more importantly get to courage to talk to them. Leave an impression( a good one). It will help you in the future.

*Sevens here we come! As a result my last post will be delivered on Monday

Lesson 4, part 2: The cocoon mentality

*This is second part of the fourth lesson in a series of six posts I am doing on the six lessons I wish I had known better in school

Butterflies, such beautiful creatures. Whoever came up with the phrase butterflies in my stomach did the butterflies a great disservice. I would assume that was a good feeling but instead it is the opposite. Everything is a process, a butterfly develops in four stages

  1. The first stage: the egg
  2. The second stage: the larva(caterpillar)
  3. The third stage: Pupa (Chrysalis)
  4. The fourth stage: Adult butterfly

For this post I am interested in the third step, the pupa.  As soon as a caterpillar is done growing and they have reached their full length/weight, they form themselves into a pupa, also known as a chrysalis.  From the outside of the pupa, it looks as if the caterpillar may just be resting, but the inside is where all of the action is.  Inside of the pupa, the caterpillar is rapidly changing. The butterfly is however not exposed to the outside world at all. There can be an apocalypse but it would not even know. This is where the term “cocoon mentality” came from. The butterfly at this point is totally isolated from the rest of the world. However, the isolation is only for a certain period of time.

In the previous post I talked about jacks of all trades and the demerits of being one. As a result most people misinterpret the message leading to what the elder population refer to as the ignorant generation. How many of the three questions below can you answer without resorting to Google? Give it a try and please be honest

  1. In the forthcoming general elections how many leaders will you elect?
  2. Who is Mitt Romney’s running mate? (Please don’t ask who Mitt Romney is)
  3. When will Kenya hold it’s next general elections?

I have purposely asked about politics because most youths assume that it doesn’t affect us in any way. This will be a topic for another day so let me not dwell on it. You need to know what is going on around you. It doesn’t need to be in depth knowledge but you need at least to have an idea. Most coders have a problem, we can only take about code and as a result when we meet with people who are in other fields we run out of words pretty fast.

Get out of the cocoon, butterflies themselves never stay there permanently.



Lesson 4: Jack of all trades, master of none

*This is the fourth part of a series of posts I am doing about some six lessons I wish I had known better in school

First let me apologies for the interruption in the posts, I was otherwise engaged and was nowhere near a computer. By the end of the week I will have done the remaining posts. So let us get started!

Jack – A man of the common people; a lad, fellow, chap; especially a low-bred or ill-mannered fellow, a ‘knave’

The earliest example that can be find in print of the actual phrase ‘Jack of all trades, master of none’ is in Charles Lucas’s Pharmacomastix, 1785:

The very Druggist, who in all other nations in Europe is but Pharmacopola, a mere drug-merchant, is with us, not only a physician and chirurgeon, but also a Galenic and Chemic apothecary; a seller of drugs, medicines, vertices, oils, paints or colours poysons, &c. a Jack of all trades, and in truth, master of none.

So Jack used to do everything and as a result was a master in none. Have you fallen into the same trap? Are you a software developer, a network guy, the repairs guy, the salesperson, the CEO, the project manager, the CFO and also the business developer? Is your core competency all the above? Do you apply for any IT job as you feel that you can fit in any of them? This does not only apply to people in the computing field, each career has several options.

There is a however a small spin to this line of thinking.Most people take this saying and inter-prate it to mean that you can only do one thing in order to succeed; I beg to differ. We generally have two kinds of individuals; generalist and specialist. Generalist a little about everything, specialist know a lot about one particular thing. However, we have people who don’t fit in any of these categories. They are neither specialist nor generalist. So how do we classify this group?

There is a reason campus is at least three years; it gives you time to discover yourself. During my first year I loved networking. The biggest to this, I guess, was the lecturer Mr. Kaguongo. In the second semester things changed, we had a different lecturer who taught exactly the same things although less effectively and with way less passion. Despite insisting that he was a guy who loved practical lessons we only had two the whole semester! In second year I did web development, both back end and front end development. In third year I focused on back end design and in my fourth year I ventured into cloud computing. This forced me to learn some system administration as I had to work on EC2. As a result over the four years I was able to experiment with various things. My core competence is software development but at the same time I can do limited system administration. I dropped networking completely and I would never apply for a networking job.

My advice, don’t be a jack of all trades but rather specialize in a sector and be the best you can be in it. However, before you choose a field try out several things first.

*There was a second part to this lesson, the cocoon mentality. I will do it as the next post and so we will have one extra post instead of the promised six

Lesson 2: Nothing comes on a silver plater

Rudisha, a hero in every Kenyan's eye

Rudisha, a hero in every Kenyan’s eye

*This is the second part of a series of posts I am doing about some six lessons I wish I had known better in school

Whenever I meet some of my colleagues or just friends they always remark that I am very lucky that I got a job immediately after finishing studies. Some go on and remark that they are looking for “any” job with no luck. Being the nice people we are we never actually say what is on our minds. Instead we choose to speak politically correct gibberish –> yea, I am very lucky bla bla bla bla.. I admit getting a job is one hell of a job but get this right, luck plays a very small role in that. It is more about 99% you and 1% luck

I have Rudisha photo up there for a reason. We always look at our athletes and remark on how they make easy money. I once heard someone remark that by just running Jelimo made 78 million (She did!). We choose to overlook the process and just look at the end result. (This reminds me of a joke which was doing rounds on twitter and mukuru kwa zuckerberg some time back, when people see a pregnant woman they are quick to congratulate her… I will not complete it, fill in the blanks.) Being an athlete is one of the hardest things in life. It requires a lot of discipline. If you knew how hard those guys train you would never envy them. Rudisha will go on the track and shred the competitors to pieces because of the preparation done before then.

Most students go through university with the thought that once they clear they will just land jobs. You have to prepare for this. You have to work hard and prove yourself even before you are given a chance. It is hard to get a paying job while in school but you should know that this is the only time you should really work for free. It is a chance to show what you can do given the chance. This is the reason as to why I never wanted to do my internship for a parastatal or the government, you will just sit around doing nothing. Instead I was at a start up where I was given much more responsibility. With that one chance I proved myself and I am back there now as an employee. It is good to have fun but when that is all that one does then it a cause for worry. Your internship is not the only chance to prove yourself, do your own projects or volunteer somewhere. I remember I used to sacrifice a lot of my weekends to go for hackathons. That is what built me. I am who I am now because of the hard work and determination I put in while in school.

Nothing comes on a silver plater, you have to put in the time and effort so let no one lie to you about that.


6 Lessons I wish I had really understood when I was a student

I love law, all that jargon just does it for me. The hidden meaning for words, the different ways you can twist an argument and so much more. So before we get started here let me lay down the terms of reference. When I talk about lessons in no way am I referring to data structures and algorithms, calculus, automata theory or any of those really hard units taught in uni (of course by a lecturer who had no idea of the subject matter). The lessons I am talking about are real life lessons although the a fore mentioned are also very important.

I am still a student though a different kind, I am a student of life and at the moment I am doing just fine. Some time back I was a comrade, I viewed the whole differently. I thought it would worship at my feet, now I know better. As a student people didn’t have a lot of expectations from me. I also did my part, I hustled my way through uni since second year. Ngoja niende ocha juzi! I now know why the say a child belongs to the village and not the family. 

I am deviating, focus ni muhimu. On Saturday 11th of this month I was at Kenyatta University as one of the judges in a mobile application development competition. After the presentations I gave a short talk on my experiences as a young developer. I am going to share the same here, you never know it might just make a difference in someone’s life.

I have drawn my lessons from people who have been there done that. Life is too short to make and learn from your mistakes so it is always good from other people’s mistakes.

Lesson 1: Do what you love, love what you do

Elon Musk

Elon Musk never ceases to baffle me. Elon founded PayPal, the world’s largest internet payment system, only to sell it. He didn’t sell it because it wasn’t making money. I am an avid fun of the daily show and thanks to Fred, a colleague at work, I will never miss an episode. Sometime back Elon was at the show as a guest. Early in life Elon identified three spheres that would change the future of mankind. They were

  • Internet
  • Sustainable energy and
  • Space exploration

In March 1999 he co-founded X.com, an on-line financial services and email payment company. To cut the long story short a few years later this became PayPal.  In October 2002, PayPal was acquired by eBay for US$1.5 billion in stock. Before its sale, Musk, the company’s largest shareholder, owned 11.7% of PayPal’s shares.

I am sure if it were you, you would have never left. Elon had unfinished business, he went ahead and created SpaceX. He went from PayPal to making rockets. In the world there are only four entities that deal with space exploration

  1. USA
  2. China
  3. Russia and
  4. Elon Musk

So what was his secret to success? Elon did what he truly loved. Would you still do the job you are doing if there was no monetary gain? The money may seem appealing now but will you still look forward to work 2 years later. Are you doing something because of family pressure or societal expectations or maybe because it is because it looks prestigious? In no way am I saying that you should work for free, just do what you love and love what you do. I discovered early that I liked coding. In case I ever change careers I know I will still code even just as something on the side. I have seen many people code because it seems like easy money but they quit or get frustrated so early. My advice to you, identify that one thing you love doing and be the best you can be in that.

*Due to the lengthy nature of the posts I have decided to do it in 6 installments, lesson 2 is coming up pretty soon

3 Handy MySQL/Linux Commands

I have finally thrown in the towel, I don’t think at the moment I am able to complete fully fledged tutorials. I always fail at the last one 😦 As a result I have decided to be doing short posts highlighting some of the functions/commands that I frequently use. The main reason I am posting them is so that I can have a place I can quickly refer as I always end up spending some time looking for some particular command. I have listed them in no particular order

Importing a database from the terminal

Most of the time I deal with MySQL datasets that break the PHP file upload limit. As a result I can’t import the sql file from phpmyadmin. The following command ran in the terminal usually comes in handy

  • mysql -u mysql_user -p database_name < file_to_import.sql

where mysql_user is the mysql username, database_name is the name of the database I am exporting to and file_to_import.sql is the sql to import from. For the above command to work you have to be in the root directory where the .sql file is

Changing file and folder permissions recursively

Most Linux servers are strict on file and folder permissions. If the permissions are not correct then it normally throws error 500. You can use FileZilla to recursively change file and folder permissions but this normally takes a very long time. I ran across the following Linux command which greatly helps

  • sudo find path_to_folder -type f -print -exec chmod 644 {} \;

We are using sudo as changing file permissions is a privileged command. We are using the find command to locate the files then change their permissions. path_to_folder is the location of your files. -type is used to indicate whether we are looking for files or folders, f for files and d for directories/folders. -print informs the system to print out all the files it has found on the terminal. -exec tells the system to execute the command chmod 644 to the files which have been located. The command below works on  for files

  • sudo find path_to_folder -type d -print -exec chmod 755 {} \;

You can change the permissions to some other like 444 or something. I am not going to cover folder and file permissions in this post. A modification of this command that allows us to search for files/folders with particular permissions and change them to some other permission is as follows

  • find file_path -type d -perm 777 -exec chmod 755 {} \;

The above command looks for folders in the specified path with the permission 777 and changes it to 755. This is achieved using the -perm switch. Find is a very useful command, try playing around with it.

Changing File Ownership

File ownership and file permissions are two very different things. Normally I work on a project on localhost then at some stage transfer it to the actual server. On localhost the files usually belong to root or me(the currently logged in user). When I transfer this to the on-line server by default they belong to root. This limits actions the Apache user (www-data) can do. You will try to upload a component(this is for Joomla) and it fails. You can use the chown command to change file ownership

  • sudo chown -R www-data:www-data path_to_project

-R tells the system to recurse through all files and folders. www-data is the default Apache user. The first www-data indicates that the files and folders will be owned by www-data. The www-data after the colon indicates that the files and folders will be in the group www-data. Keep in mind that you can use any other user or group other than www-data. path_to_project is the absolute path to your files.

That will be it for today, I hope the above commands will be helpful. Cheers!