Tag: coder
Of the oppressors, the oppressed and the free
by Idd Salim on Feb.09, 2011, under Coding, Personal

Mentally FREE, at last...
Well, it is a sunny day! So I think I am going to blog about something cool.
Yesterday, I met some guys who know someone who knows someone who was not impressed about what I had blogged about Safaricom in this blog. These guys were old boys from Stach. They shared some stuff with me. Some facts of life. Some things that I need to look at as a BUSINESSMAN… Not a coder.
One asked: “Name me one SERIOUS and HARD coder in Kenya, Salim.”, I named 6. Real hard-code jamaas who can develop ANY system, with or without coffee. “Good. Name me one rich Coder in Kenya, Salim”, Another one asked. I named a total of ZERO. And then I was enlightened. I was not annoyed. My balls are too round and full for that. I got humbled. And I listened. And I will share.
I am not going to follow my instincts and get balls-deep into blogging about the most insecure financial and stock websites in Kenya as at today morning. The fact that I can just walk into their networks (thanks to fibre), make coffee and walk out without being noticed is sickening enough. I don’t want to break some fragile IT ego/heart that I might need next week to approve my job deal. #HuyuNiYuleAlituHackLastMonth. I will just let one advertise on TV and radio thinking that a mere SSL certificate is enough to protect a website from a skilled hacker.
Sadly, the other thinks just having a logo saying they have SSL is enough. Hata billa an actual SSL. #MbwaKaliSignWhileAllWeHaveIsAPussyModel. (And the problems are deeper than this). All this, is in hoping Yuri, Miguel or Hyutaro don’t catch up with them, and show them what the fury of a real black-hat hacker is. Tick-tock, biatch. Tick-tock.
So, back to my story. Once upon a time, Safaricom was seen as the enemy of the local developers. None of our solutions were allowed to see the light of day, whereas they ran all the way to the South and pitifully tried to shove foreign products down our throats. Needless to say, they FAILED. Then came in a second era where only some companies got USSD access and the like.
For the record, I feel like a bitch when I use words like ‘some company’ etc, instead of hitting the nail on the head. But it seems, in this country, at least until ProjectX4 is done (delayed kiasi) it is only by being a bitch that one can get some jobs. So, there.
CCK and the rest were seen as setup to enable ONLY the rich become richer, due to expensive license fees and stringent measures in acquiring the license.
Then it slowly started to become clear. Safaricom was not the enemy. Nor the friend. MJ said it clearly : “Safaricom is not here to help ANYONE. We have no mandate to make your local software solutions big and profitable. We are here to make money. Simple As.”. Safaricom will not (and understandably so) get out of its way to make your solution the next Mxit/Facebook. The best model to use is the slut-mode model, where you partner with anyone from anywhere who has the BIG stuff, to MAKE MONEY. Fuck the rest. Fuck how you feel. Go home and cry to your mamma.
The reason Safaricom will put a full-page ad tomorrow in the Daily Nation telling people to watch Youtube videos and win a phone NOT because they don’t like Kenyan solutions. No because they are anti-sisi. It is because Youtube has the biggest. In the telco industry, SIZE matters.
The day Kenyans will stop uploading content on YouTube and develop a local one, the Safaricom, in slut-mode, will open her legs for that proposal. Understandable.
Alot of Kenyan products promise Safcom a laughable ARPU, that would come to maybe KSHS 10M per month revenue. Good stuff from the developer. I mean, even on 20% revenue share, you get a cool KSHS 2M per month. But Saf does NOT roll like that. Hawa-ravigi Twangas. They do uptown. That is not enough revenue to even pay for their 40-man innovative department. (heheheh.. Hawa siwaachi. Sijui what they do).
Hence, the oppressor tag labelled on Safaricom. Unjustly.
Hence the self-inflicted ‘oppressed’ tag by local developers. Stupidly. This is the Coder’s equivalent of ‘Tunaomba serikali itusaidie’.
Then comes the FREE
So, you read this and ask, “Salim, are we fucked?”. Well, yes. And No. Unless you style up, you are. If you do, you aren’t. Think. Generate 1MB per user per month. And Safaricom will fall over herself to talk to you. Without that, ni noma. Safaricom si mama yako.
What? You expect me to share more? The models? Here? On a public blog? Email me..
Kazi kwako.
Back to code…
Wazi.
The difference between a mere programmer and a coder
by Idd Salim on Nov.09, 2010, under Coding, Personal

A programmer mis-using the word 'code'
Leo I am on a positive note. Bwana Too and Don will be happy clients by the end of the day. Systems sasa zitaisha. I am cleaning my table and wiping my plates for the BIG meal about to be served.
Cometh my dis on programmers and kudos on the coders (the real coders), then cometh the question on my various input avenues (facebook, twitter, 2go, mxit, sms, zunguka and phonecalls). “Salim, what is the difference between a Coder and a Programmer?”, you ask.
Like you know, I don’t like beating around the bushes. Any kind of bushes. Actually, I don’t like them bushy. So, here cometh the answer:
Programming Languages:
Programmers use simple and easy-to-learn languages like PHP and VB. Most programmers will learn on-need-to-learn basis. When they need to perform a certain task, that is WHEN they learn how to do it, copy-paste code from the net, plug and pray.
Coders use functional and ‘geeky’ OO languages like Python, Lua, C++, Java, Lisp/Scheme or Erlang. Some use Perl and C. Most coders prefer to write their own code, algorithms, DB abstraction layers, custom widgets etc. Good coders write code. Smart ones copy-paste. (With strict emphasis to the DRY mantra and copy-pasting codes they UNDERSTAND, can adapt and actually debug).
Programming Methodologies
Programmers use the simple 2-tier-model. App and DB. Bora i can connect to a DB and list, add, delete and update data, najua that language. May a times, you will hear a programmer speak vile sacrilege like, ‘Najua C, C++, PHP, VB, Delphi.. but Java nimesahau kidogo…’
A coder will master ONE (Max 3) language and understand all the intricacies of the language. Top coders will involve approaches like ORM and MVC to make the code human-supportable. They are strictly OO. Never procedural. Hata kwa script ya 10 lines of code.
Databases Models
We all know Access, MySQL (especially after ORA) and SQL Server are easy to use and have tonnes of wizards. They make it easy to make apps, but do not conform to strict standards. A programmer would never know this. A MySQL-using programmer will be found using MySQL with ONLY myISAM and InnoDB tables.
Real coders use either a hand-compiled MySQL with variations of Memory, MyIsam, InnoDB based on application needs (fast search, storage, temporary storage) etc. When they decide to actually respect the client and the APP. They use PostgreSQL. Period.
DB Connection is always though an ORM or a very strict custom abstraction class. Not via end-user-facing code.
Systems Type
A programmer will always be heard talking about easy systems like basic networking systems, school systems, cyber cafe, payroll etc. Most find comfort in ‘developing solutions’ using CMSes like Drupal and Joomla.
Coders write Joomla and Drupal. They develop systems that challenge the human intelligence. Traffic systems, Natural language processors, logic based systems, marketing intelligence systems and stock market analysis systems. Basically, systems that programmers shun away from. Systems that ‘cannot be done’.
Coders are the ENGINE creators. Programmers are body parts assemblers.
Coders are the back-bone fixers. They manage the kidney and the liver. Programmers just make sure both nipples are of the same size.
Coders dig the foundation, mix the concrete and tar and lay the steel base of the highway. Programmers paint the road.
Case closed.
Back to code…
Wazi.
My Interview with Google
by Idd Salim on Aug.14, 2010, under Coding, Google and Africa, Personal
.gif)
Hello, we are Google! Who are you?
Well, blame my exclusive ownage of the words ‘idd salim‘ on google, my rich CV and list of systems done and out there, or just plainly the references I have, but a week after my 28th Birthday, google came calling…
Their main point of reference was my Xing Profile.
Alot of my facebook, gmail, symbiotic, redtape, Qz and PLG buddies have requested me to blog about the google Interview process. What they require. How to prepare.. yaddayadda.
I could not refuse. Who am I to refuse?
Their initial point of contact was an email below:
Hi Idd,
SRE are an elite group of circa 350 engineers in Google. This is obviously a very small group of the overall organization.
Technically this team consists of both Systems Admins and Software Developers.Sys Admins are expert Linux admins with kernel level hacking experience. They also tend to have exceptional scripting experience and some networking knowledge. Developer tend to come from a C++, Python, C or Java background with exceptional Design and algorithms and data structures experience.
The team has a large number of industry leaders and industry technical pioneers especially in the area of Linux and Python.
SRE work on all of the major internal and external Google systems. Gmail, Search, Maps, Earth etc etc
They are responsible for the Scalability, Reliability and Efficiency of all of the systems from both a software and hardware perspective.
This is not an operations team (we have one of them!) but rather an internal consultancy type group.The job specs are below:
http://www.google.ie/intl/en/jobs/dublin/swe/software-engineer-google-com-eu-headquarters/index.html
http://www.google.ie/intl/en/jobs/dublin/engops/opsit/unix-system-applications-administrator-google-com-eu-headquarters/index.html
We have these roles available in Dublin, London, Zurich, US and Sydney.
If you are interested, send me back your updated CV and we can arrange a time to discuss
Kind Regards,
I sent them my CV and then Google sent me a self-evaluation test:
Hi Idd,
Thanks for your reply and the updated Resume.
Can you complete the skills assessment below as accurately as possible and return it to me.
Self Evaluation Guide:
10 = you literally have written a book
7,8,9 = expert, go-to person on this technology
5,6 = solid daily working knowledge. Highly proficient.
3,4 = comfortable working with this, have to check manual on
some things.
1, 2 = have worked with it previously but either not much, or rusty
—————————————————————————TCP/IP Networking (OSI stack, DNS, etc.)( )
Unix/Linux System Administration tasks( )
Unix/Linux internals( )
Algorithms & Data Structures( )
SQL and / or Database administration( )
C( )
C++( )
Java( )
Perl( )
Shell Scripting (sh, bash, ksk, csh)( )
Python( )Whats days and times this week would be suitable for us to discuss.
I would like to call you and discuss your Resume, give you more information regarding the roles that we have available and also ask you a number of technical questions.Kind Regards,
I responded as honestly as I could. We set a date to a week later via email for a phone interview. So I spent a week brushing up on my skills on things like as Trees, Calculus I and II, Algebra V, Discreet maths, Big-O, Data Structures, Algorithms and the full unoma shebang.
And so, the big day came. Google was to call at 5pm. I was the young Salim again. I now could speak-out the code to do a heap-sort, merge-sort, Dijkstra’s Algorithm, TSP, Graphs etc, in C and Java.
At 5:07pm. Google Calls. The callers accent was somewhat faster than I could decipher, but after a verbal interview on what languages I know, about systems and databases, started. The following some of the few questions I can remember:
- How many bytes are there in a MAC Address?
- Explain the 3 way HTTP TCP handshake.
- Explain, in detail, the sticky bit flag on Unix directories.
Not surprisingly, this is all I can remember as I blog this. As I give them space to get back to me (not holding my breath of-course), the hassle continues.
Benefits from this exercise
After the Google contact forced be to revisit things that I had completely ignored or postponed like the books of Knuth, the Dijkstra’s algorithm, B+Trees… It made me a better optimizer. I now look at my YU and Orange projects with optimism as the systems will perform better. Ramadhan period locks me indoors and I can only improve.
Google job or no Google job, I am now a better coder, thanks to the contact.
Wazi, back to Dijkstra!
A tough decision, for a tough coder. Google comes calling!
by Idd Salim on Jul.23, 2010, under Google and Africa, Personal
Well, yesterday, as always, I was just hacking some network that a certain client had authorized me to do medium-risk penetration testing on and I got an SMS. ‘new email from google’.
Normally, I have configured my SMS deamons powered by www.tumasms.com to only alert me (via sms) on emails from Mike of Zim, Mbugua, Zunguka Home, Server FAM and Disk Monitors and My wifey (only if the email contains keywords like emergency, baby, hospital and sick). Of course, this list changes every week. But somehow, my metaheuristics code deemed the google email as *important*.
So I switched windows and read the email and BAM! It was an enquiry from google as to whether Idd Salim would be interested to work for them, giving me a choice of Dublin, London or Zurich as my residence.
The dilemma
Alot of my friends, ‘students’, mentors and twitter followers see me as a classic case of a hustler who hopefully can prove that a Kenyan Enterprenuer can come from NOTHING to SOMETHING via code. We don’t have the funding of the facebooks of this world, so our best brains always turn into code-for-food gurus who hustle to pay for server bills, rather that sit and code! Most ‘investors’ we meet are just talkers, jokers, greedy, vultures, old-school or a combination of the 5.
I always advice people on how they should never give up on their cause and that I will personally do my CSR to make sure their code is more profitable, e.g. via APIs like for TumaSMS and pay.Zunguka and advice.
“Google has big tits like Pam and as hot as Hale Berry. When she turns her head your side, you BETTER be ready to embrace the chance with open arms and open legs. This is a once in a lifetime chance.”, Said Jack, My Accountant. “Respond positively to Google’s email.” He said.
“You need to move a step up, Salim. At the current state, you are better off getting a serious permanent job because this Kenyan Hassle Bull*#@t has no fruits. You could have been VERY FAR right now were it not for this self-employment crap. It does not work in Kenya. Not unless the government does something to support the BEST coders. You have the brains, but as long as you have to worry about rent and milk every month, then you will not exploit your full potential!”, Adviced Buju, angrily.
I am confused.
Back to code!


