Friday, November 25, 2011

#19, An Interview at ThoughtWorks - Experience to share

One of my colleagues mentioned about the “very different” recruitment process at ThoughtWorks. Something about writing code initially and further process based on modifications on the initial code. Well, that intrigued me! I’ve always wanted to be part of such innovative organizations. Hence, I took my first step of applying for the post Application Developer at their website.

As immediately as within two days, I get a call from HR at TW. Very pleasing gentleman, the call was pretty routine. From projects executed to my favourite pastimes, he inquired all. There was even a question on some of the awards I received. This went on for a while, and the HR on his part briefed about the recruitment process at TW. I vaguely had an idea, but I preferred to let him explain in detail. So here they were:

1. Logic Analytical thinking

2. Coding round for a problem provided

3. Pair Programming/Extension

4. Interview I

5. Interview II

Fine! I was very eager to start with the process. I was asked to drop in at their office* at a day of my comfort.

The first was the Logic test. I was given 11 flowchart problems. It was pretty simple but required intense concentration. I had to go back few questions once I completed all 11, just to see I’ve made mistakes. But I believe, when I handed over the booklet, I got most of it right. The HR dropped in 10 minutes later informing the candidates who cleared this round. (There were more than a dozen who were part of the process) Those who didn’t clear were asked to leave, of course courteously.

We met around for the Coding round, after a sumptuous lunch – courtesy TW. I was offered two choices – A game of life problem, a Sales Tax Problem (Feel free to Google, the Internet is full of them) I picked Sales Tax Problem, for one simple reason – It was more practical. I had been reading up about Calisthenics, Design Patterns and OODP. Hence, I perfected my code with as much good design as possible.

I left home after this exercise. The immediate next weekday, I get a response from the HR that I’ve been selected to go through to the next round. And my next visit to TW office was fixed.

The third part of the process – Pair Programming session. One of a seasoned ThoughtWorker met me with his laptop. We started with explaining my code, the philosophy of my design, etc… He asked me a few questions/doubts, few – Why this way and Why not the other way. Since we spent a lot of time on this, he chose to discount me of the huge extension to the code that was planned.

We chose a small extension. He left the floor to me, so that I can start designing the extension. I took the white-board and illustrated the new classes/behaviours that needed to be added. Then took to the laptop and started coding. The behaviour was simply to say True or False based on the condition if the string conforms to few conditions. To clear out my mind, I went ahead with pseudo code form of the logic. The code executed fine. He pointed out that I can be simplified using Regular Expressions, which I too realized but confessed that since I couldn’t recollect the expression type I didn’t venture into that. He confessed to the same, but since this was just an exercise we completed with a simple regular expression. He left the room, after a customary QA session with me.

Few minutes later, the HR came in. Briefed me that, although my design and analytical thinking was pretty good – my language skills (Not English, but C#) was not at par with my total experience. And I needed to focus on improving the language skills by more self-interest projects, etc… I politely agreed. And the HR walked me out of the office.

Overall the whole process was a great learning experience. I completed a record 5 design patterns in less than two weeks. And now I have a sense of direction as to what I should aspire for in my coding skills. Not to mention, I’d try to get back to TW after 6 month stipulated break.

*Office – Being at an organization which looks like a whole city, TW office seemed petite and cute. But what struck my notice where – Cubicle-less rooms (only the HR had cubicles) , Casual dress-code on a weekday and surprisingly no desktops.

Monday, November 21, 2011

#18, 2 is to 5

Why does it have to be only two days for every five days? I really fail to see the design goals for that!

Two for five, roughly works out to 28 per cent. It’s okay, but not nearly enough. What am I talking about? I’m talking about the Weekend to Weekday ration!

May be that’s the thrill you get from entrepreneurship. You get to fix that per cent. May be you go ahead and toil that 100 per cent or all 7 days. Yet, you enjoy it. You devour each moment of engineering and management. Something you get only when you do something purely from your spirit and interests.

Tuesday, November 1, 2011

#17, The last drop

Hardly have I ever noticed how to predict the uninterrupted duration of my stay near my computer. Be it at work or at home, my extended stay near the computer machine can only be disrupted by one thing. The supply of drinking water (besides the unpredictable power supply)!

Even when my tummy noise grows in decibels, only the sweet can of water can quench both the thirst and the hunger. When I noticed, the amount of water in each sip is very proportional to the total quantity of water I had with me. The more I had, the more generous was each sip. And the less I had, enough each sip were just to quench the thirst.

And when the last drop runs out, I can hold my thirst/hunger only for few seconds more. I had to leave for more water. This routine was very inconspicuous, only till when I gave it a thought.

How thankful I am, to get that water nearby!