Sometimes computer science, information technology or electronics and communications engineering students get placed in two or three major Indian IT companies and they find it hard to decide which one to join. "Infosys, TCS or Wipro?" is one of the most common questions I have faced from such students. The answer I have for them is much simpler than they think it is. My answer is,

"None."

Before elaborating my answer further, I should first clarify what this post is not. This blog post is not about how these companies put food on the table for hundreds of thousands of engineers. This post is not about undermining the efforts of these companies. They are probably good at keeping their customers happy. This post does not intend to offend the employees of these organisations although that is going to be hard to avoid due to the nature of this post.

This blog post is about a choice that fresh engineering graduates usually have to make and the information they should have before they make that choice. This post is about urging these students who want to make a career in engineering to avoid making a mistake that I did because I did not have the necessary information at the right time; a mistake that I corrected two years later after I realised it. This blog post is about some very unpleasant facts about these major Indian IT companies that you wouldn't know unless you have been a part of it.

Note: If you do not share the interest in pursuing excellence in engineering or if you find contentment in working for one of these three companies for reasons that are valid to you, this post may not resonate with you. You may want to discontinue reading this post here.

Let me now dispel the different myths that exist about these organisations one by one. I am not going to mince words while I do this.

1. Training: People think that these organisations are good for new engineering graduates because they receive a lot of training which they wouldn't get in other organisations. I must remind such people that attending training programs does not necessarily amount to learning. Indeed these organisations provide a lot of training but only about 1% of the trainees actually absorb the knowledge. The 1% that do absorb the training do not stick to the organisation for a long time because sooner or later they realise that they want to do some real engineering work. The figure "1%" is not merely a guess. This is my observation across various trainee-batches that have been trained in one of these organisations. Think about it. Can you learn a new programming language in just 3 days? However, that is the kind of training these organisations provide.

2. Engineering: One can find engineering problems in these organisations but no trace of engineering. For those of you who work in one of these organisations and are offended by this claim of mine, please revisit your engineering textbooks again. Try to remind yourself what you studied then. Consider what you do now.

3. Engineers: The number of engineers in these organisations are very very few; perhaps only 1 in every 200 is an engineer. This is a guess, albeit not a wild one. This is why there is no engineering in these companies despite the presence of engineering problems. "But isn't a degree in engineering the minimum qualification to get a job in one of these organisations?", you might ask. It is. Yes, all of them have a degree in engineering but only about 1 out of 200 is an engineer. The rest 199 do not understand why the bitwise operation `bitcount(not (x xor y))` counts the number of bits in `x` and `y` that match in their corresponding positions, why one cannot write a POSIX Basic Regular Expression (BRE) to match only strings with arbitrary number of balanced parentheses or how to find the shortest chain of connections between two friends in a social network. Note that I have used "or" as the conjunction, not "and", in the previous sentence. They may be good software users or good "software-tailors" who can create software by stitching together many library functions but I wouldn't call them engineers.

4. Culture: These organisations have one of the worst kinds of culture you can find in the whole of software industry. Very few engineers are busy trying to advance their engineering knowledge. Many employees use the company resources such as corporate blog, bulletin boards, etc. to flirt with their female colleagues. Others are busy cribbing. For those who have never worked for one of these organisations, it may come as a surprise that the corporate forums occasionally witness unprofessional behavior, including mud-slinging.

5. Onsite: Contrary to the popular belief, the number of trips overseas is not a measure of one's technical prowess. The so-called "onsite visits" are usually driven by project requirements. As a result, they often depend on luck. The work done during onsite visits can range from technical support to firefighting. In fact, some of the smartest engineers I met in these organisations were reluctant to go for onsite trips due to the dull and stressful nature of the work involved. Most of them left these organisations, joined better organisations where they could put their knowledge and skills to better use and then moved overseas to work on good problems where their knowledge and technical skills were actually required.

Therefore, my answer to the question "Infosys, TCS or Wipro?" is "None." That's not a very helpful answer. Here is a more helpful one. One can consider applying for a job in an organisation where they can get an opportunity to solve some engineering problems. One cannot learn engineering and programming merely by attending trainings. One has to learn it by doing, solving problems, observing what experienced engineers do, experimenting, screwing up a few times, reworking, talking to good engineers, etc. One can try looking for an organisation where the leaders of projects are very good engineers. Startups are more likely to have them. Some matured ones are Gluster, Parallocity, SlideShare, etc. New startups come up every year. Software companies which develop famous and successful products are more likely to have them. Some good examples are Adobe, Amazon, Google, Phoenix, RSA, etc. How does one figure whether a certain organisation is an organisation of engineers?

The clue is: Interview.

Remember the technical problems they discuss in the interview. Think about them later. Try discussing them with your friends who are known for solving good engineering problems. An interview is not only an opportunity for an organisation to evaluate an applicant, it is also an opportunity for the applicant to evaluate an organisation.

Update on 28 Oct 2011: This post got way more attention than I had anticipated. It was discussed and debated here in the comments section as well as on Hacker News and Reddit. Here is a follow-up post that addresses some of the points discussed in these debates: Re: Infosys, TCS or Wipro?.

Update on 19 May 2021: It has been 10 years since this post was published. I still occasionally get messages from students and professionals who are early in their career that this post has had a positive impact on their careers. I am grateful for the positive feedback and the enduring usefulness of this post.

That said, I don't actively engage in discussions about this particular post anymore. I wrote this post back when I felt strongly about the problems in the culture I was talking about here. My intention was to share my experiences and concerns, serving as a cautionary tale for others. Since then, I've distanced myself from that culture and don't think about it anymore. Further, the profession of software engineering has evolved a lot since then. The widespread availability and utilisation of open source packages in the technology industry have rendered certain engineering skills, once crucial, considerably less relevant in the present day. The specific recommendations I offered towards the end of the post may be outdated too.

While I am glad this post has continued to resonate with some readers over the years, I invite you to explore my more recent posts on topics that I enjoy talking about today. To find them, navigate to the links page which highlights various sections of my website with newer content.