The 'Infosys, TCS, or Wipro?' post is doing the rounds again and some hatred as well as love is arriving on my email. That's fine. I've got pretty used to it in the last 5 months. If you try to say the truth, some people are going to call you arrogant and offensive. I would take hatred any day rather than needlessly sugarcoat things to please everybody.

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. 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.

9 comments

Hrish said:

+1 for standing by your opinion and the truth.

Abhay said:

I completely agree with your first blog post and this one too. This and the previous blog post completely relates to me. As a fresher I didn't join TCS (by luck because of recession) and know many of my friends who are not happy working at Infosys and TCS and want to quit these companies as soon as possible.

I joined a product startup and learnt enormous engineering problems & solutions. After that experience I have decided that I will only join product companies. Now, I am working with another startup.

I've also had debates with my friends who give similar kind of arguments.

+1 from me for writing this blog post.

Vijay Kumar said:

Susam, I am really surprised to see your honest introspection for a post written months back. I see a difference in perspective from now and then, do you really see an engineering challenge in working for one of the BIG houses which you vouched for, well I would wait for your answer.

You are able to write this because a handful of Indians merely a couple of decades back thought of doing something which gave path to millions of people like "me" an average guy. Drive to engineering excellence is not an only driving factor, we have come a long way and I am able to say this because once in my career I was part of a darling of silicon valley start-up and to YOUR surprise that picture is no more on technology map, that shop is shut irrespective of all their cutting edge engineering solutions. Please DO NOT take me in a league where you see me denying the fact which you have already talked about from rooftop, I am not advocating anything but I have a question for you, How many institutions are here in our country which produce quality engineers, I guess you are counting on your fingers. Where do you see an average engineer like me who all his life memorized some notes and was busy living others' dream.

Susam Pal said:

do you really see an engineering challenge in working for one of the BIG houses which you vouched for, well I would wait for your answer?

Yes, I do. Thank you for bringing up this point. This was another popular point against the post that I missed completely. Now, I have added point 4 in this post to clarify this.

I agree with everything you have written in your comment. This post is only about an individual's pursuit for excellence in engineering. Yes, it is not the only factor. There are many other factors in life and career which are off-topic as far as this post is concerned. This post neither speaks in favour of nor against such other factors.

Where do you see an average engineers like me who all his life mugged some notes and was busy living "Others" dream.

I've expressed my view about this already in point 6.

Amey said:

I was one of those who slammed your previous post. I honestly thought it did not help in calling a spade spade. But I've learnt a few things and you have too. The biggest thing I see is the confidence you get by working in a place that gives you hard problems to solve, not software abstractions, just hard problems.

I know a few really smart engineers who feel they are average in Google. You can't guess how your job will turn out. A startup might drain you and a big IT company might not be able to meet your aspirations. I believe that if you feel average in your workplace, then you are in the correct place.

Startups by nature have low politics. They provide decent money, perks, holidays and everything. It's a different kind of lifestyle. But there is noise in the quality of problems that startups solve. Before joining a startup evaluate the problems it solves. Don't do it to be cool, do it to become cool.

Sri said:

Apart from the purely technical part of engineering and career potential, don't you think ethics is also important to techies?

Of course, Satyam is no longer on our radar screens but Infosys has the US authorities chasing them and I'm sure there are other stories across the board which NASSCOM is also taking up.

Vipul Agarwal said:

Your post makes sense. A very good example of bad programming by Infosys is www.bobibanking.com. You can only make transactions on the website using Microsoft Internet Explorer.

Prashant said:

Is anyone ever going to blame the training and placement cell in colleges?

In my college, students were forced to sit for the first company which came, Infosys. 315 of us were eligible. Aptitude test really was the only place where you could get kicked out. By randomly marking answers you might actually get selected in Infosys against your wish, so you must solve and mark the wrong answers if you don't want a job in Infosys.

Not surprisingly, 210 of us cleared and 202 got the job. 8 did not get the job because of missing paperwork. Bullshit I tell you!

Then the next company came. The remaining students were again threatened to try for this company by generating a false sense of insecurity. Another 84 got selected. Another two IT companies came following this and picked up the best of the rest.

After all this happened, the first startup showed up, and thanks to the brilliant placement policy the only people who sat for this were people with multiple backlogs and year drops. I am sure the startups were flattered and will visit next year too!

Josh McCormick said:

Along the lines of what Prashant said, I blame these companies for creating standardized tests as a barrier to entry, and for becoming reliant on these tests to sort potential employees. Worse, I was floored when I came across the concept of "placement papers" which appear to be prevalent in India. Unbelievable!

If a company hands you a standardized test in your field of study, it says a lot about that company. (Unable to judge talent. Blind to the fact that their tests are being gamed.) It says a lot about their confidence in your education. (Is the diploma worth something, or does it just say that you've gone through the motions?) And if a job seeker goes along with it, it says a lot about them, too. (You really want a job and can't do better. You went to a school that a company doesn't trust, and you're willing to work for a company that is demonstrating to you that it is poor with cultivating talent.)

Post a comment

RSS