The 'Infosys, TCS, or Wipro?' post is doing the rounds again and some hatred as well as love is arriving on my email.

I can understand when someone dislikes the way I have expressed the whole matter in that blog post. But I fail to understand the motivation behind any employee of these organizations trying to justify that working there is almost as good as working for a company where you can work with a team of very talented engineers. There have been plenty of arguments on the web. I'll discuss some of the points made in the arguments.

  1. India needs IT services companies
  2. Business problems vs. engineering problems
  3. Business problems and engineering problems
  4. Engineering in Adobe, Amazon, Google, etc.
  5. Passionate people can do engineering anywhere
  6. But everyone cannot join Adobe, Amazon, Google, etc.
  7. Infosys, TCS and Wipro have good engineers
  8. Training
  9. Meritocracy
  10. Leaving Infosys, TCS, or Wipro
  11. Solving algorithm problems vs. editing configuration
  1. India needs IT services companies: The most popular argument by Indians has been that India needs IT services companies because they make a lot of money and boost India's economy. I don't understand why anyone would attack my post with this point when I have never said anything to the contrary. In fact, I agree with this point. Therefore this argument is nothing more than a strawman. However, in my opinion, students who have learnt their engineering well during the course, and now want to improve their engineering skills during work shouldn't work for one of these companies. They should join a start-up or a company known for hiring skilled engineers.
  2. Business problems vs. engineering problems: Another popular argument has been that a software company is not a place to showcase your engineering talent. Many argue that it is a place to solve business problems, not engineering problems. I disagree with this very firmly. Business problems and engineering problems are not mutually exclusive. The reason why many employees of these companies feel that solving a business problem wouldn't involve an engineering problem is that they are not technically sound enough to even realize whether a particular problem needs to be solved with some concept they learnt in their engineering course. I've said this before and I'll say it again. Engineering problems are there in every software company. It needs the mind of an engineer to identify those problems and solve them correctly. Not all string parsing problems should be solved with a chain of string library functions stitched together. Some string processing and parsing work can be done more efficiently and reliably by coding a simple DFA. Not all data should be stored as records in an array. Some need to be stored as graphs. Knowing regular expressions can be dangerous if one doesn't know what kind of patterns they cannot express.
  3. Business problems & engineering problems: If you want to solve business problems and keep your customers happy, Infosys, TCS, or Wipro might be the right place for you. If you want to solve business problems, keep your customers happy and learn a great deal of engineering while doing all these, you need to find another workplace where you can work with a team of skilled engineers who you can give you constructive feedback or criticism on your work.
  4. Engineering in Adobe, Amazon, Google, etc.: A popular myth that prevails among many is that there is no engineering to do in the Indian offices of Adobe, Amazon, Google, etc. I'll reiterate that there is engineering to do in every software company, even in Infosys, TCS and Wipro. It really depends on the people whether they want to do engineering sincerely or not. Some people would somehow develop the required software by stitching together libraries and give up or look for less-efficient workarounds when a particular task requires inventing a new engineering solution. There is another kind of people who are ready to invent new engineering solutions with all the engineering knowledge they have acquired during college and professional life. They do not hesitate to re-invent the wheel when the existing libraries do not meet the requirements of the particular problem at hand. Such engineers are more in number in start-ups like Gluster, Parallocity, SlideShare, etc. and companies like Adobe, Amazon, Google, etc. These companies also collaborate with universties to learn new techniques and concepts to solve business problems. These companies do not look for less-efficient workarounds when faced with a brick wall. They challenge themselves and do everything possible to solve a problem in the best possible way. These are the places where freshers can hope to learn a great deal of engineering from people around them.
  5. Passionate people can do engineering anywhere: Another popular argument is that it doesn't matter where you work. One can do engineering anywhere, be it Google or Infosys. I agree with this. But then, given a place like Adobe, Amazon, or Google where you can get very good feedback on your work from talented colleagues around you and another place like Infosys, TCS, or Wipro where clueless people around you would call you great because you solved a problem and hail you as a genius, where do you think you are going to learn more and improve yourself faster?
  6. But everyone cannot join Adobe, Amazon, Google, etc.: Well, I never said that everyone should get into a reputed software product company. Not everyone wants to make a career in engineering. Some people have other goals in life. They just want a regular job. It sounds perfectly fine to me. My post was written for those who aspire to make a career in engineering. In my opinion, they should try to get into a reputed software product company or a start-up that is known to hire skilled engineers. If they aren't well prepared, the only thing they can do is to prepare well to fulfill their aspirations. Some people say that they should join Infosys, TCS and Wipro to earn a living while they are preparing and I think it's a great advice. I'll suggest considering contributing some new features or bug-fixes they would like to see in some open source project. Apache Incubator has a lot of budding projects. They can try solving problems at TopCoder, CodeChef, SPOJ, Project Euler, etc. All these things are good ways of preparing in my opinion.
  7. Infosys, TCS and Wipro have good engineers: Many people have told me that there are good engineers in Infosys, TCS and Wipro as well. I agree. I never mentioned that 100% of the engineers in these companies don't do engineering. I mentioned that the majority of them don't do it. In fact, drawing from my personal experience, I quoted a figure that only 1 out of 200 are capable of engineering in these companies. Like most guess work, this figure could be wrong but I am pretty confident that the bigger picture I am trying to paint here isn't.
  8. Training: Many claimed that I am wrong about the poor standard of training in Infosys, TCS, or Wipro. I must tell them that I have attended some of these training programmes. Among the many horror stories pertaining to training in these companies, I'll share only one with you to make my point. In the training assessments, the instructors set question papers containing problems with code that invokes undefined behaviour and ask you to predict its output. 'It invokes undefined behaviour' is not provided as an option you can select as the correct answer. Such training and knowledge is not only inaccurate but also very dangerous if you care about robustness and security of the software you create.
  9. Meritocracy: A few people felt that I should have mentioned that these companies do not practice meritocracy. Anyone with sufficient number of years of experience can get a promotion in these companies. This is true. It didn't occur to me while writing that post. I was focussed on the popular myths about these companies that prevail among college students while writing the post.
  10. Leaving Infosys, TCS, or Wipro: Some people commented that people like me just leave these companies and discourage others from joining them. They feel that we choose the easy way out. They would rather have us stay in these companies and improve them. Firstly, getting a job in a reputed company where you can get an opportunity to work on interesting engineering problems is not easy. You have to be passionate about your area of interest. You have to work and prepare yourself for it. Secondly, Infosys, TCS and Wipro were made by their founders with a particular vision of providing IT services. They have achieved what they wanted with great success. The improvements that you want to make in these companies may not be consistent with the vision of the founders.
  11. Solving algorithm problems vs. editing configuration: This has to be the strangest argument I have come across. Someone mentioned that a person who solves algorithm problems earns no more than someone who only edits configuration files. After seeing both sides of the software industry, I find this false. Solving an algorithm problem is one thing. Solving an algorithm problem efficiently is an entirely different thing. I have seen people who can solve difficult algorithm problems efficiently earning at least twice that of an Infosys engineer. I have numerous examples for this: a friend who is solving problems to deliver the best news from the entire web to the users and another who writes algorithms for a cluster of Nvidia GPUs to do real-time analysis of network traffic to keep attackers out of the network. I have seen people solving algorithm problems in Topcoder, Codechef, etc. earning very well as software developers. While many argue that those fun problems tell you nothing about one's professional programming ability, I've found that people who successfully solve very difficult and contrived algorithm contest problems set by some of the most intelligent brains on the planet are actually pretty good at solving real software engineering problems as well. The toppers from these contests earn way more than someone who only edits configuration files.

To summarize, that post was meant for and only for people who have what it takes to work at a place where he can solve engineering problems. I have known many such people who were good engineers but weren't aware of the reality in companies like Infosys, TCS, or Wipro before joining them. That post was meant for these people. I devoted a couple of paragraphs in the previous post to make this clear but for some reason most people seem to have ignored them.

I first came to know about Sunny Vaghela about one and a half years ago when I got an email from Sandip Dev of Sun Microsystems (now acquired by Oracle).

A couple of days ago, I found him again at, a website that used to be the largest mirror of defaced websites.

Sunny Vaghela has found a place in's charlatans watch list: Sunny Vaghela: Claims of Orkut Vulnerability Research. He is the third Indian to get into this list after Ankit Fadia and Sahil Khan.

Sometimes computer science, IT or electronic and communication 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 is much simpler than they think it is.


This blog post is not about how these companies are large employers creating a lot of jobs in the market. I acknowledge their efforts. This blog post is not about undermining the efforts of these companies. They are probably good at keeping their customers happy.

This blog post is about a choice that freshers usually have to make and the information they should have before they make the choice. This blog post is about urging the freshers who want to make a career in engineering to not make a mistake that I did because I did not have the necessary information at the right time; a mistake that I could correct two years later after I realized 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.

With the above disclaimer out the way, let me start.

  1. Training: People think that these organizations are good for freshers because they get a lot of training which they wouldn't get in other organizations. I must remind such people that attending training programmes is not equivalent to learning. Indeed these organizations provide a lot of training to freshers but only about 1% of the trainees actually absorb the knowledge. The 1% that do absorb the training do not stick to the organization for a long time because sooner or later they realize that they want to do some real engineering. The figure '1%' isn't merely a guess. This is my observation across various trainee-batches that have been trained in one of these organizations. Think about it. Can you learn a new programming language in just 3 days? If your answer is "no", you shouldn't join one of these organizations. If your answer is "yes", you shouldn't join one of these organizations.
  2. Engineering: One can find engineering problems in these organizations but no trace of engineering. This is mainly due to poor guidance, high attrition rate of good engineers, and a general lack of engineering culture. The next point elaborates this further.
  3. Engineers: The number of engineers in these organizations 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 the minimum qualification to get a job in one of these organizations bachelor's of engineering?", you might ask. It is. Yes, all of them have a degree in engineering or computers of some sort but only about 1 out of 200 is an engineer. The rest 199 do not understand why a bitcount of A XOR B would give you the number of similar bits in corresponding positions in both variables, why one can not create a POSIX compliant regular expression to match only strings with 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 and not 'and'. Now you might wonder why one should know these little things when most of the things are done by libraries these days. I think such attitude is dangerous in the world of software development especially when robustness and security are concerns. Good understanding of fundamentals leads to optimal and robust solutions.
  4. Culture: One of the worst cultures you can find in the whole of software industry. Very few are busy trying to learn a few things mentioned in the previous paragraph. Some employees are busy figuring out ways to impress their female colleagues using the resources provided by the organization rather than learning and solving problems in better ways. Others are busy cribbing. Here is a shocking piece of information for those who have never worked for one of these organizations. One can also manage to find mud-slinging in company forums once in a while. Professionalism is at its worst here.
  5. Onsite: Contrary to the popular belief, the number of trips to foreign lands isn't a measure of one's technical prowess. Onsite opportunities depend on a variety of factors including the department you are working in, the nature of work, etc.

So, my answer to the question "Infosys, TCS, or Wipro?" is "None." That's not very helpful. Here is a more helpful one. One can consider applying for a job in an organization where he or she 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 and reworking, talking to good engineers, etc. One can try looking for an organization where the leaders of projects are very good engineers. Start-ups are more likely to have them. Some matured ones are Gluster, Parallocity, SlideShare, etc. New start-ups 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, etc. So, how does one figure whether a certain organization is an organization of engineers or an organization of good software users?

The clue is: Interview.

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

Update: October 28, 2011: This post got way more attention than I wanted. It was discussed and debated at various places on the web. As a result, here is a follow-up post: Re: Infosys, TCS, or Wipro?

I was studying in the 1st standard. Our science teacher gave us a surprise test. I tried to answer all questions correctly. After the corrected notebooks were returned, I found that the teacher had incorrectly marked one of my answers as incorrect. I was sure that I was correct. So, I showed it to the girl sitting next to me and declared innocently, "This answer is correct. But she doesn't know. She is stupid."

When she went to collect her notebook, she informed the teacher about what I had just said. The teacher was offended and asked me to stand outside the class. Our principal was passing through the corridor and she was surprised to see me standing outside. She asked what I did and I said that I called our teacher stupid. She asked me to apologize.

I didn't know how to do that. I started recollecting from Hindi movies. The villian would fall at someone's feet and cry, "Mujhe maaf kar do. Please, mujhe maaf kar do."[*] I thought, "I can't do this. I can't fall at her feet. That would be very embarrassing. I said that she was stupid and I was right. Why should I fall at her feet?" I refused to apologize, inspite of repeated warnings and requests. I was simply not ready to fall at her feet and do the drama.

The matter escalated and I was asked to leave that place. I was taken to the reception area. I was not allowed to attend any classes. I sat there crying the whole day. Visitors came and enquired why I was crying. I explained. Before the final bell rang, a complaint was registered in my diary and my parents were asked to meet the principal next day.

The next day, my parents met the principal. Thankfully, it went well. She explained how she was impressed with my innocence and honesty. It seemed as if she had called my parents only to praise me. I grew up to be wiser and humbler. Now, I understand that falling at someone's feet is not the only way to apologize.

[*] Translated to English: "Forgive me. Please, forgive me."

Yachts sailing on Charles River Basin, Boston, MA, USA.
Day before yesterday, I returned from a two week trip to Massachusetts. I liked the US. It is a pretty nice country. Almost everyone who returns from the US speaks highly of the technological advancement, excellent highways, law and order, cleanliness, etc. they see in that country. Our country has tried a little to replicate the materialistic and tangible good things they have pretty well. The shopping malls, vending machines, the buildings of software companies, pubs, etc. of our country are very much like what they have. The stronger our country becomes economically, the more we would be able to emulate the US in this aspect. This aspect of the US is indeed very impressive.

I was more impressed by another aspect of the US: their culture. Respect, gratitude and freedom of expression seem to be deeply ingrained into their culture. I wish we could have some of it in our country as well. I'll list down some good things that I found in their culture that I would very much want in our country.

  1. Respect: I was not used to so much respect and friendly behaviour. In fact, in the first few days, I found it annoying when people who did not know me greeted me with 'Hi! How are you doing?'. But gradually, I got used to it. If I walked into a store, the cashier or some helper would greet me. If I walked into the office, the receptionist would greet me. If I stepped into a bus, the operator would greet me. If a pedestrian steps onto a zebra crossing with no signals near it, all vehicles stop and wait for the pedestrian to cross the road. There are proper rules to resolve what happens when two vehicles approach a crossroad at almost the same time. Usually, the traffic lights would stop the traffic on one road while the other road is in use, or it would ask the vehicles on one road to cross only when there is no vehicle on the other road. When there are no traffic signals to help, one who arrives at the crossroads first is the one who should be allowed to cross it first. What if there is some confusion in spite of all these elaborate rules? In my two week stay, I found that in case of confusion, one driver requests the other to cross first by using hand gestures.
  2. Gratitude: They thank you for almost every little thing they can. They just need an excuse to thank you. Here is an example. While walking into the office, I opened the door and entered. Suddenly I heard a voice from behind, "Thank you". I didn't even know there was someone behind me but he cared to thank me perhaps because he felt that I made it easier for him to enter by opening the door.
  3. Passion: I found them to be passionate about their work. It didn't seem like that they become engineers and doctors because their parents ask them to. They seemed like people who love what they do. However, it would be wrong to draw this conclusion from such a short stay in the US. Irrespective of whether this is true or not, I would definitely want the kids of our country to have the freedom to choose what they want to do.
  4. Love: Young couples express their love freely. It is common to see couples hugging or kissing in public. I am not sure why people of our country are shy of expressing love but do not hesitate to express hatred in front of the whole nation. Love is a good thing. Hatred isn't very pleasant.

Newer | Older