0-cosmos
1 Oct, 2008
The Game of Business
Posted by Bhavin Turakhia | (3) Comments
I delivered a presentation titled the Game of Business at the Proto.in conference in 2008 and subsequently at IIT Kanpur’s Megabucks event.
Visit our wiki at http://wiki.directi.com/x/BwCK to view the video of this presentation and download the slides. At Directi, we believe that Business is like a game. This presentation covers principles that embrace this philosophy and that continue to be instrumental to the success of Directi.
I finally managed to obtain a copy of the video of the presentation and hence am posting this entry quite late. I believe this is by far one of the best presentations I have delivered in terms of value and the importance I personally attribute of the concepts I expound in the presentation to the success of our company.
Comments / feedback are solicited and welcome ![]()
11 Sep, 2008
Availability of Developers by City (Mumbai, Bangalore, Delhi etc) and Technology (Java, C++, C#, AIR, WPF etc)
Posted by Bhavin Turakhia | (11) Comments
An alltime favorite question amongst journalists who interview me as a “young entrepreneur” has been - “Tell us about some of the challenges you faced while growing Directi?” and my patent answer has always been that the only challenge we have faced and continue to face is finding good talent. In our bid for finding talent we are now expanding into other cities over the next few months.
In order to determine tech labor availability across the common metro cities in India I compiled a statistical comparison of the count of resumes available on common jobsites for common software development skillsets in the various cities in India, and the findings are very interesting. This blog post compiles these findings. If you are a tech company in India - these findings can help you make technology decisions concerning city selection and platform selection.
The findings
Below are findings from the comparison of the count of resumes of software developers with 0-4 yrs of experience from various cities in India as compiled from a jobsite -
1. Findings by City
- Bangalore has 2.5 times the number of Java resumes of Mumbai
- In terms of total resumes from each city the ranking is in the following order - Bangalore, Hyderabad, NCR, Chennai, Delhi, Pune, and lastly Mumbai
- As an example, here is the citywise count of Resumes that contained the keyword Java
- Bangalore - 123,205
- Hyderabad- 114,561
- NCR - 85,347
- Chennai - 82459
- Pune - 54,086
- Delhi - 53,256
- Mumbai - 43,672
- Every city in India has more available developers than Mumbai with the South taking the lead
- NCR has almost twice the number of developers as Delhi
2. Findings by Technology
- The total count of Resumes of developers with 0-4 yrs experience that contain the below keywords across all 7 cities was -
- C++ - 635,575
- Java - 556,586
- C# - 190,872
- Javascript - 162,343
- Ajax - 41,219
- Flex - 8,668
- Python - 3,429
- Ruby - 2,099
- WPF - 779
- Silverlight - 255
- As you can see Java and C++ are the predominant keywords in Software Developer Resumes
- Flex beats Python and Ruby
- Ajax and Javascript beat Flex/WPF/Silverlight by several magnitudes as keywords appearing in resumes
The results above remain similar in terms of ratio, for Resumes with 4+ yrs of experience.
Click here to download the raw excel sheets for all cities and technologies >>
The methodology
I had my team conduct independent searches for each permutation and combination of the following -
- Keywords - Java, C#, C++, Javascript, Flex, Silverlight, WPF, Ajax, Actionscript, Ruby, Python
- Cities - Mumbai, Pune, Bangalore, Delhi, NCR (Noida/Gurgaon), Chennai, Hyderabad
- Experience - 0 to 4 yrs , 4+ yrs
- Function - Software Development (or equivalent)
- Jobsites - Naukri, Timejobs, Monster
- Date - 3rd June 2008
The above totals upto a whopping 462 searches :). I then tabulated the count of Resumes for each search and put it in multiple excel spreadsheets. You can download the spreadsheets to crunch the numbers yourself.
Based on the above data, Directi and .pw clearly need a presence in the south. The data also demonstrates the lack of penetration of RIA, especially Flex/Silverlight/AIR/WPF, amongst Indian developers.
Hopefully this data can help others make similar decisions. Meanwhile lookout Bangalore/NCR - we are in the process of making an appearance shortly
PS: Interested in joining Directi? - check our openings at http://careers.directi.com
4 Sep, 2008
Ethics in journalism and the Metcalfe law
Posted by Bhavin Turakhia | (2) Comments
I, alongwith my team, have spent the last two full days in fire-fighting, false and inaccurate, libelous and defamatory claims against Directi by a certain Garth Bruen at Knujon and Jart Armin and James Mcquad at Hostexploit, compounded multifold thanks to the Network effect of the Internet.
For the full story check out our post on the Directi blog - Our official response to inaccurate reports which falsely implicate the Directi Group
In short, Knujon and HostExploit published two independent online reports incorrectly linking Directi to certain miscreants responsible for fraudulent activities on the Internet. Their research was entirely flawed and their reports filled with factual inaccuracies.
Within record time, these posts were picked up by over 15 other news sites and reported as if accurate with additional conclusions left to the imagination of the respective journalists. What shocked me personally is neither the original posters (Garth / Jart / James) nor any of the journalists responsible for the follow-up aftermath extended a basic common courtesy of contacting us for comments, let alone for validating any of the claims. The whole episode has caused considerable irreversible damage to our reputation, ended up wasting significant resources within our organization, and left several misconceptions in the minds of thousands of readers worldwide concerning abuse on the Internet.
Journalism has existed way before the Internet, and a common ethical code of responsible reporting is assumed in this profession. With the Internet however the responsibility is significantly compounded, given the fact that any published story is now re-published multiple times, blogged about, indexed, archived, forwarded, shared, favorited, bookmarked, dugg, twitterred within moments of publication, repeatedly, by netizens worldwide, and all this information continues to exist in the cyberspace, google cache, browser cache, proxies, web archives, offline stores and many other sources - ad infinitum.
Anyone making any public claims / statements on the Internet now has significant power, and, in the words of Peter Parker - “With great power comes great responsibility”. I can only hope that the various reporters / news agencies who we have been in touch with, learn from this experience, and do not, in their haste to churn out the next sensational news story, ignore the fundamental tenets of responsible and ethical reporting.
31 Aug, 2008
A modified Nonce implementation
Posted by Bhavin Turakhia | (7) Comments
Nonce refers to random single-use (hence the name) tokens used to hash information before sending it from a client to a server to avoid having to send sensitive data in cleartext. It is typically used to send authentication information such as passwords over HTTP. In this post I describe a slightly modified implementation of using nonce.
Our goal is to make an authenticated call from the client to the server. This requires the call to contain username and password information. We wish to avoid the overhead associated with HTTPS and at the same time, ensure that the password is not sent in cleartext.
Algorithm
- Client requests the server for a nonce token and the current time of the server
- Server generates a random nonce token (servertoken) - numerical or alphanumerical and returns the same to the client with its currenttime (servercurrenttime)
- Client creates a hash of servertoken + password + servercurrenttime
- Client sends servertoken, servercurrenttime, hash to the server
- Server checks if its system time is within a 10 second range of the servercurrenttime it received. Server may need to take into account timezone differences between the client and server locations
- Server then runs the same hash algorithm using the password it has in its store, and the servertoken and servercurrenttime received from the client
- If the hash matches the hash received from the client, then the call is permitted
The above process ensures the following -
- The password is not sent in cleartext
- Anyone intercepting the communication can get the following - clienttoken, servertoken, hash. However they cannot obtain the password. Nor can they use the hash to repeat the same call after the expiry of the 10 second window. The window maybe suitably adjusted.
In another implementation the random token can be generated by the client instead of the server. The server only provides the servercurrenttime.
In another implementation the server can store the servertoken in a cache with a 10 second expiry. When the client sends the hash, the server checks if the servertoken exists. This would eliminate the need for using servercurrenttime. The servertokens could be stored in a simple memcache server.
Care should be taken that the hashing algorithm generates significantly distinct hash values for minor modifications in the token / password / currenttime.
It maybe argued that the random token is not required and that the currenttime is sufficient by itself to generate a hash. However a random salt appended with currenttime is likely more secure since it adds an element of randomness.
15 Jul, 2008
Just Do It
Posted by Bhavin Turakhia | (4) Comments
No. This is not some Nike Propaganda
Last night I saw a show - “The New Inventor” on the Australia Network channel, a channel that in the past I have only flipped through en route from “Star World” to “AXN”. One of the inventors being profiled on the show made a statement, one that I have heard in the past, but one so profound that it deserves its own blog post.
I paraphrase his statement below -
When you have an idea or a vision, it can have three possible outcomes -
- You give it all you’ve got and you suceed
- or, You give it all you’ve got and fail
- or, You ignore it and spend a lifetime wondering “What If?” !!!
The first outcome is the happy path. The second outcome involves a temporary downside accompanied by lessons that will serve you for a lifetime. The last outcome involves a lifetime of doubt.
26 May, 2008
AIR vs WPF: Show me the money!!
Posted by Bhavin Turakhia | (2) Comments
I was thinking about AIR vs WPF (or Flex vs Silverlight) from another perspective today. If I wear the Adobe hat and Microsoft hat, I have to ask where is the $$$ in all of this (for Adobe and Msft).
Well firstly, both Msft and Adobe are selling the IDEs (or as they call them XXX Development Studio). But seriously - selling IDEs cant be big business.
Another revenue stream could be licensing the runtime specification for others to build their own runtimes (JDK style). While I may be totally ignorant about this - I don’t think either Msft or Adobe is doing much of this as of today. Some of the specification seems open and free. There is potential to begin licensing the runtime specs for non-PC devices such as mobile phones and set top boxes etc. However, given the competition, runtimes will likely be free for all devices and vendors (in this case Adobe / Msft) will likely go out of their way to have device vendors bundle their respective runtimes.
One more revenue stream would be self-created applications. This is much like Microsoft’s strategy with MS Office which has always been their cash-cow due to the platform ubiquity of Windows. Adobe is building a slew of their own products around Flex and AIR, and an increased adoption of their platform can result in additional revenue from their own applications. Offcourse this is always a sensitive area, since by building these applications they compete with the very app developers they want to attract to the platform. However Adobe has an advantage over Msft in this area due to the platform neutrality of AIR/Flex. Any app built by them is more attractive to an enterprise which has a heterogenous Operating System environment within the enterprise.
This brings me to the last potential revenue stream - an indirect revenue stream through propagation of the platform. Something that Msft has been very good at in the past. They made their fortunes due to the plethora of applications built in VB / VC in the good old days. The more apps that got built the more copies of Windows (and as a result Office) were sold. Here Msft has a distinct advantage. Every WPF adopter creates an additional boost in sales of Windows licenses. Unless I am missing something Adobe has no such incentive.
This indirect revenue stream appears to be significantly larger in scope than selling the IDE or licensing revenues or currently even their respective home-grown apps. If that is the case, then Microsoft has significantly more to gain by becoming a RIA standard as oposed to Adobe. This would in turn mean that Microsoft can afford to invest significantly more resources and $$s in the development of RIA as opposed to Adobe. Greater investment *may* mean more features, greater adoption and eventually platform dominance.
The one way I see for Adobe to counter this is to open up the platform and have the IBMs, Google’s, Yahoo’s, Sun’s of the world involved in AIR/Flex direction and development. This strategy has been very successful with Java on the server side (though I am sure Sun would have liked to get a greater piece of the action than it has) and if AIR/Flex is to become a default option for desktops/RIA, partnership with the rest of the industry will create the momentum it needs.
12 May, 2008
Things I wish AIR and WPF had
Posted by Bhavin Turakhia | (7) Comments
This makes a great follow-up to my last post on the Paradox of Choice. Life would be simpler with a single platform :). Before I start a flame war on that subject let me quickly turn your attention to the real topic of this post. I have been grappling with deciding between AIR and WPF for internal application development and in all honesty, I’d like to have them both. Here are my short list of gripes (or on a more positive note, my wishlist for AIR and WPF)
Missing in AIR
- Advanced socket manipulation functionality (ability to create UDP sockets, NIO etc)
- Talk to any RDBMS
- Multi-threading
- Decent server socket libraries for building server applications (yes I know AIR is a desktop client platform, but given the Web 2.0 world, the line between a client and a server is beginning to blur considerably)
- Accessing global keyboard shortcuts
- Accessing native libraries (the kind that I get with XPCOM on XUL)
- Ability to instantiate external applications
- Greater control on the installer and installation process
Missing in WPF
- Write once, run anywhere ie the ability to run on Mac/Linux (I have already confessed that this is a wish list)
- A full-fledged HTML rendering engine (as opposed to having to instantiate an IE control with limited flexibility)
Hopefully folks at Msft and Adobe are listening
5 May, 2008
The Paradox of choice
Posted by Bhavin Turakhia | (0) Comments
I just saw a profound video (a TED Talk) by Barry Schwartz on The Paradox of Choice. Barry is an author of a book by the same name. The video is short and covers basic logical reasoning on how more choice can actually be detrimental to our welfare. His arguments are mostly compelling (with a few areas I may not necessarily agree with). The macro fundamentals however are something I can relate to.
As a part of running Directi, I have learnt this paradox the hard way. While there exist several anecdotes, one that comes to mind is ResellerClub’s (one of our many businesses) our strategy of selling hosting packages. I remember not too long ago, when Rclub used to offer a complicated configurator for purchasing hosting packages. While other companies had a set of fixed packages, we offered our customers the ability to choose each parameter on their own. One could select the exact amount of disk space, email accounts, bandwidth, number of databases, database space and so on. If memory serves me right each parameter had between 2 to 15 combinations totalling up to possibly well over half a million combinations.
RClub has since sacrificed that system in favor of a simpler set of 4 packages, but not until we went through some of the thought process expounded by Barry in his talk.In summary, excessive choice can -
- Overwhelm a consumer
- Confuse a consumer - especially in a scenario where the customer does not know all the variables
- cause Paralysis - inability to decide which way to go
- result in Procrastination - where one chooses to postponing the choice due to their inability to make one
- manifest Regret - should I have picked the other one?
5 Jan, 2008
Directi wins the Times Ascent Pinkslip award
Posted by Bhavin Turakhia | (0) Comments
Directi won the ‘PinkSlip Choice’ Award for the “most innovative recruitment advertisement”. The ad was our third recruitment ad for Times Ascent.
Spearheaded and executed by our in-house marketing and design team, the ad reflects one of our fundamental principles - which is - “We like to stand out in everything we do”. At Directi creativity is expected in every task. Directi is the only company so far (I think) that has won this award without outsourcing the ad to an Advertising agency.
26 Nov, 2007
Lucky 13: Our rank in the Deloitte and Touche Fast 50 list
Posted by Bhavin Turakhia | (6) Comments
Directi was ranked in the Deloitte and Touche Technology Fast 50 list for the 3rd consecutive year (2006-2007). This time we improved upon last year, garnering 13th position (as compared to 17th last year) with a compounded annual growth rate of 547%. The title is somewhat of a misnomer given that luck had nothing to do with this. Credit goes to the relentless effort of our amazing team.
Directi was the only company in the Top 15 to have won this award 3 years in a row, a commendable feat, considering that each year becomes the baseline for the next year.

(Divyank collecting the award - Looking smart as ever
)
As I always say … this is just the beginning, and there are many more to come ![]()


