Friday, October 24, 2014

Hiring 2.1 - on-going rant

Just some last thoughts, then I am going to stop. Promise.

In my previous post, I highlighted that the main problem I have with the Hiring process is that it is too slow. Its almost designed to make sure that the company will frustrate candidates, and that the candidate that eventually made it through to the end of the process simply had no other alternatives.

The other issues are:
  • candidates only get to see the financials right at the end. You go through the whole process only to find out they cannot afford you.
  • working for a company is not a marriage. I've read too many posts that when people resign, the assumption is that they have somehow broken "the trust". Nonsense - working is purely a business agreement, with benefit to both sides. The company gets its work done, and the candidate gets a salary. If I were a millionaire, I would not be working.
I could not have said it better than Quora:
In most cases the mistake is the interview itself. In all its clever variations, the interview is a terrible way to determine if a candidate could be of value to a business.
I think it filters out good talent more than it finds. Human nature is to game the interviewee. Even very novel selection strategies by Fortune 500 companies are vigorously scrutinized by candidates in an effort to cheat them.
Take for example the infamous Stryker Gallup test and interview process. Check out this forum: gallup test - Stryker Jobs

Tuesday, October 21, 2014

Google: The Interview

****WARNING: The following post refers to anonymous persons and companies. We have changed the names to protect the innocent. Real names have been replaced with just random data*****

In Hiring 2.1 - the Agile Way, I said that interviews takes too long.

Google takes longer. I had 7 interviews over 5 months.

The timeline was something like this:

  • 2010: Applied for a Sales Engineer post when Google opened an office in SA
  • 24 February 2011: contacted by a Google HR person from London. I had to complete an evaluation form, where you rate yourself on programming languages, systems, experience in specific industried. In Google style, a rating of 10 applies only if you have written a book on that subject.
  • 2 March 2011: 30 minutes telephonic interview with HR person. He had a list of multiple choice questions. It included things like "what is the command to rename a file on Linux" and some other Java and TCP/IP questions
  • 9 March: 1 hour telephonic interview with a Technical Account Manager from the UK. This was a standard type of interview. Interesting questions were stuff like "what do you think of Android" and "what can Google do in Africa". I think one of the questions, either in this interview, or one of the other ones, was "what happens when I type a website name into the navigation bar and click enter" - this entails a talk about DNS, IP, HTTP, etc.
  • 26 May: four sets of interviews at the Google Johannesburg office. At the last minute, they asked me to do it over video conference from home, as their conferencing system was down. I used Google Talk (now Hangouts) with each of the interviewers, with video and Google Docs sharing.
The last part was interesting. I was interviewed by 4 people, one at a time, 45 mins each, over video conference:
  • Technical Account Manager) based in London
  • (Tech Lead Manager) based in London (Technical Interview)
  • (Sales Engineer/Technical Account Manager) based in London
  • (Business Development Manager) based in Lagos (HR/Client facing skills interview)

There were a few of the typical Google/Microsoft brain teasers:

  • How much will a Art Restorer earn - this went on for about 15 minutes
  • How much will Google pay Dell to pre-install the Google Toolbar on new Dell PCs - this went on for about 20 to 30 mins
  • What is the angle between the hour and minute hand at 3:15

The question where I really struggled was where I was asked to implement atoi (array to integer converter) in pseudo code. I had not coded for a few years, so this really threw me. I had to type the code in a shared Google Doc - he commented on the code as a struggled along.

This article talks about how Google have been proven the above questions to be a waste of time. 

Friday, September 12, 2014


I recently got a Raspberry Pi B+ for a small audio streaming project. The objective is to setup a audio streaming icecast source client (using darkice) that records to SD, using any network. User intervention not required other than plugging in power.

I ordered from and it got delivered two days later. A few other places I tried had run out of stock of the Model B, so I had to go with the B+. I have included the components that I bought at the bottom of this page, which in total came out to R1,233.48, which included R100 for delivery.
Separately, I bought a USB sound card and 4GB SD card from Matrix Warehouse for R50 each.

Summary of the steps I followed to do the setup:

  • Write raspbian.img to the SD card from Mac using
  • Plug in SD card and power. Figure out the DHCP address which the router assigned
  • setup darkice using and cron scripts (written by a friend)
  • Setup WiFi using
  • Plug in USB sound card - it just works

So when it boots up, darkice connects automatically, and it records to SD. It can use ethernet or WiFi; I know need to setup connecting using a 3G USB dongle.
Next step, figure out how to use the On/Off switch using

SKU: SC13456
1 xRaspberry Pi Power Supply - R89.00
SKU: PW03043
1 xPi Supply Switch – On/Off Power Switch for Raspberry Pi - R189.00
SKU: SC13460
1 xMiniature WiFi (802.11b/g/n) Module: For Raspberry Pi and more - R160.00

Thursday, August 07, 2014

Synergy between devices - without apps

WARNING: This is not for the fan boys.

tl;dr summary: just build it into the OS so that I don't need yet another app.

Operating Systems have always been fun. Its just the layer between between the user and hardware, but it makes all the difference. Somehow it can take the same hardware, after upgrading to a new version or even new OS, and make it much more functional. That same piece of hardware, be it a PC, laptop, phone or tablet, is now much more usefull. For the majority of users, who are unaware of the OS, they just buy devices based on vendor, price, and functionality - and I am OK with that. But I want to make a point so let me waffle a bit.

When I first started dabbling with PCs I had MS-DOS. I remember the excitement upgrading to MS-DOS 6.2, which had new features (its a long time ago, so this could be incorrect) like support for bigger RAM and HDD, HDD compression, and a whole bunch of other things. I even tried out IBM's version called PC-DOS, to try out their version of HDD compression to give you more space. Then Windows 95 came out and blue never looked better. But Windows has only had a few releases, so most users got used to the same functionality, even if they upgraded their hardware.

When I eventually started using Linux (Red Hat first), we got used to always upgrading to the latest applications, especially when using repo's like yum and apt. We also enjoyed reading flame wars about the difference between macro and micro kernels. When Ubuntu came out with their bi-annual release plan, we always had to look forward to two 'new' OSs per year.

By and large, the average user mostly used Windows. He did not even know it was an Operating System, he just knew it was 'part of the computer'. Its worth adding that there was some users who used Apple Mac products - but they were always a bit strange. And perhaps the same thing with feature phones: even though certain vendors (Nokia, Motorola, Samsung) used the same OS (Symbian), users just bought phones based on the vendor, and did not even know it ran the same OS.

Then things changed, just after Apple released the first iPhone in 2007. When Samsung and other vendors started making Android phones, then people started buying phones based on Operating System.  Now this seemed quite strange - why would a user choose an expensive piece of hardware based on the OS? The OS is just meant to be the layer on top of the hardware! Its a bunch of drivers and kernels and stuff.

But perhaps this is where the real fun, innovation and features lie. People choose a phone because it has more/better apps that run on it. The majority of people cant tinker and innovate on hardware, but every developer can innovate in the software space.

Things have matured a bit since then. For the most part, people know the difference between an iPhone and an Android. But with-in the Androids, people actually now think of buying a Samsung or an LG. They stop seeing the OS.

So where am I getting at? Finally the point! I think thats why I decided to buy a MacBook Pro for work use rather than a PC/Windows based laptop. OS X has some really awesome features, and a much more integrated environment. I know its the difference between owning the entire chain (like IOS) versus just the OS layer (like Android and Windows) which runs on any hardware. But still, it feels nicer when its all integrated. That is why I am quite excited about the new features of the soon-to-be released version of OS X 10.10.  It is very tightly integrated into the rest of the Apple eco-system. And this is the kicker for me:

You can now answer and make calls from OS X if your iPhone is connected to the same WiFi network. You can send SMS from the Mac, and transfer work between devices, and switch on the iPhone's Hotspot.

Now I know Android is tightly integrated into the Google eco-system, and thats what I love about it. Google Maps, Gmail, G+, all synced, history across devices all synced. Brilliant.  (I'm an Android user since 2008 using a G1, if you want to check my cred). But to enable Android to share links with your PC using Chrome, you have to install Google Chrome to Phone on both PC and Android. I know there are other apps to allow the PC to control and Android, and even to send SMS and make calls from the PC. But they all require separate apps. And maybe thats my point - they should be part of the stock-standard OS.

But I doubt I will get an iPhone. For one,  I cant afford an expensive phone - thats why I use a budget phone.  And I need widgets.

Sunday, June 08, 2014

Essential reads for Corporate IT

It's Saturday evening and I was sorting out a few files on my drive. Who am I kidding I wasn't sorting out a damn thing - I was deleting as much junk as I could for an install of Deus Ex - Human Revolution, a game I purchased ages ago but only got to playing well... I haven't started the install yet... but this is why.

I found my copy of Scott Berkun's Making Things Happen. I bought this in 2009, and while the cover says that it's a "project management" book, It's actually the corporate IT equivalent of the Cormen bible or TCP/IP Volume I and II that we had in varsity.

Aside:  You know you're in Corporate IT when your job title has the word Analyst, Architect, System, Design, Lead, Project or Programme, or (!!!1) Manager...

On a yearly basis, I find myself finding it, opening up to the table of contents, and finding a topic that's relevant to me at the moment.  Last night I found a great chapter on Politics and Power (Chapter 16). We've all had awesome initiatives that we're working on that gets no traction because the company simply hasn't prioritised it across departments or (we would like to think) some evil exec in his lair is poisoning the minds of every one of his subordinates. What's great about Scott is that he's not that dramatic and provides  a great view of the complexity of relationships. There's always a good reason, and there's more than one way to get it done.

So buy the book :)

Other notable mentions :

Peopleware by Demarco and Lister

Template Zombies and Adrenaline Junkies  with Demarco and Lister

Tuesday, March 25, 2014

How do I right click?

Last year June I boldly claimed that I was thinking of getting a Macbook as my next laptop. It took me quite some time to figure out what I wanted. I have been using a Dell XPS 13'', which is a nifty, good looking machine that performs very well. But it still Windows. And Ubuntu is not quite there yet as a full time desktop OS.

I considered a few Apple options:

  • 27'' iMac: I would have chosen this one, if not for the lack of a decent backup laptop, which would mean I lost all portability. 90% of the time I am at my desk, so this would have been ideal, as supposed to using a laptop with a large external screen
  • MacBook Air: The entry price is quite good, but the specs are too low. If you bump the specs up to the maximum, then the cost of drastically prohibitive. I suppose such a small light body comes at a cost.
  • Various MacBook Pros - 13'' and 15''. The late 2013 refresh models are quite good, but the Retina screens come at a cost. There are quite a few different options to consider when ordering: RAM, SSD or HDD size, CPU size - i7, Dual or Quad core.
In the end, I chose a MacBook Pro 13'' with the following specs: 
  • 13.3 inch
  • 2.8 GHz i7 Dual Core
  • 8GB RAM
  • 256GB SSD
Even though I only got it this morning, in hind-sight I should have gotten 16GB RAM, even by downscaling the CPU a bit.

The comparative Dell XPS 13'' or even 15'' would have been cheaper, although I did not look at the touch screen versions.

This is a very neat machine, and my first Apple product. I think its the small touches that Apple pay attention to that win people over. Some things are over done though:
  • The clunky charger - c'mon, Chromebooks use USB now to charge
  • The aluminium body - the Dell XPSs have a plastic body which is perfect. I have seen a guy that has a dent in his MacBook's body simply because he held it too tight.
Multiple desktops have been setup, Hot Corners as where is that right click?