This is a really great article, man! Truly impressed!

Susam,

Nice blog post! But it looks like you are discrediting many people working in these companies by your blog post. Let me clarify.

1. About the training sessions, whose fault is it that the trainees absorb only 1% of the knowledge? If the trainees are good enough, they can always learn the stuff taught without problems. Anyway, the organization you are referring to where a programming language is taught in 3 days might be the only one doing it. The organization I work for trained us in an application for many days with a thorough syllabus. And when our organization tried to train people on different programming languages quickly, it was assumed that they would know pretty much of that already because of their engineering studies or because they were picked from the best institutions like NIT, IIT, etc. So they probably do assume that since these trainees are getting paid more and are from better colleges, their ability to grasp new things would be much higher than the rest. Anyway, this is just my viewpoint, just like the blog post is your viewpoint.

2. What do you mean by engineering? The only engineering I hear about in these companies is in the field of Product Engineering (and maybe where they use VLSI and stuff). But this is a small sector of these organizations. They have many more sectors where the requirement is to fulfill the client's requirements. As simple as that. Be it providing a service like administration or create new applications. But seldom are people told to "create" products for companies, especially the BFSI sector which is primarily one of the highest revenue earners for these organizations.

3. I myself work in data warehousing and don't have anything to do with creating Products or writing millions lines of code. But we are directly interfaced with business. We create critical applications for the client using our ETL tools. So is this work bad? Is this work something that engineers aren't supposed to be doing? Then who is supposed to be doing this? And do note that this job requires very high analytical skills which engineers should have in them.

4. Culture: Well, I can agree on some points that you made. But you cannot classify the whole organization into this. What do you mean when you say these people are "software-tailors"? Aren't these professionals building something for someone? Are you saying that anybody who can browse the internet and knows about computers can do our jobs? Don't you think we would find that a bit insulting? It might be true in many cases where the proper training can make a monkey do our jobs, but isn't that true for many fields? Aren't monkeys being trained to pilot airships?

5. Onsite: I won't comment on this since I am onsite. But do know this that there is a chance that someone might actually like the way business is done onsite and the work culture out here. And yes, money is a big factor. Will you say that a poor man's son who is in onsite earning money for his family is greedy? So its all about perception. So the picture isn't always black and white my friend. You need to factor in everyone's needs and desires.

Anyway, no offense to you or your blog post. Just wanted to point out that everyone's perception is different. Since you do not work with any of these companies now, its easy to be outside and comment. But I've been with my organization for quite some time now and I feel absolutely fine with that. Anyways, thank you for an opportunity for a healthy debate.

Sambeet,

This blog post is not about why the training is not effective or whether monkeys are being trained to pilot airships. This blog post answers the question, "Infosys, TCS or Wipro?" The answer I choose is: "None."

Your second point allows the possibility that the work can be done by a high school student with a crash course on software and that is precisely what these companies do, but with engineering graduates. I didn't see any mention or hint of a concrete engineering problem in your second point that requires engineering skill or knowledge. Perhaps, "engineering" means different things to both of us.

Building things isn't a proof of being engineers. Building things like engineers is. Your fourth point also demonstrates how the employees of these companies convince themselves that they are professional engineers just because they can create a working software. Sadly, the fact is that people of these companies build software in a manner some school kid with no knowledge of programming or engineering would do.

In your fifth point, you seem to agree that going onsite is less about one's technical prowess and passion for engineering. So what you are saying here is consistent with what I am saying in my blog post.

Sambeet said:

> Are you saying that anybody who can browse the internet and knows about computers can do our jobs?

@Sambeet, Isn't that true? In my last 1.5 years in infosys, I have not done any work which required me to use any engineering skills. All I do is write JavaScript to take care of user input. You call that engineering?

I work for a client of TCS. So, I have to post as an anonymous coward due to legal reasons. :] I am quite alarmed by Sambeet's response, especially his 5th point, where he writes that the Indian vendors send their employees to work on client's site not because they are proficient in technology but because you need to factor in everyone's needs and desiers. Excuse me! We need good technology people. Why can't you guys just be professional and keep your personal lives and poverty aside while discussing technology?

Sambeet said:

> About the trainings, whose fault is it that the trainees absorb only 1%? If the trainees are good enough, they can always learn the stuff taught without problems.

@Sambeet, Read http://norvig.com/21-days.html.

Great post, Susam! But I disagree that startups are a good place to get real engineering work where we can use our engineering knowledge. Many startups in India also do only "sofware-tailor" type of job. But I agree that there are good startups also where we can get good engineering problems to work on. Freshers should always choose a startup over Infosys, Wipro, or TCS if they want to learn useful things.

Sambeet, you asked:

> Are you saying that anybody who can browse the internet and knows about computers can do our jobs?

I will say, yes. If you are talking about software like crappy SBI bank sofware or ICICI bank software which cannot run reliably all the time, keeps crashing at the drop of a hat, then yes anbody who can browse the internet and knows about computer and a little bit programming can do your jobs.

Well, with due respect to you opinions, I will share mine.

1. Absorbing the knowledge shared in training is the responsibility of the employee. And definitely more than 1% get this knowledge.

2. Engineering does happen. More than what we have learnt in school and college. While we learn theory at college, here you solve real world business problems.

3. People who work are well qualified for the job. Some are much more qualified than an Engineer, a CA, a MBA, a PhD, etc., and sharing your work space with these guys does broaden your spectrum.

4. As for culture, it is we the people who build it. It is a sum of parts - with each of us being a part.

5. As for onsite travel, it is based on various factors.

All in all, things are not as bad as perceived.

If you want to work 60-hour weeks, pay for your own expenses when abroad and be treated like robots, join TCS, Wipro, or Infosys.

Hey Susam,

Saw this debate going on and couldn't help but jump in. Before I start, let me point out a couple of ground realities:

- All the three companies you named self-confess that they work in the "services" domain. There is no mention of "engineering" anywhere.

- These are mass recruiters. They recruit people who don't have a chance of joining google or RSA just out of college.

Having said that, I come back to the question you asked. My take would be joining these companies is good in two cases:

- You love computers and like solving real world problems using computers. But you don't have a degree from the heavy weight colleges, so don't have a chance in the biggies of the industry. Get in these companies, use them as a launchpad and get ahead in your life.

- You don't know anything about computers, but want to earn a decent white-collar living. Get into these companies, get set for your life.

I don't think there is any third category of people joining these or rather any other company in the industry.

I rest my case. :)

Paritosh,

Regarding using these companies as launchpad, I am not quite getting it. In fact, if you study in a not so good college and work in these companies for 5+ years, your resume is worthless and you cannot launch yourself anywhere. I worked for 2.5 years in one of these companies (in addition to having a degree from a not so good college) and from my personal experience I can say for sure that it only adds one more hurdle to jump if at all you manage to launch a career later.

@Vyankatesh, Err... What? You've got CAs, MBAs in Infosys, Wipro, and TCS and so it broadens your spectrum? You think CAs and MBAs don't exist in better companies? And what has the presence of CAs and MBAs have to do with engineering? It is funny that people from these companies who are coming to this blog post to defend their employers are making matters worse and showing us how sorry the state of these companies are. The people defending these companies in these comments have not worked in a company where real engineering work happens and so do not even know what they are talking about.

Paritosh,

I think starting a career in Infosys, TCS, or Wipro is a very bad way of starting a career. Sambeet and Vyankatesh are the biggest examples of why it is a bad way to make a career. After they stay in these companies they become institutionalized. Their outlook of the technology world becomes so narrow that they believe whatever they are doing is engineering and everywhere it is like this. They are not in a position to even accept that their work is something that does not need engineering graduates. Anyone with internet connection can do that work. It is because of this that people like these cannot get out of these companies and remain stuck in these companies forever only to come and post in blog posts like this and mislead general public when someone tries to expose the truths about these companies to the outside world. No real technology company would like to hire people with such narrow outlook.

I very much agree with Prunthaban that once you stay in these companies for a few years, your resume is screwed because every technology giant knows what kind of crap these companies hire.

I have led a project where we interacted with one of the three companies mentioned in this article. One thing I can say for sure that there is no such thing as a good engineer in these companies. They were supposed to deliver a project in 3 months' time. Not only did they lack severely in technical skills, they handled the project very unprofessionally and their behavior showed complete lack of integrity.

Deadlines were missed, delivery was delayed and even after the delay, the delivery was not functional. There were numerous bugs which showed a basic lack of understanding of the system among the developers. Deadlocks in databases were common and when we filed a ticket we realized that the engineers lacked a basic understanding of what kind of operations lead to deadlocks.

Despite being clearly spelled out in the document that the software must make use of multithreading to take advantage of the multicore servers we use, we did not find performance improvements when we increased the number of threads. We expected linear improvement in the performance with the increase in the number of threads. They kept insisting that they had multithreading in the software but our analysis contradicted their claims. We had to escalate the matter and asked them to rewrite the multithreading code. The most ironic part of the whole affair was that our engineers had to work with their engineers and supervise them to get the multithreading part done correctly. After such a horrible experience I can very confidently confirm that the third point in this blog post about the lack of true engineers in these organizations is 100% true.

@Prunthaban, Vamsi, et al.,

When people say working in these companies for 5+ years makes your resume is worthless and you cannot launch yourself anywhere, I feel they are hiding behind excuses. You don't need a great company to write beautiful code. What you need is belief in yourself and basic analytical and logical abilities.

Lots of people have come out from these companies and gone to write great code. I personally know a few. Heck, even the author of this post used one of these so called crappy companies to launch his career (sorry Susam for bringing this up).

Paritosh,

I think you have misunderstood me. I am not saying people who work in these companies will always write crappy code :-) I worked in one of these companies for 2.5 years and I have met/seen great coders (including the author of this post as you rightly said). These people are great coders because they used their extra-time to learn stuff. But a good engineering company will make you learn all this the easier way through your day to day job itself (How many times you get the chance to see a piece of code written by really great coders with 20+ years of experience in one of these mentioned companies?).

My point is that when a person working in these companies decide to launch a different career, these companies in your resume makes it 'one more hurdle' to jump. I am not saying it is impossible. I am only saying that having these companies do hinder your progress. I spent 2.5 years and I can say with confidence that if I had spent that 2.5 years in some other engineering company I would have been in an even better position. I am sure that applies to Susam too.

Paritosh,

You mentioned:

> Heck, even the author of this post used one of these so called crappy companies to launch his career (sorry Susam for bringing this up).

I did start my career in one of these three companies I've mentioned in the title of this post. But it is a negative point rather than a positive point in my resume. It didn't help me at all when I went to interview with RSA. What helped though were the reading and application-security related projects I did late at nights after spending 9 to 10 hours daily at work. I got the job at RSA.

Prunthaban too has a similar story. When he applied to Google, his prior work experience at one of these three companies turned out to be useless. However, he had done a lot of hard work in algorithms and software design area out of his own interest. He used to regularly participate in Topcoder and CodeChef algorithm contests. Due to his strong foundation in algorithms and data structures that he had built out of his own interest in his personal time, he got the job at Google.

If I had known what I have shared in this post 5 years ago, I would have never made the mistake of starting my career in one of these three companies. As you can see from Prunthaban's comment, he feels the same way too.

Good post. But I think you should mention that your post is meant for computer science engineers and their lack of engineering skills because these organizations are IT/software firms.

There are solid points for discussions about why engineers from other backgrounds get into these firms but as I can see from your post, you were mostly aiming at IT/CS folks though not explicitly addressed to them.

Startups find it difficult to get fresh engineers as these organizations do because there is a social aura in favour of these companies more than anything else.

Ravishankar,

I am not specifically aiming at IT/CS engineers. Some of these companies need other kinds of engineers too. Unfortunately, no matter what kind of engineers they are, their knowledge and engineering skills have been found to be dismal. Some examples from my personal experience:

- An entire team of electronics engineers did not know basic digital logic. Hence, they were unable to think of efficient solutions to some real world business problems that could be solved in a very elegant and efficient manner using digital logic. I have selected one of those problems and mentioned it in point 3 of my blog post.

- I have met people with degree in electronics and communications engineering in one of these companies who did not know about information entropy and hence were unable to take decisions about data compression.

- In one of these companies, I have met an electronics engineer who configured a circuit incorrectly because he did not know that a p-n junction diode requires forward bias to "turn it on". In the same company, I have met a couple of computer science engineers who did not know that a regular expression cannot be used to match strings with balanced parentheses.

Now, these are really basic concepts in the respective engineering fields. If people who do not know such basic concepts about their fields are working in good positions (they are sometimes project leads too) in these companies, it speaks a lot about what kind of engineering these people must be doing and what kind of software or other non-software projects these people must be building.

We have digressed from the point I've tried to make in this post. I am not really concerned with the kind of software they are building. I am concerned what my friends who ask, "Infosys, Wipro or TCS?", are going to learn in these companies. My answer to them is, "None", because I want them to look for a good startup or a reputed technology company with a good engineering culture known for hiring good engineers where they can learn how to solve problems efficiently and correctly from other senior engineers.

Hi Susam,

It is really great to see you write this eye-opening article. It helps two kinds of people. Those who want to ask this question will think twice before even asking this question. Those who are there sailing in the boat of these IT companies might realize something and break out from the shackles of hollowness.

Hi Susam,

Great blog post! You have missed one more myth that needs attention.

Brand name: Students feel that Infosys, TCS, or Wipro are great brand names. It is far from the truth. Infosys, TCS, or Wipro are embarrassing brand names to write in your resume unless you want to join another Infosys, TCS, Wipro like company such as Cognizant, Accenture, etc. who are ready to hire any crap that comes out of Infosys, TCS, and Wipro. Good technology companies know that these brand names are like balloons. They look big from outside but has nothing apart from gas inside. Actually an engineer from a good but less popular startup has a better chance than a person from Infosys to get a job in a big technology company.

Vyankatesh,

I completely disagree with this statement of yours:

> All in all, things are not as bad as perceived.

This blog post reveals only the tip of the iceberg. The actual condition in these companies are much worse. The high attrition rate in these companies is a proof of this.

I would like to agree with what Susam has said here, nothing to take away anything from anybody here. Sometimes, I feel, we as engineers have lost control over our knowledge sources.

I think all the 5 reasons pertain to the employee rather than the organisation. I would love to join Infy/Wipro just for the reasons you have given.

1. Training: If only 1% make it, I would want to be a part of that elite group.

2. Engineering: Nobody "is" using proper engineering technique does not force me to follow them. Why can't I do it the right way?

3. Engineers: 1:200 is not under my control. A company has the rights to choose how many engineers and how many janitors they need. I would choose to be an engineer anyways.

4. Culture: For gossipping or cribbing why do you have to go to Infy/Wipros? You can just be a blogger! (pun intended)

5. Onsite: The so called "engineers" study theories and algorithms created by Dijkstras, Adlemans and Tanenbaums. Why wouldn't an engineer want to meet people like them?

Having said all that I myself am a bootstrapper and run a startup. And I can tell you that most of the average fresh-out-of-college engineers wouldn't survive in a startup for the very exact reasons you have given.

Narayan Babu,

It seems to me that you have left your comment for the sole purpose of disagreeing with my post without really knowing or having a first hand experience of what these companies are. However, I'll take it in stride. :-)

Here is what I have got to say for each of your points:

1. In my opinion, one should always strive to be in the company of engineers who are better because it exposes one to challenging problems and ideas on a daily basis. This accelerates the pace of learning new concepts severalfold. Yes, one can definitely learn through self-study using the internet, books and online friends, but the experience of working with a talented and experienced senior engineer sitting next to you is priceless. It only adds. I don't see how it subtracts.

2. You have a very wrong idea about these companies if you believe that you are not forced to follow bad software practices in these companies.

3. I agree that you don't have control on how many good engineers a company like Infosys, TCS or Wipro hires. But you do have control to join a different organisation which hires good engineers.

4. The corporate network of any good company is and should be much more civil and conducive to development than the internet. In these companies the situation is reversed. I don't understand what your point about culture is then.

5. One does not meet Dijkstras and Adlemans by going onsite. That takes a lot more effort than just going onsite. I can tell you this from my personal experience. ;-)

You also seem to undermine the capabilities of fresh engineering graduates. Also, it seems like you fail to attract the best talent. I have interviewed many fresh engineering graduates who are way better than people with 5 to 10 years of experience in these three companies. We have no trouble attracting good talent where I work now. One of the brightest engineers I work with joined straight out of college last year and now sits next to me.

Bang on! I liked the content and your style of writing. Hope enough number of new and young engineers read your blog and choose to join lesser known startups.

Narayan Babu,

Don't forget that if you become a part of the 1% elite group in these companies everyone around you would leech upon you until you go insane and run away from the place.

I just want to say that not all engineers plan to go for core jobs while studying. I was always interested to work in IT but had to get a good engineering degree to fulfill that dream. It sounds bad but I don't use my engineering skills at my job. But I've learnt a lot more now and I use that in my job. And yes, I am proud that I've nothing to do with "engineering" and am still happy with it.

In the end, I guess Susam wanted to highlight that not much engineering might be happening in these companies. I won't comment on that since I was never into that field as such. But I do know of many software engineering patents coming out of these companies so I guess they must be doing something right. But these companies have never claimed to be engineering companies and have always been IT services companies. So Susam is correct in saying that engineers who want to use their knowledge they gained during engineering should not join these 3 companies. The only thing you need to see is how much percentage of engineers actually choose to do so.

Hey Susam,

I agree with your point. But if no Infosys, no TCS, then where should new engineers go?

Let me tell you, I am a student selected at Infosys and about to join it.

Sanket,

My suggestion is mentioned in the last three paragraphs of this blog post.

Hi Susam,

You wrote this in the end:

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

This is exactly true! I was very happy that the interviewer didn't ask me many technical questions when I went to interview for one of these three companies. Now I am feeling the heat.

I would like to call my role as cyber-coolie and not a software engineer.

I totally agree with you when you say that this is no engineering. Perhaps that is why my employer realised this and removed "Technologies" from its name. :P

Onsite travel is now no longer a lucrative opportunity. Too many onsite engineers work as production support guys. That is horrible! But given that you get some decent money, people don't complain.

These companies say that the engineering colleges are not training students to be skilled enough to be at par with the industry standards. I would like to ask them, "Do these companies match the skills of the students?"

I say to my juniors, "If you think you did something or learnt something in the four years of engineering, dont join these companies." :)

I completely agree with you, Susam and Prunthaban. Even I lived in that shell of IT services companies for a couple of years. Then I moved to a startup.

Now when attending interviews, my toughest task is covering up my work in the first company.

@Ajit Sahoo, Startup doesn't mean new company. Susam has given some excellent examples of startups. Companies like Flipkart, Zoho, and Aryaka are a few more examples I would like to add.

You know this is exactly the idealistic post that wants to make you feel I am the rockstar because I did not join any of these companies. I disagree with you.

I don't work in these organisations, but let me tell you, this whole startup culture we are seeing just because the US is exploding is farcical in my opinion. Google, Facebook, Microsoft, Palantir, etc. are exceptions and not the norm. You know why people work there? Because they did their engineering right in college. So any engineer who got his education right will always find ways to solve problems. It is very easy to criticise the processes and methodologies of these organisations, but only true engineers can improve them. Most of the startups preach about work culture, freedom, etc. Very few startups in India actually try or think computationally. Most of these startups are web-based products and sure as hell don't apply your graph algorithms or even basic algorithms.

I am not saying these organisations are the best thing to happen to our country. Infact I think they might be a reason why one day we actually have recession and people go jobless. My point is that if you get here, try to be your man/woman. Work hard and learn as much as you can. We still don't have startups which are actually using computer science. There's more direction towards solving a problem which could make money for you. You can easily find out about these startups by looking at their hiring page. How many will appreciate your knowledge of Lisp or assembly programming or that someone has read CLRS or TAOCP. All they look for is a very good PHP developer to build stuff for them. If you want to learn, get your education right. The rest will follow.

Amey,

You cannot be more wrong when you say that we still don't have startups that are using computer science or engineering. Ever heard of ZResearch, OnMobile, etc.? I am sure as hell there are many more examples.

Ajit and Amey,

I have worked in one crappy company mentioned in the title of this blog post. Then I switched to a startup. I agree that all startups don't have good engineers. But many of them have. So I still disagree that somebody should join Infosys, TCS, or Wipro and try to be his own man/woman. The culture, stupid processes, tech leads of these companies force you to develop software projects in bad ways.

It is always better to join startups if you don't get a call from Google, Microsoft, etc. I don't agree that if your education is right, then the rest will follow. Correct information is necessary or inexperienced engineers will fall for overhyped brand names like Infosys, TCS, and Wipro in spite of good education like I fell for the hype. This blog post does very nice job of providing correct information.

After one year, I switched to startup. Now I am doing better work and I am happy.

This blog post is very inspirational. Thank you for it. Perhaps you just changed my life.

Amey,

You are not well informed. Each startup suggestion posted by Susam are very respectable companies. They are also popular for keeping their employees happy. If you think SlideShare.net only hires good PHP developers I have only one thing to say. Please update your knowledge about these companies before posting incorrect information. SlideShare.net does a good variety of work. They have a good variety of openings too. New engineers from colleges who join there start working on creating Ruby or Python API in the beginning. Eventually they get to work on distributed systems, map-reduce, search engines, analytics, recommendation systems, etc. within one or two years. All of these require good core computer science knowledge, algorithms, and also graph theory.

So please refrain from posting incorrect comments without doing proper research.

Santosh,

I have never lambasted any company/startup. I think my points are coming across incorrectly. Here are the startups probably people should look at:

- https://qr.ae/TUtK7r
- https://qr.ae/TUtK74

All,

Read all of the comments to the post and found them informative. But for me, being just a student, these comments confused me more. Having attended a pre-placement presentation of one of these companies in the morning itself, I was, before reading this, sure of what my dream job was. But now this blog post has definitely budged my perceptions. Regarding startups, what do they look for in an engineering student? Does the graduation institute matter? I must mention I am not from a very known college. What I couldn't understand from the blog post is where to apply as a fresh engineering graduate? What are the pre-requisites and whether to pursue further studies? Thanks!

Abhay,

There is no general answer. Different startups have different requirements. The companies have careers/jobs pages in their websites. They should give you some ideas. No need to be from a very known college for startups. They can't afford to keep engineers who can't do work. So they hire with care. So just be good with your concepts.

I don't know if this has been brought up yet, but the blog post seems to say that you don't find challenging problems in these big IT companies, and hence the work you do there is not really "engineering".

What is not appreciated is that these companies are huge and somewhere some team certainly is working on challenging projects. They even have dedicated research groups. However, you must proactively look for them, and persistently try to join them. Just as they have "real" problems, they need "real" engineers to solve them, and requests will eventually be granted if they see that you are really good.

10 years ago, a friend was very interested in aeronautics, and he actually found a related project in Infosys. Aeronautics, of all things!

It's just the nature of IT outsourcing that 95% of the work is non-challenging CRUD work but then 95% of employees don't want challenging work anyways. Be in the other 5%.

Kinkfisher,

That's not what the blog post says. If you read point 2, it says:

> "One can find engineering problems in these organisations but no trace of engineering."

Great article. Hope the graduates understand what exactly is the purpose of the degree they hold.

Loved your method to analyze a company. The interviews. So clean a method. :-)

IMHO, engineering is not always about doing low-level coding. It is also about designing highly scalable systems, algorithms, applications, and building them. :-)

> One can find engineering problems in these organisations but no trace of engineering.

That's only true for problems that can be solved without engineering. A large fraction of IT outsourcing projects are enterprise applications, used only by hundreds or thousands of people at most. They don't face, for instance, the scalability problems that require good engineering, and hence simple solutions and brute force is sufficient for most of these.

However, there certainly are projects with hard problems where only proper engineering can get the work done. Or sometimes, otherwise dull projects throw up a small but really hard problem. When I was there 10 years ago, I was aware of people in each of these companies solving problems that required thoughtful engineering. Unsurprisingly, they were also seen as the most valuable employees, the "go-to" people whenever hard problems come up.

Granted that these were rare cases. But I think it will get better with the US companies beginning to outsource their R&D to India in addition to the dull IT stuff.

After reading all these comments I just want to say that everyone has their own view to see things. But yes, thank you very much for the suggestions. I've heard a lot about these firms. My seniors who have worked with these firms warned me earlier not to join them. I know many people who left these companies.

Besides this one more thing I would like to say that if you are about to graduate and you have got a job in Infosys, TCS, or Wipro, it really matters very much because of the big name associated with them. Many of us want to know which type of environment, professionalism, people, and opportunities are there. Some people say these are good. Some say they aen't. I've not joined any of these yet. But I'll think about it when the time comes. I don't want to waste my time by taking a wrong decision. Thank you for writing this blog post.

Neha,

I suggest looking for other job offers instead of joining Infosys, TCS, or Wipro. Upload your resume to job portals. You may get calls from startups. No offence meant but unless you want to end up like Sambeet Sahoo working with ETL tools in these companies till you grow old, Infosys, TCS, and Wipro are not worth joining.

Infosys, TCS, and Wipro are big names but not necessarily in a positive way. You shall realize it later when you try to apply to big sofware companies or startups that do good engineering work. Listen to your seniors who have warned you about these companies. They are right.

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

I fall in this category. I left before it was too late. It would have been nice if you pointed this issue to IT consulting comapanies in general rather than only these three companies.

Very nice post! This is the true state of the Indian IT industry.

> Remember the technical problems they discuss in the interview. Think about them later.

I thought about this before it was too late and corrected my decision just like Praveen.

Think before you join an IT consulting firm. Try to find the difference between IT consulting and software development.

Some of the points are debatable, but well-written! Someone had to say it!

First of all, nice blog post. Very informative to students like me who are almost ready to step out of college. After reading this post, I must admit that I am in a big state of confusion on what to do and what not to. Unfortunately, I have been placed in one of these IT Companies in college. Fortunately, I haven't joined them yet. My engineering course is still going on and I am expecting my joining date to be at least 3 months away from now.

I have a good academic record throughout my career and an excellent extracurricular track record.

You said in your blog post:

> Remember the technical problems they discuss in the interview. Think about them later.

This is now bothering me because this happened to me during the interview, exactly as you described in your post. They did not ask me any good technical problems at all in the technical interviews. They only asked a few basic questions about the syntax of `case`, `for`, `while`, etc. I still think they just recruited me because of my high academic scores.

I come from a not so good college where one of these companies is projected as the ultimate company that one can get into during campus placements. I am not blaming my institution for it as it is situated in a semi-urban place where this is the best that they could get for us.

I received a lot of input about this from my seniors. They have mixed opinions about these IT services companies. Some of them say that these companies are good but the majority of them have the same opinion as yours.

My question is: If I choose to not join it and look out for other jobs from startups or other companies, where do you think real engineering is being done? Where can I really learn? How do i get into such companies?

I may not be the best technically skilled guy that they are looking for. I must admit that I am poor in DFAs, graphs, and algorithms. But given a chance and time, I can learn these topics and deliver what is expected from me. I am really passionate about technology and 100% committed in whatever i do. I presume that these startups really look for guys who have done some extraordinary stuff like hacking, patents, and others. But right now I'm building a cloud application as a part of my final year project.

How can I get in touch with these startups and real engineering companies? What do they look for? What are my options?

Nice post! Always knew this, so never went for any interviews with these companies!

I was told by my friends who work at one of these chop shops that you need to stay at least 3 years and keep your manager happy to get a foreign pass. Yes, the part about learning a new programming language in 3 days was true as well.

Good blog post for people who want to learn about software companies like as TCS, Infosys, and Wipro. I appreciate it.

@Susam, I am glad someone is finally calling a spade a spade.

@Harsha, Not that hard. Drop me a note. We don't care what degree you have (or don't) or what marks you scored (or didn't). We simply ask you to write code as part of the interview and evaluate your capability based on that.

Hi Susam,

You did not speak about the pay scale of these companies when compared with other high paying companies. Can you please provide some information regarding this?

Hi Sidu,

How do I contact you?

@Vijay, The companies Susam is talking about (the IT services firms) have terrible pay scales. We are a startup and our starting salaries are nearly double that of Infosys.

You can email me at my first name @ c42.in.

Some points are debatable as mentioned in one of the comments. But as far as doing real engineering work is concerned you are absolutely right.

I haven't joined any startup but I haven't joined any of these three companies either.

In a nutshell, this is a very nicely written blog post! A must read for every engineer.

Thanks for this. This was needed to be said. Here are links to two other nice blog posts along similar lines that you will certainly enjoy:

- https://pindancing.blogspot.com/2009/04/stuck-in-code.html
- https://www.swaroopch.com/blog/5-year-limit-to-being-a-coder-in-india/

I have never worked in any of the mentioned companies but I have heard many tales of horror from my friends who have. Having worked in two good startups (in fact, still at the second one), I concur that a lot of good engineering happens in these small companies which the mainstream media is not familiar with.

There are a lot of good startups coming up in various parts of India. I urge all engineers to consider them if they genuinely want to engineer great stuff.

Having worked for both: an MNC and a startup (in that order), I cannot resist commenting on this.

I agree with all the points of yours. MNCs in India hire engineers and convert them to software-tailors. I was lucky enough to realise this within 5 months and switched jobs.

All that these so called hotshots worry about is billing and bench strength. During my short stay in one of these, there was a point where I was doing work which a high school student could do even though I am a postgraduate in computer science.

From my experience (both during and after the MNC job), I believe that people join them for job security (it takes months before someone realises that you are not working good enough and should be fired) and a chance to earn more money from onsite travel.

Overall, this post is very nice advice for fresh engineering graduates. I appreciate it.

Hi Susam,

I totally agree with you. I have worked for one of these organizations and know how it feel. If you are a hacker, then working at these organizations will kill your soul.

Brilliant!

Hi Susam,

I agree with you on some points. But I would like to make a few points. You said that these organizations teach a new programming language in 3 days! They hav chosen engineers from engineering colleges, so the students which they hav recruited are expected to have sufficient knowledge of the engineering syllabus! These companies are not there to provide these students a degree. They just want to provide them with a basic knowledge of what they have already learnt in their engineering!

For the rest of the post, hats off to you! What a nice post!

Why did you leave HCL, Cognizant, etc. out of it? They too have big market share. Please make some room in the title to include them too!

For an example of a good interview experience, see this blog post by Sarath Lakshman: Zynga India Interview Experience.

Hi Susam,

Excellent blog post! I think the best thing a student can do after graduating is either join a good startup or create their own startup. They will learn more in 2 years than they would have in any other company. I feel that at that age (most) people do not have many responsibilities and they also have tons of energy to work 16 hour days.

In fact I think that learning with open courseware and creating your startup simultaneously is better than doing a degree in CS or IT. But that is a different story. :-)

What you say about training sessions in these companies is spot on. I have conducted many corporate training sessions and my general observation is that most participants treat it as relaxation time. Basically it is time to spend away from real work where they will learn a bit and generally spend time on chat and email.

Great blog, by the way. Your blog is going in my blog reader. :-)

You have revealted the tip of the iceberg. Nicely written!

I wonder how these companies still get clients. Backroom deals and kickbacks?

Everyone! Repeat after me! "Bubble, bubble, burst soon!"

Agree on all your points.

1. Training is given by companies not to train people, but to bond them. In India, it's illegal for companies to bond employees (bonded labors or slavery was abolished centuries ago), so they train saying training costs 2,00,000 INR and you should pay it back if you leave within two years.

2. Engineering: What you study in India in "engineering" colleges is not engineering. After working for three years, I did my postgraduate education in Singapore. Education in Singapore focusses only on your ability to understand concepts. Exams have just 2 to 3 questions in total and you have 3 hours of time to answer them. You have to think and write the answer in the exam hall. They make you think.

   Here is an example question from our exam in Singapore: "Scenario 1: An employee working with you on a project suddenly expresses his intention to quit. With your knowledge of human resource management, how will you convince him to stay with you." An equivalent question from an Indian university would look like this: "Briefly explain the ten techniques of employee retention. (10 marks)"

3. I wrote about our education standard 4 years ago:

   - http://thoughts.mugunthkumar.com/quality-of-education-in-india/
   - http://thoughts.mugunthkumar.com/education-system-in-india/.

4. Culture: Are you aware that some project managers expect money or high value gadgets in return for sending their subordinates onsite? Even more ugly press-unfriendly things happen with female employees.

5. This is the exact reason why I am in a foreign land. Not everyone loves to be in a foreign country. In fact, most don't. But we don't have a choice.

I do not work in any of these organisations but I feel one should understand the difference between service industry and product industry. Both are different ball games and both the industries cannot survive without each other. SAP, for example, develops its products but various organisations implement it according to the need of the clients. This is very business specific and requires analytical and logical decisions along with a lot of engineering concepts.

My question to Susam: What would you call an employee working in a steel plant's floor where most of the work is automated and a so called engineer just monitors the process? He still is called an engineer inspite of being involved in none of the engineering activities.

By the way, the Oxford dictionary meaning of engineering might help: "The application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems."

So what you are talking about is just a difference between a good engineer and a bad engineer.

Rahul,

You asked me:

> What would you call an employee working in a steel plant's floor where most of the work is automated and a so called engineer just monitors the process?

I am not sure how this is related to my blog post. I am talking about software engineering only in this blog post. Perhaps this question is a rhetorical one. In case it isn't, here is what I have got to say.

If an engineering graduate cannot use his engineering knowledge to solve a problem where there are well known engineering concepts and techniques known to solve the problem, such a person probably should not be called or hired as an engineer.

Since such people are plenty in Infosys, TCS and Wipro, I believe a young engineer would learn less in these companies than they would by joining startups and companies with a strong engineering culture such as Adobe, Microsoft, etc.

Hi,

You just read my mind completely. I am actually one of those kind of people who joined Infosys without any clue and then after 1.7 years, a few days ago, I sent my resignation.

To add to the usual misery, they exploit employees! Managers order us to come on weekends and stay late nights as if they are commanders! I have never listened to them, so my name is always on the hit list. :)

Many people who are so dedicated and committed are wasting their time 14-15 hours in office for the low salaries these people pay! With the same dedication, they can reach heights if they were in some other better company. But they are afraid. They want security, the biggest disease in India right now!

A really interesting blog post indeed. Here are a few points I would like to put forward. Also please bear in mind, I in no way endorse any of the firms.

1. Software industry by its own nature is really young. The compliance regulations and processes are not so filtered, at least as of now, to be called engineering. Most of the engineers in India are lured by the instant gratification, i.e., good salaries, onsite travel, etc., rather than learning. The services sector provides a good platform to launch one's career. I am talking purely from an average engineer's point of view. Even you might agree that very few of us treat engineering subjects seriously. That is why to the unsure and clueless, I think these companies provide a platform to launch a career.

2. Concerning the non-IT/computer science background people, from my personal experience, it provides a great learning experience, at least the training part. I was computer illiterate as far as programming is concerned. Whatever I learnt at Infosys was a huge help while finding on campus jobs during my masters program while writing programs to solve engineering problems during my masters (most of which was C++). I am not trying to blow my own trumpet but on the basis of the skills learnt during the training (though it used to be only 3-5 days per language), I managed to learn new stuff, keep myself updated and later apply the same while taking part in competitions organized by software giants like Microsoft. It also depends on personal motivation, how you learn and later hone it to apply elsewhere.

3. Now coming to strictly IT/computer science people, even I agree if they want to make sense of their field as engineering, then they should not join these companies. Instead, join a small product company which designs simple websites but don't get dragged into the hell of the software service industry. If onsite travel is what motivates you, then go for higher studies instead if your financial conditions are stable and apply for jobs at product companies later.

4. We are innocent at the age of 21-22, so let us not forget that we need to learn by experiencing things ourselves. From what I have learnt in life so far, even a household problem can become an engineering one. A true engineer I think is one who uses his/her reasoning to come to conclusions and design solutions which best fit the situation by optimizing resources.

Oh and by the way, I joined Infosys because I was mesmerized by Narayana Murthy. I know it was naive but it was worth at least trying.

Anyway, I don't want to justify any reasons anyone has for joining these firms. I am just saying its not possible to take the correct decisions when you are fresh out of college. But yes, I would rather double-check my motivation to join any company, not just these. That, I think, is possible for everyone.

Your post made me think a lot, so thanks for writing this post.

Thanks, Susam, for an excellent piece of writing and the follow up discussion.

Society gets what society deserve. Problem does not lie in TCS, Infosys, etc. They are service providers. Nothing to do with engineering. They built a system where a donkey can win the race and bring laurel to his CV, status, family, etc.

You are right in saying that it is not good to be in Infosys, TCS or Wipro if you want to explore engineering. It is good if you want name, fame, money, etc.

Susam, you lose one point though. Your post confuses a fresh engineering graduate about what they should do. It is not their fault. It is the fault of the system, the seniors and the elders.

1. Training: Even big brands provide it, smalls one don't. It is the fault of trainee or trainer or facilitator if the outcome is negligible.

2. Engineering: Who cares at all! Taking degree matters and subsequently job and money. Education level is at its nadir. People can't make Mona Lisa. They just scan or copy-paste. Attitude of society towards scientific stdudies has to be blamed for this as they don't encourage students to take scientific/engineering challenges.

3. Engineers: Organisational stucture and policies of these three companies can turn so called engineers into great IT brains of India. Ha ha.

4. Culture: They become earner after joining any organisation. They got freedom to do anything up to any level. Level of intensity may differ but the situation is grave.

5. Onsite: Knowledge and skill does not determine who will travel onsite. Only approach matters and internal politics.

Hats off to Susam and other participants of this lively discussion.

There is a very interesting pattern in the long debate in the comments here.

The people who disagree with this article are either still working in one of these three companies or they have never worked in one of these three companies.

Those who have worked in one of these three companies and then left it to join a better company are the ones who agree with the article in their comments.

There are two implications of this pattern. Those who disagree with this article have seen only one side of the software industry. Those who agree with this article have seen both sides of the software industry.

I have to disagree with your tone of trying to guide all. :) Let us say that your brand of engineering is trying to answer core problems. We require both the core and the periphery problems answered. Exactly why we have fewer of the likes of Google and more of Infosys. Although I have my personal preferences that slant with your views, philosophically, your answer is not exactly correct.

I too have a similar story. I worked in Infosys for 2 years, got caught in the bureaucracy, and then the only option to get out of the vicious circle was to quit. I left Infosys to join a startup. I promised myself that I would never work for Infosys or a similar company again.

Kalyan,

You have missed the point of this blog post. Let me clarify it once again. This blog post is not about whether we require both engineering and non-engineering problems or why we have fewer companies like Google and more like Infosys.

This blog post is about which company young engineers should join so that they can make better use of their time at work and learn more engineering.

The commenters who said that they have met some good engineers in these companies, I have a question for them. This blog post says that the number of engineers is very less in these companies. What do you think is wrong here? There are some good engineers but there are many bad engineers. So it is possible that you had colleagues who were well respected but the majority of colleagues in Infosys, TCS and Wipro are not like that.

I worked in one of these companies and I will tell you what kind of things happen in these companies.

1. People insult each other in bulletin board. I am not kidding. This is true.

2. Guys leave useless and flirtatious comments on blogs of girls in the internal blogs.

3. You have to compulsorily stay 9.5 hours in office every day even if you have no work.

4. In many projects there is no system of code review. How will engineers learn from their mistakes without code review?

5. File check-in is done not using standard client side tools but some crappy software created by the internal IT team. The crappy software is an interface between CVS and desktop. You have to reserve names for new files you have created one by one, then upload them one by one, upload each modified file one by one via a web-based interface. It takes roughly 3 hours to check in just 10 files.

I agree with the author that these companies have one of the worst cultures.

I started my career here and after that I worked in 3 more different companies. All the three were better than these companies. At least I can check in code properly where I am now. At least I can disagree with other people in company bulletin board without fearing that someone will abuse me or insult me. Infosys, TCS, or Wipro is an absolutely bad place to start your career if your aim is to learn good programming, learn good work culture, and gain good knowledge from good colleagues.

Kalyan Suri, Narayan Babu, etc.

I have one simple question to you people who are commenting that fresh engineering graduates should join Infosys, TCS, or Wipro. Why? You guys are not giving any good reason that is important to us. You guys are simply giving only philosophy like someone can join Infosys and similar companies to change the system, improve its culture and engineering practices, service work is also important with product work, etc.

Fresh engineering graduates like us are not interested in philosophy. We want to use our knowledge, do good work, and earn money.

Why should they join a company to change the system and improve the culture of the company? Are they social reformers? Are they the managers of these companies? Should they rebel against the CEOs and the HRs of these companies to create a new culture?

I am just not able to understand why you guys are asking that someone should join these companies and work with people who don't know how to do proper engineering and force you to follow software practices?

In short you guys tell me why any fresh graduate should join a company to do all these philosophical and cultural improvements instead of trying to join a company where they can do proper engineering work, learn good coding and engineering practices from senior engineers, and also earn more money.

I agree with the author. I am new to the industry and got placed in a company similar to these three (don't want to mention the name). These guys have recruited such people in campus that they do not deserve being called engineers at all. Kudos to the post.

Quite impressed by your article. What you have written is the reality. That is what is happening in these so called IT firms. A bulk of fresh talent is being wasted in the air-conditioned offices of these firms. Nowadays, good stuff is available on the Internet and social networking websites about the work in these IT firms which helps software job aspirants to take right decisions for their future. I have the same suggestion to all the job aspirants: Dont run in the rat race. Just choose the job that is in accordance with your skill, so that you can get an opportunity to explore and enhance it.

Very nice post. I second the thought that IT companies are wasting loads of talent by hiring then and utilizing them as mere resources. But the flip side to this is that the young talented IT folks should also realize this. They have to take control of their careers. If they are focused enough, IT companies should just be a part of the journey, not the destination.

I too am serving in the IT sector. I along with a couple of friends have launched a community website for IT professionals and shall refer this blog post there too. You can find plenty of similar discussions there. The URL of our community website is http://www.softkonnection.com/. The discussion can be found here.

@Susam, You rocked in this post! I am a second year student and having almost no knowledge about the environment in these companies, I was shocked. I already knew that they make you work like peasants but other points you mentioned were completely new to me.

This is a great eye opening post. Loved your style. Comments too were fascinating.

There is a huge misconception about the software industry in India, especially among Indians. That misconception is that the software companies like the ones you mentioned employ smart people and that their main business proposition is that they make the Indian "talent" pool available to clients overseas. The fact is, these companies help fill up the clerical jobs that are just too expensive to do at the client's end.

The British designed our education system to produce clerks. We are continuing their good work and companies like these are filling their coffers by making use of this pool of clerks. They do a great job of glorifying the work which they give to their employees, by giving them glass buildings to sit in and providing them with a conducive environment to meet their future spouse, so that it creates a better lock-in.

Well said! After reading your post, I have changed my decision of working in these companies.

Nice post. Your post is depicting the reality. Unfortunately, the people working in these organizations run away from the truth. It reminds me of the classic case of ostrich which tries to hide its face from the hunter. Let me introduce myself. I have an experience of 5 years in the IT industry. I have worked in Infosys. Your descriptio of these companies is absolutely right.

In my first organization (not Infosys), I started facing discrimination from my manager who was an electrical engineer. She was totally useless. She had never heard of Norton's theorem. I quit that organization and landed in Infosys.

Infosys was a nightmare for me. Half of the people there could not construct proper sentences in email communication. None of them did any engineering. Calling these people engineers is nothing but disrespect to the word "engineer". These people didn't even know the difference between HTML and XML. The middle managers are too bossy and too arrogant. They turn the lives of employees into a nightmare.

Continuing from my previous comment.

There are some trolls commenting here and defending these companies. I want to tell them to please stop calling themselves engineers. The title which is appropriate for such people is "softicians", just like "technicians".

The type of emotive responses these commenters are posting come from people who know the reality but are hiding away from the facts. This blog post is truly accurate. You will not find any engineering happening in these organizations. If someone has to be an engineer, he would use all the formal methods of engineering. In computer science, it includes modelling, finite automata, performance measurement, etc. Such things do not happen in these organizations.

If you are interested in engineering, better to go to some organization where engineering actually happens.

Personal experience: Did a contract in Germany and part of the solution involved working with Infosys guys. They were "cheap" and a dime a dozen.

Infosys focuses on quantity rather than quality. A great deal of the time they'll ship over many developers to do 1 developer's job. At the same time they'll ship over an organizer who is responsible for coordinating with the Infosys guys - like an onsite PM, except without any power.

The guys we dealt with were all terrible communicators, just there for the money, and not very skilled. They constantly over engineered solutions, and gave a lot of "It's not possible" answers.

The actual product we worked with was Remedy, and I have to say it was a joke. Extremely cumbersome, most likely built by the same sort of monkeys we had to deal with.

All in all, it's not an experience I want to repeat.

Susam,

I understand where you are coming from. We need to realise that these IT companies are businesses whose stock is people (like toothpaste is stock for Hindustan Lever). You have stock in various levels of finish. Some might be work in progress (in training). Some might be ready-to-sell. And the business will always take good care of the stock (making sure the toothpaste stays at the right temperature for example), so they can sell the stock (market the skillset).

Big IT firms treat its employees like cattle and no one realises it because the cattle is well fed and the butchering (of talent and free thinking) happens over a period of 20-30 years.

Hi Susam,

I went through your article and couldn't agree more on most counts. When I completed my studies and 90% of my batchmates were placed in swanky air-conditioned offices with pretty girls around in good cities, I always wondered what went wrong with me. But soon, in 5 years of time, I realised what most of these software professionals do: cribbing, cribbing, and cribbing, all the time!

No offense meant to anyone but trust me when I say that I started my career in a very hard way. Today, having woked in Volvo and being in Hyundai, I can tell you that most of the software professionals start living in such a small shell that they get very easily worked up by real life obstacles. I mean their lives becomes so small: bitcing about collegues, gossips, pretty girls and onsite travel. Is this what we were meant to be while we were students?

As for the engineering part, Susam, even for me who is in a full fledged proper technology company I must say it is challenging to do what you really want because you always have to balance between what you want and the money you need to survive and how you get it. But on the whole, a good observation.

It completely depends on the personal interest of the individual. There are a lot of open source communities to showcase engineering talent. But for making money, your need to work somewhere initially in companies like TCS. I believe talent without money is useless. There are many people who started their career in TCS and went to Google by showcasing their talent in open source communities.

Susam, well done and well said. I agree with everything mentioned by you. Good article. This is an eye-opener for engineering students.

@Susam, Absolutely correct. People who disagree belong to one of these categories:

1. Managers in Infosys, TCS, Wipro, etc.
2. Those planning to write GRE/GMAT/CAT.
3. People who need to get their heads examined.

There is no fourth category.

For people who really want to do good work and want to find great ppl to work with, I am presenting a list of companies in a categorized manner below. I hope it helps CS/IT graduates. This list is based on my interactions with friends and colleagues regarding the places where they work. In the list below, product based startups fall between levels A+ and B. Here is the list:

- Level A+: Google, IBMRL, HP Research, Zynga, and RSA. These are the best places to be in. This is where the most talented engineers work.

- Level A: Intuit, Microsoft, Yahoo, Amazon, and Flipkart. Sometimes the work is really of A+ level but sometimes it is not. I know many will disagree but some of the folks from these companies will agree. This is where the cream of the talent is.

- Level B: Thoughtworks and Robosoft. These are difficult to get into but not as difficult as those in levels A+ and A. They are not always engineering focussed.

- Level C: Aditi, Persistent, and any outsourced product development companies.

- Level D: Dell, Verizon, Qwest, Bank of America, and any US company which does not sell software but sells phone lines, credit cards, etc. The auality of work is same as Infosys, TCS, and Wipro but there is some chance that you might meet someone intelligent here. Pay is slightly better than Infosys, TCS, and Wipro. This should be the second last resort.

- Level E: Infosys, TCS, Wipro, Cognizant, HCL, IGATE, Patni, HP, Sonata, Covansys, Accenture, and IBM. These are the worst. You can send your mother-in-law to work here.

In all of these companies, Patni is probably the worst.

This is the best article I have read so far.

Hi,

I work for Accenture and while the culture and software practices seem to be better, overall we don't work on any real computer science problems. If you didn't have an algorithm or puzzle round in your selection process, be assured you aren't going to face any computer science problem there.

I knew what piece of cake I was getting for what price. I go to office, have 9 easy hours and comeback with a salary that will support me till the time I jump into the real race! That being said, I know, I am not an engineer because I don't do anything new. But I am a smart graduate who earns 30,000 INR per month without deserving it!

Susam,

I agree with your post. If you really want to make your career path strong, then small companies are very good for freshers. The reason behind it is that those companies provide complete exposure to all the employees. You are included in all the phases of software construction, so your knowledge and skills increase. Obviously, then you can switch to any MNCs which have their own advantages like higher salaries.

My pedantic contribution.

1. Yes, I can learn a useful amount of a typical programming language in three days. That doesn't mean Haskell, but it does (and did) mean Pascal, Modula 2, Ada, C, C++, Java and C# among others. Usually, that mostly means how to spell the same old concepts, with very few new semantic ideas. The new semantic ideas can often be considered "special purpose", and can best be learned later, as needed to do the job. Learning the first three days worth in a training course (or from videos) is useful because it's just so damn boring - paying attention throughout the whole thing is impossible, so you need the training to carry on while you're 90% asleep or else you never finish. 10% awake is more than enough.

2. Regular expressions can test for balanced parentheses. They can even test for any depth of balanced parentheses, so long as you know the finite maximum depth you need to test for when you construct the regex. I don't claim it's practical (context-free grammars and push-down automata exist for a reason, even though most nesting isn't that deep in the real world), but this isn't a sane argument, it's pedantry. ;-)

Good points Steve but remember that you need to be fairly interested in programming and technology to pick up a new language in 3 days of training. Most programmers I meet in the software industry aren't so interested. Those who are and have the ability to pick up a new language in 3 days don't work for Indian IT outsourcing firms. :-) So the first point of the author is still valid. Those who can pick up a new language in 3 days should stay away from these companies.

If you really want to be pedantic, you shouldn't assume that an upper-bound to the depth of nested parentheses is known. Perl-derived regular expressions which support a lot of fancy features including recursive patterns can solve the problem for an arbitrary depth of nested parentheses but they are not true regular expressions. They are extensions to formal regular expressions. Moreover, POSIX BREs are incapable of handling recursive patterns and they cannot test for balanced parentheses.

As a US citizen with a "name brand" PhD in Engineering, I can assure you that things are much the same stateside. US corporations like LM, GD, and Shell (I have worked for all of them) hire technical talent and use them to do menial clerical jobs.

Yeah, pushdown automata should be used to detect balanced set of parentheses, not regular expressions because they are finite automata.

I totally agree with the author of this post. I have a master's degree in computer science from the University Of Calcutta. I had a university rank in both of my bachelor's degree studies and master's degree studies. I am working in one of these three companies. I have done three months of training in the company. I have not seen a single line of code so far. I have done my training well and I got to learn a lot but what I am doing now and will continue to do for the next two months is translating some documents from one language to another. I am also supposed to do some support work (no software developement at all) and although I have no work to do, I have to sit in front of my machine for 9 hours a day. This is an unproductive use of a person who has researched on "Distributed file system and parallel computing" in her final semester.

My seniors who are not all from CS/IT background, felt that it is very easy to learn any pogramming language in 3 days. I guess what they meant by "learning" is learning only the syntax of the language.

I am very upset as I can't utilise my knowledge and can't learn anything except some syntax. I want to leave this job and want to sudy hard for getting into research. Maybe I have to stay unemployed for a long period. My family and I can afford it now but it's not possible for every individual. I have to turn myself away from all the luxury I've been used to for the past six months. But I want to do something which is relevant to what I've studied and learnt. Being creative at my heart, I can't do this support job anymore.

My advice to all the fresh engineering graduates who want to do something in engineering and doesn't need money immediately is to wait and think before you join one of these companies.

Nice work with this blog post. I am going to share it on my college intranet portal, so that at least my juniors come to learn the lessons that I learnt much later in life.

Hats off to you for the systematic approch of yours to make your points clear.

I was jobless when my friends were getting selected in these companies. In those days, they used to advice me to at least attempt the selection process of these donkey pulling companies. But now that I work for a reputed engineering company, they do not have anything to say to me.

If I had come accross this type of article in my college days, then probably it would have 6 months of my life. That is why I want to share it on mine college intranet portal.

My opinion on the points you have made in this post:

1. Training: Organizations have to show evidence of training to their clients to get projects. It has nothing to do with providing knowledge to engineers. You can't feed software engineering into any individual in 3 months which normally takes 4 years to imbibe.

2. Engineering: It depends on luck whether you get a good project which truly tests your engineering skills or not.

3. Engineers: It's not the company's fault that they do not have many engineers. It is the institutions in which they studied that couldn't produce engineers. Not everyone has the capability to become an engineer. If the institutions aren't right, even the brightest could fail. Good institutions can make the dullest shine.

4. Culture: It depends on your circle of people who you work with. You will always find the culture about which you complain. Even small companies try to get the most out of you, make you work overnight, weekdays, ask you to keep your mobiles off, do not let you access internet, etc. Small companies do not have the best culture but they are not the worst.

5. Onsite: I agree with what you have said about this.

I worked with Infosys 3 years ago. I have also worked at client side with Cisco and Microsoft. I currently run my own small software company in my hometown. After working in all these companies, I came to the same conclusion as yours for the question, "Infosys, TCS, or Wipro?" My answer too is, "None."

For guys and girls who read Susam's post and then took the pain to read this comment, do not worry if you are not able to get into one of these MNCs or if you do not get what you deserve, be it in terms of project or salary. There are many small software companies out there which apply engineering. Go for it. Don't worry about the pay. Think what would happen to you if you are put into some bullshit maintenance project for a year doing some mere repetitive stuff. Your mind would accumulate rust. When the project is over or you switch companies, you will no longer able to perform the way you could have when you were a fresher. In case you feel stuck in a project, take a bold decision and inform your manager to switch to another. Yes, you can shout and you can pick the project you want.

Sahil,

I agree with most of your points. But you also said,

> Culture: It depends on your circle of people who you work with. You will always find the culture about which you complain. Even

It is true that the culture depends on the circle of people who we work with but it is not true that we will always find such bad culture elsewhere.

I started my career in Infosys and truly the culture was abysmal. I did see employees attacking each other personally with profane language in the internal corporate forums. After I left Infosys, I have worked for many other product companies. I have not found such bad culture ever again in any other company.

This is really a good post for me. I am in the 3rd year of engineering studies. It gives me an insight into what happens inside these companies. I want to put my knowledge into use at work, so I must stay away from companies like these that would kill my creativity and problem solving skills.

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

I have worked for a decade in TCS and longer in the industry overall. I would like to post a more inclusive response to this issue.

The fact that 300,000 people are working in a functioning organization is indeed commendable. They win projects worth hundreds of millions of dollars, add value to customers, and create skilled workers in the industry. Let's give them the due credit as well.

Having said that, these companies are definetely not for the best brains. The poor salaries they offer attract poor talent. For example, Google offered 197,000 dollars to IIT Kharagpur students during campus placement. That is close to 1 crore rupees. TCS also went to the same campus and offered only 3 lakh rupees of salary. :)

But some exceptionally smart engineers do end up joining these low paying companies and hate these organizations, their culture, work practices, and opportunities for development. This is a hard reality of the Indian IT services companies.

I agree with most of the points that the blogger has made in this post. Forget about engineering, they go and recruit B.Com./B.Sc./Dilpoma degree holders and employ them as software engineers. The bottom line is if you are a serious engineer, look for another job. Don't get stuck doing data entry in the Indian IT services companies.

The most demeaning part about working in these companies is indeed the culture and the senior employees who never deserved to reach their positions and draw 25 to 30 lakh rupees of salary. They are producing demeaning human values in these companies. They are not involved in any productive work. I am saying this from my first hand experience.

An open message to any CEO who is reading these comments. It is easy to replace a good worker but it is very difficult to go back to a good culture after it is spoilt. Right now the rotting culture of these companies is going to an abyss with no possibility of return.

I joined TCS thinking it to be a great Tata company and continued there for a decade. The company has detiorated to rock bottom. Let me be absolutely candid here. It is a place for below average people, who are weak technically, lack ethics, can easily compromise with their values, and fear proper competitive firms. As a result, after few years you find yourself in the middle of highly manipulative and insecure people who are not just incompetent but morally degraded as well.

My advice to all young engineers is to work hard, target a smaller (even a startup) company and do something good for their future. There is nothing left in the "Tata" name of "Tata Consultancy Services". TCS is now good for BPO/BPS executives, not for engineers who want to solve engineering problems, create solutions, and build something good for their customers, their country, or even themselves.

Well said! I'm glad there are people who think like me. It is six years after you wrote this post. This looks more like a prophecy now. With all the H1B visa curbs by Trump, we can see engineers switching to companies that offer them more value. We hardly innovate anything in this country. We need more contributions from engineers now more than ever. It's time for Indian software engineers to innovate and contribute something significantly.

Big fan! Your post had a big impact on me in my college days and IMO got me on the right career track.

Your 10 yr old post is spot on and refreshing as it acknowledges reality.

Your post was an excellent read and helped me navigate companies when I graduated. I knew what to avoid and that saved me a lot of time and effort. Thank you, keep 'em coming.