Sunday, March 8, 2009

My experience with IT industry

 Well, I’m wondering how a lazy person like me would ever have stepped into this sort of a venture of writing his biographical account pertaining to the IT industry.

I started my career in a small sized company called Alumnus Software Ltd., which at that point of time was going through turmoil due to legal complications against a US company whom it provided service to.  Many employees had left the company within a couple of months and the strength was reduced to less than a half of what it used to be. So, it was both a good and a bad situation for a fresher like me because on one hand it gives you the opportunity to prove your abilities in a small team whereas on the other hand it puts tremendous stress and stretches you to your limits which a fresher like me often succumbs to. At this point of a time, a company can’t afford to be choosy in the projects it wants to undertake and often lands up in outsourced service jobs involving not too much of technical expertise. I got assigned in a project which involved writing protocol performance test suites based on given scenarios. The client was Agilent Technologies, the leader in development of protocol test suites. The work essentially comprised of writing Tcl/Tk scripts and was not in any remote way related to a solid understanding of the protocols. Only a little tit-bit of knowledge would suffice. I had to put up with this torturous job for an entire year before I decided to get a move on and got an offer from Motorola. But silly as it might seem, because of my home-sickness couldn’t cling on to the job and returned to Alumnus, but this time got a better opportunity, (actually demanded it from my manager), to work on a streamer enhancement project which provided me the opportunity to delve into a open source C++ code and seemed to satisfy my intellectual hunger to a sufficient degree. I got the taste of first failure when I got an opportunity to work on a telecomm billing project as a module leader. The design, as provided by our client (and we were instructed to follow their design plan) was pathetic to say the least and our team members were not that experienced and skilful to deal with such a situation. With my limited experience I couldn’t foresee the problems with the existing design and cared very little about scalability of the implementation. This failure prompted Probal Sir (the VP Engineering of our company) to almost single handedly manage, design and implement the next telecomm project which involved development of a spam filter and providing a web based GUI interface for its configuration and maintenance. I learnt a lot from this project which was very wide in scope. Now, I’m working in Synopsys which is the leading provider of EDA tools. I’m into R&D of the Synplicity Business Group of the company and am responsible for the Xilinx mapper development. I’ve come to realize that working in a product company is a much better option as compared to working for a company which provides service to others, both in terms of quality of work and freedom of an individual. In a product company, you can be more strategic in planning your action items and since you get more time to implement, you can spend the extra bit into making an efficient and scalable implementation devising appropriate data-structures and algorithms pertaining to the problem at hand.

With this little experience in the IT industry, I’ve developed a few good notions as well a few bad ones about the industry. The first good thing is that this industry is result driven and you can’t make your living developing a complex theoretical idea which nobody in the world except you would be able to understand. You have to deliver working implementations of your ideas and this in itself can pose surmountable challenges. Moreover time criticality and input data explosion of products makes it a challenge for the developers to come up with a combination of efficient data-structures and algorithms to meet the demanding needs of a usable product. I think the bad ones are mostly applicable to the service provider companies providing services to banks and other financial organizations. Well, you can’t expect too much (if any) technical know-how from these companies often leading to incomplete product description. Often they are not sure of what they actually want and end up in infinitude of change requests making life extremely difficult for the developers. The work itself can be said to be not too challenging if not clerical. Moreover they impose impractical and unrealizable deadlines. But who cares? They are paying the money (read dollars). Isn’t it? So, we as citizens of a third world country have no other option but to conform to their idiosyncrasies just like our forefathers have done working for the British Government during their rule in India.