A Tale Of Two Types: Generalists Vs Specialists

By Nancy Momanyi,

Moringa School Staff.

Generalists Vs Specialists

The tech scene in Kenya has really grown over the past few years. The question that most young techies ask at the beginning of their careers is, “Do most employers prefer generalists or specialists?”.

You may already be well advanced in your career but are wondering whether you made the right choice to be a specialist or generalist.  According to Merriam-Webstar dictionary, a specialist is defined as a person who has special knowledge and skill relating to a particular job, an area of study. A generalist, on the other hand, is someone who has special knowledge and skill relating to a particular job, an area of study.

According to Ariane Fisher, Managing Director at Shortlist your learning philosophy is what makes you most employable. It is important to be able to adapt to different situations in the workplace.  A mistake most developers make at the beginning of their careers is focusing too much on the technology or the programming aspect of their roles and not the problem they are solving. It is nice to be a specialist in a particular domain but you should be able to be a problem solver and understand the market’s needs.

The more you learn things outside of your comfort zone, the easier it is for you to get new opportunities. These were the sentiments shared by Caine Wanjau, CTO at Twiga foods. This also makes you eligible for leadership roles within an organization. When you first join the tech space, you will be a specialist in your role but as you grow in your organization it is important for you to learn the business aspect of your organization. Having a broad view of where your organization is heading enables you to contribute effectively to the growth of an organization.

A generalist, with knowledge of a broad range of issues, can see deeper inside this interconnectedness and find solutions that a specialist might not be able to see. All the different departments within a business connect with each other. A generalist can help see this bigger picture and come up with ideas and solutions that benefit the business as a whole.

Finally, since generalists can have loosely defined roles and work in a number of different positions, their job security might suffer. Replacing a generalist with another generalist can be easier than finding another specialist for a position.

Perhaps the main benefit to a specialist career route is the ability to grow in a particular field and earn more money. Being a specialist in a role often takes longer and you have to have gained knowledge in a particular subject which makes you an asset to the company. This is the reason why specialists tend to make more money.

The organization often has a few specialists operating in different sectors, which means the whole of the organization could rely on their expertise. This not only provides higher chances for a better salary but can also provide the specialist more internal power. For example, you might be better placed to negotiate when it comes to implementing new management structures or other such issues.

According to Sam Kitonyi, Director of Engineering at Jumo World everyone needs to be a specialist in learning new skills. You should never be comfortable with the skills you have now because in a few years your role may be redundant.

To conclude, whether you are a generalist or a specialist if you work hard towards achieving your career goals, you can do so as a specialist and as a generalist.




How Blockchain Will Revolutionize Kenya

By Maxwell Haron,

Moringa Core 10 Graduate

Maxwell Haron

From transparency in payments and secure communications to better healthcare and banking, blockchain will have a huge impact on our future.

Have you ever purchased honey that was labeled “Honey from Kitui” or purchased tea leaves labeled “Original tea from Kericho”?? How can you trust that information? How sure are you that the honey you have purchased wasn’t created from some dingy lab somewhere in the world then shipped to Kenya? How sure are you that the tea leaves you purchased were actually grown in Kericho and not in someone’s farm in Limuru??

The Kenya we live in today is filled with uncertainty and a ton of trust issues. To ensure you actually purchased original honey from Kitui you’d need a system with strong security where records are stored and facts are verified by many witnesses so that no one could cheat it.


How exactly does blockchain work??

This type of system is called blockchain.No central person or company owns it. Rather, information is stored across a system of many personal computers so there is no middleman. It’s decentralized and distributed so that no one person can take it down or corrupt it. However, anyone can use the system and run it, as information is protected through cryptography. It’s more like the devolution government only that blockchain has zero corruption tolerance as there’s no supreme leader. It is a list of ever-growing transactions that are verified, permanently recorded and linked in chronological order.

So how exactly will blockchain revolutionize Kenya

1.Bank and payments

Not only will blockchain allow anyone to exchange money faster, more efficiently and more securely, but also banks will improve transactions.


All data is verified and encrypted in blockchain using advanced cryptography, making it resistant to unauthorized changes and hacks. Centralized servers can be very susceptible to data loss, corruption, human error, and hacking. My Friends and I were recently hacked when we pushed our virtual environments and .env files to GitHub. Using a blockchain decentralized, a distributed system would allow data storage in the cloud to be more robust and protected against attacks.

3. Internet of Things (IoT)

Today the Internet of Things (IoT) includes cars, buildings, doorbells, and even refrigerators that are embedded with software, network connectivity, and sensors. However, because these devices operate from a central location that handles communications, hackers can gain access to the car you’re driving or to your home.



Donating to a worthy cause is never a bad idea. But what percentage of your donation is actually being given to those it’s meant for? Blockchains can help ensure that your money gets exactly where you need it to go. Bitcoin-based charities are already creating trust through smart contracts and online reputation systems and allowing donors to see where their donations go through a secure and transparent ledger.

How To Recruit Top Tech Talent

By Maxwell Haron,

Moringa School Student.


Moringa School Outbox

The problem most tech companies face these days is finding and hiring the best talent tech has to offer. This becomes a lot less difficult because we have companies like Moringa which contribute a great deal when it comes to the number of developers (both Android and Fullstack) that they output to the job market each month. Recruiting and hiring software developers for any tech company is brutal; for a small tech company, it would feel nearly impossible. So without wasting any time, I’m going to give you the tips for attracting the best tech talent in competitive areas.

1.Hire tech-specialized recruiters who speak the right language

There is no quicker way to lose a candidate’s interest than to describe a job in a way that doesn’t make sense to them. They’ll think your company doesn’t have it together and their skills would be better used somewhere else. A recruiter who specializes in finding tech talent will not only bring you the right candidates. They’ll also make a good first impression on behalf of your company because they can express what you’re looking for in a practical way.


2.Have a smart overall recruiting strategy

While tech companies often need to hire fast to meet ambitious growth goals, it’s important to have a smart, long-term strategy. Hiring for tech positions is a challenge. People with good careers carefully consider their options before changing jobs. Additionally, your hiring timelines won’t always align with ideal candidates. Many people in tech want to see a project through before they move on from a company so you can’t always expect them to be available in two weeks. Consider playing the long game and slowly attracting talented candidates with an inbound recruiting program.

3.Establish a presence in the local tech scene

 A thriving tech community means there are a lot of people with similar interests who get together to socialize. It isn’t hard to find Meetup Groups, hackathons, workshops or other social events in cities with a high concentration of tech workers.
Some companies take an aggressive approach and put on these types of events so they can connect with talented, passionate people. They might even make their intentions known and outright host a recruiting event. If your company can’t go that far, it’s still a good idea to send a recruiter to local tech events. Many people in attendance may be looking for a job or, at the very least, testing the waters to see what opportunities are out there.

4. Your marketing is a recruiting asset

Marketing is all about acquiring new customers. But a secondary benefit of having a popular brand is people will think to check out your career opportunities when they start their job search. If your company advertises locally, you’re raising awareness with potential candidates in your area. They’ll see the ads and associate your brand as a successful tech company. If your company doesn’t advertise locally, you can still consider publicly promoting the fact that you are hiring. It’s an effective way to cast a wide net and showcase your company as a favorable place to work.

5.Have a local network

If there are a lot of tech companies in your area, your social circle is likely made up of people who also work in tech. It can be beneficial to ask personal contacts for assistance with your recruiting efforts and to repay the favor when your friends need help. Someone who wasn’t suited for your company may be just who another company is in need of.


My Experience at Moringa School


By Maxwell Haron,

Moringa School Staff.

It all began with an advert that popped up when I was scrolling through my Instagram feed. Well, all the adverts are annoying but this one wasn’t. I actually wanted to know more about it. I simply stared at the catchy advert that read “Become a world-class developer at Moringa ”. I clicked the apply now button(As I figured that it’s too good to be true), filled in the forms and got my interview. The interview went well and I got the reporting date. My experience at Moringa was awesome, here are the things that won my heart

1.The People

This one takes the cake by a moonshot. Going to a Moringa School is a guaranteed way to meet some of the most interesting people you will ever meet. I feel like there is a stereotype that people join boot camps because they were lost or had no alternative, but this simply could not be further from the truth. Many of the people that I have had the pleasure of meeting during me experience in Moringa would have been considered “successful” by most in their prior life. I met a person who was a wizard in the Agriculture industry and owned a couple of farms,a 20 year old who had two tracts of land in Nakuru worth 2 million,a  CPA holder who was looking to integrate public accounting with coding, a music producer/youtube-personality,a computer science graduates from various universities who thought that university education was not enough,and many more. Day in and day out these people serve as an invaluable support system throughout this overwhelming undertaking experience. Learning to code is possible on your own but it is so much more enjoyable when you have other people learning all around you who are always willing to help you rubber-duck a problem.

2.The Mentors

I also can’t speak highly enough of the mentors and instructors. When you are self-teaching it is common to beat your head against a problem for hours, or days, without ever reaching a solution. Don’t get me wrong, I know that this is an important part of the learning process and I value the beauty in the struggle, but when you are first starting out and don’t have the experience to notice that everything is broken because you are missing a comma somewhere, having another set of eyes is priceless. I always say that Debugging is like trying to bewitch yourself, that is why I always get help from one of my mentors. I have also been lucky to have mentors who are truly invested in our success and go above and beyond their job description on a daily basis. Watching videos is great, but at the end of the day there is no substitute for human interaction and the staff here has sped up the learning curve tremendously.

3.The Challenge

Trying to learn a new skill in twelve weeks is going to be a challenge no matter what it is. You add that to the fact that many of the people that sign up for Moringa have little-to-no-coding experience, and it quickly becomes obvious that the ONLY way to learn a significant amount in 12 weeks is to cram it and keep moving forward before you even get slightly comfortable with what you just learned. The fast-paced, you-get-out-what-you-put-in, hands-on learning environment has stretched my faculties in ways that I could have never imagined.I’m not naive enough to think that when I walk out of here the world will owe me a job, but I will definitely feel confident that I can contribute to a team at a junior-developer level.

4.The Opportunity

I consider myself incredibly lucky to have this opportunity. As a disclaimer, I do not have children or pets to take care of and I was able to convince my parents to enroll me in this boot camp. This isn’t to say that people with serious commitments can’t attend a program like this, there are bright individuals in my class who are married, have children, and have even relocated in order to attend. Everybody’s situation is different, and not everybody has the luxury to devote 91/2 plus hours to learning something new. This makes me admire the people who are teaching themselves after-hours and on the weekends even more. You guys are badasses. I know I am fortunate to have this chance and I do not intend to waste it. Though I do not have anything lined up (yet) for after graduation, I am already exceedingly grateful for the doors that this experience has opened. Though I will surely face plenty of rejection throughout my job search, I am confident that I will be able to get my foot in the door somewhere exciting and work my way up from there. I feel like the tech industry rewards hard work in ways that other industries, unfortunately, do not. If you take the initiative to be an early adopter of a technology that adds value to a business, and you do it well, you will likely be compensated accordingly for your efforts. As a person who loves to learn continuously, this is a very alluring concept.

I do not know what lies ahead, but I know for a fact that uncertainty is better than unhappiness. Wherever you are in your journey, I wish you the best of luck.



The Command in Code, the Power in You

By Boyd Ndonga,

Moringa School Staff

The art of war

Coding is as much an art as painting. No matched painters lay equal strokes of the brush across their canvas but any great painter can sync a masterpiece working with other artists. As every fundamental is held by a principle so does coding convene to the five stated by Sun Tzu in the Art of war and understanding these fundamentals aligns you to the path of victory.

1. Moral Cause

Technology seeks to make work easier but moral problems related to technology are associated with the use that humans make of these technologies. Tay was an artificial intelligence bot that was originally released by Microsoft via Twitter on March 23, 2016; it caused subsequent controversy when the bot began to post inflammatory and offensive tweets through its Twitter account, forcing Microsoft to shut down the service only 16 hours after its launch. According to Microsoft, this was caused by trolls who “attacked” the service as the bot made replies based on its interactions with people on Twitter

As a developer I am limited only by my imagination hence I should always let integrity be its guide and as the user always consider the morals to my every action while using various technologies.

2. Heaven

There are always elements beyond our control but not always beyond our influence or analysis. In what seems like a constant string of natural disasters, information and the dissemination of information are key. The use of social media, drones, satellite imagery through GIS, real-time disaster modeling, and widespread connectivity means more efficient and necessary information flow.

3. Earth

These are elements within our influence distant or intermediate, obstructed or easy and conditions for the chances of life and death. Corruption is an earthly attribute whose ripple effect is adverse to extent of distorting the economy and inducing hunger to the less fortunate. Humanitarians can dwell on improving and bettering human lives but foul habits in society find ways to disrupt chains and divert resources. By facilitating the flow of information between government institutions, between government and citizens, as well as among citizens, new technologies can promote transparency, accountability and civic participation.

4. Discipline

To employ moral cause, rewards, logistics, and flexible systems discipline is key. The irrational view of technology as socially constructed, should contribute to the new, non-hierarchical organization, and make it possible to use the complexity and diversity of the environment proactively. Emphasis on deep consideration of the match between the product and its use, intense analysis of present and anticipated future conditions of operation, and technical and moral responsibility.

5. Commander

All these fundamentals are merely a wash down the drain without the commander. A commander stands for wisdom, humanity, credibility, courage, intelligence, and firmness. it is up to the commander to be accountable and hold authority over a group or the attempts of a group to achieve a common goal. As a ship has a captain and every code a set of commands so is the success of an army bound to its commander.

11 Reasons why Git should be your best friend in Software Development


Image result for git in software development


By Maxwell Haron,

Moringa School Student

“Git,an essential tool for the modern developer,”  they say. Personally,I consider Git to be more of a friend than a tool in  software development. My ‘Best Friend’ has bailed me out in situations whereby I would have been required to start doing hours code  from scratch. And so without beating around the bush here are my reasons why you should be using Git and not any other tool in software development.

1.Git is perfect to work with others

Git is designed to creating projects where many people can contribute to develop develop software in parallel. Specifically, it has a very powerful way to resolve conflicts when two people are working on the same file. Its stability is much higher than Subversion (SVN). Those who have used SVN knows what I’m talking about.Right??sl

2.It is easy to revert your code

Every time you send code to the server you make a commit. Every commit is referenced with a 40 character hash containing numbers and letters  that uniquely identifies it. With git, it is super easy to revert to any past commit and fix a mistake.

3.Git has good documentation and tutorials to follow

Git has been around for many years now and it’s really easy to find good documentation that explain the basics of git and and add very useful commands that can help you get out of sticky situations .

4.Git is the current de facto open-source umbrella

Open source is where the copyright holder grants users the right to study, change, and distribute the software to anyone and for any purpose.If you want to develop open-source code, the biggest repository is GitHub.Here you can find the most popular repositories and also the most trending which include Bootstrap ,react ,d3 , tensorflow, angular, etc.

5.You can work offline

A lot of companies underestimate the benefits that can be had if their developers were to be able to work offline.

Being able to code on your laptop without having to connect to your company’s servers is not only about being able to work during a commute or while at home (which a lot of companies don’t permit due to security restrictions).

More importantly, being able to work offline makes you more fail-safe as a team: While with a VCS like Subversion or CVS, a developer can’t continue their work when a central server goes down, this is not an issue with Git.

In Git, developers can perform everything on their personal computer, making them independent of possible infrastructure downtimes.

6.Git Allows You to Undo Your Mistakes

In Git, you can almost everything,and I mean EVERYTHING

Being able to undo things gives your team the courage to try out ideas and concepts without the risk of breaking stuff, which in turn fosters a culture of innovation. Great Hits like ‘Git reset –hard + (the 40 character hash )’ helps a great deal when it comes to reverting to a specific commit

7.Git Makes Your Progress Clear

A commit in Git refers to the act of recording changes you have made in your source code.

When used properly, Git makes it easy to craft very granular commits. You can see what changes have occurred down to the microscopic level: Git will tell you what characters and lines in your source code have been altered. If you want to compare two versions of a file or the difference between two of your commits, you can issue Git’s diff command, which will highlight the differences between them.

8.Git Encourages Modularization

In even the smallest development projects, developers are often required to work on multiple components in parallel. Feature Xbug #102, a new UI for a sign-up form, etc.

Among many others, here are a couple of major issues with projects that aren’t version-controlled:

  • Project dependencies will be painful to manage. Team members must sort out which changes affect which components.
  • Unfinished and experimental code will mix-in with production-ready code.Without version control, there is a huge chance that an unstable piece of code gets deployed to a production environment.

Imagine these scenarios.

Your client tells you that they don’t want feature X anymore.

Or what if you find that feature Y — an experimental feature you have been working on — can’t be implemented?

How do you get code removed safely from your code base?

Using branches is the solution to these commonplace development problems. Although Git wasn’t the version control system (VCS) that introduced the concept of branching, it’s the first of its kind that makes it user-friendly.

9.Git is easy to use

Nobody can say git is difficult. To do the day-to-day work, you just need to manage these 8 commands: git clone, git status, git add, git commit, git push, git pull, git checkout and git branch.With them you can download a repo, check its status, add files, send files to the server, retrieve the latest changes on the server and create branches to work in parallel.

10.Git Branches allow for simultaneous code versions

Branches are one of the best features of a version control software and are used to develop in parallel to the main repository. A branch is a fork of the main code to develop a new feature. When you create a new functionality in the code, you should create a branch. Then you develop the functionality, test it and when it works perfectly, you can integrate it or merge into the main branch (which is usually the master branch). When using branches, you can have simultaneous versions of the same code.

11.Never Lose Data Ever Again

Losing data and not being able to recover it can break a dev project.

We’ve all heard or experienced our own set of horror stories about failed backups and servers. It’s good to know that when using Git, every developer working on a project has a full-fledged copy on their machine, including the project’s complete change history.

And if your team uses a remote source code repository such as GitHub, then the chances of losing your work in the event that your on-site backups fail is much smaller.

If your backups break down, losing data isn’t even a possibility when using Git: Just take any team member’s local repository and restore in minutes.


There you go,my eleven reasons why I love git .Git has stepped out of being a technology for early-adopters. Today, more and more developers are using it to improve the quality of their code and workflow.

If you would like to get started with Git right now, read these resources:





Leveraging Power of Big Data In Education

By Lawrence Karanja,

Moringa School Student

What is Big Data?/Brief Intro To Big Data

Big Data

Big data refers to the large amounts of data(Data sets) that are generated which cannot be analyzed using traditional methods. This data is mostly unstructured and is usually of unknown value. This data is collected and analyzed using computing so as to make sense of it.

Big data is emphasized by three Vs: volume, velocity, and variety. Volume refers to the amount of data, depending on the organization this can range from terabytes to petabytes. Velocity refers to the fast rate at which data is received and processed, for most big data applications the data is usually store in memory first rather than on hard disks due to their slow read/write nature. Variety is the final V of big data and it refers to the variety of data that is now available. Unlike in the times before where data was structured and could be stored in relational databases, data generated nowadays is highly unstructured.

In order to understand big data, we need to understand how much data there currently is. According to a study done by University of Southern Carolina (http://www.sciencemag.org/content/early/2011/02/09/science.1200970.abstract), as at 2007 there was an estimated 295 billion gigabytes of data (295 exabytes). This can be eclipsed in the near future given the amount of data generated daily stands at 2.5 Quintillion bytes(https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?htmlfid=WRL12345USEN) and given that the number of internet users as at the of 2017 stood at 3.2 Billion, this number can change dramatically.


How Does Education Fit In With Big Data?

Given the amounts of data generated one would expect that some significant progress can be made in the world in different sectors. The education sector also stands to gain a lot by harnessing the power of Big Data. By using these vast amounts of data, institutions can initiate programmes whose success would be virtually assured.

Before this data can be used, these institutions need to collect it first. The systems for such collection is already widely available since institutions keep a lot of data regarding students from performance to financials. By optimizing this data collection and expanding the collection into other areas, it can be easy to create a picture of a student that will help the institution understand how to offer the best service.

Institutions can use big data to tailor learning experiences to individual students instead of using a blanket approach to teaching which leaves some students disadvantaged. A student can have their own study of the curriculum customized to fit their  own understanding thereby ensuring that every students get the value of understanding.

Effects on the workforce, of using big data in education

Understanding how different students learn, can help an institution set up systems that optimize on their resources eliminating what is essentially blind investments into education experiences.This type of optimization can lead to more investments into areas such as Research.

Tailored education experiences can also help produce a workforce that is ready for the market once they finish their studies since students can be taught in order to be ready for a sector that they feel they’ll best best into. Companies in the US for example used about $164.2 Billion for training and development in 2012 (http://www.astd.org/Professional-Resources/State-Of-The-Industry-Report?_ga=2.49638438.1206958595.1526541678-1963358284.1526541678), this number can be reduced greatly by having graduates that are already prepared for the market by using big data.