When I was a kid I really liked engineering a lot. My father was a chemical engineer and I thought building things was very cool. I thought I would be building rockets, robots, and all of that stuff when I grew up. But having worked in the industry for about 3.5 to 4 years, I can say that the biggest hurdle to cross in my career is working with other people in my team. And I am at this point of my life where I am really really hating my job a lot. I switched jobs, companies it's all the same. (1) You work as a team, you build on top of what others have built. If they miss a corner case, your application which depends on their code will crash in production. This is frustrating as hell cause it's very hard to think of some of the corner cases when you are dealing with other people's code. (2) Every person has some ideas that are great and some ideas that are shitty. People tend to think that all of their ideas are great. People tend to shove their stupid ideas down the throat of other people. If you are a senior member of the team, you can tell the other person to fuck off and tell them that their ideas are dumb and stupid to their face. But if you are a junior engineer, you pretty much have no option but to build whatever piece of garbage that some dumb-ass senior engineer wanted you to be built. Not every senior engineer is an expert in the field. Some of these so-called senior engineers with 20+ years of experience narrowly dodged getting fired several times in their careers. If age and Wisdom were co-related, all of the geniuses in the world would have been 70 or 80-year-olds. (3) A lot of times, it's not about being technically competent that makes one successful as a software engineer. Almost all of the time, it about having a social IQ and being an obnoxious loudmouth. A lot of people's strategy in meetings is not to let the other people talk. They keep talking over other people to stay in the limelight. To the bystanders, it looks like whoever talks the most is the most knowledgeable person in the team. (4) People do things that are good for the career as opposed to doing things that are good for the team. This means, portraying perfectly good functional software in a bad way just so that they get to reinvent the wheel, re-implement a perfectly working software and use that to get a promotion or whatever. This is fucking annoying as hell to whoever is on-call or whoever has to maintain the new software. On the other end of the spectrum, there is decades old perl, bash scripts, C98 programs etc. that nobody knows what they do and nobody dares to modernize them. And they are the ones that actually need to be modernized. (5) People are selfish. As an individual software engineer, you cannot know everything about everything. Someone at some point has to sit you down and tell you how things work. But people don't share information that freely. They act like your questions are stupid, you are stupid, that you are wasting their time by asking them questions. Cause at the end of the day you know, if they tell you too much, you will know all the dumb things they did when they were building that system. So the default strategy of most people is to keep other people on a need-to-know basis. This is wonderful if you have been on the same team for 10 years or so. It is incredibly painful if you are a new person to a team. (6) People get senselessly defensive over minor things to protect their ego. A person in my team is a C++ expert. He is really very knowledgeable about C++ and about Solaris operating systems. But he is a complete knob when it comes to Python. He would write code like this: elementFound = false for i in range(0, len(arr)): if arr[i] == targetElement: elementFound = true It's painful as hell to convince him to change his code when you are reviewing his Python code. But it is even more painful when he turns around and harasses you to change your Python because he does not understand what you wrote and thinks that makes it unreadable. (7) Then there are stupid Biases and shit that people have. There was a guy I know whose father was an assistant prof in a college who went to Princeton. He literally could not write SQL for simple tasks like inserting a record or deleting stuff from a table. People used to overlook every stupid thing he did for the first 8 months or so when he was a fresh out of college graduate. Eventually, everything he put in production started crashing left and right. Even the most basic things that he was asked to build had bugs in them. He was eventually let go after about 2.5 years. But the first 1 year in that job, he was treated like a god because of his stupid Princeton degree. If you are the stereotypical person in the industry, i.e. Indian with a master's from a tier two college in the US on an H1b. People will treat you like shit, till you start questioning your own self-worth. I can go on and on, but essentially what I am saying is that a lot of the time I feel like my job is to do social engineering rather than doing actual engineering. It's one thing to adjust once or twice. But you have to put up with this shit for months together, it starts to take a toll on your mental health. I am starting to understand why everyone hates Mondays. The things I care about today are getting a green card or getting to 250k TC or some superficial crap like that. When I was 16 or 17, I used to idolize Da-Vinci. I was genuinely interested in engineering. But having worked in the industry for the last 4 years or so, I feel so disenchanted with this profession. It's so depressing. If you ask me today what is the one thing I hate about my job the most, it is working with other people.
Hey welcome to the real world, it sucks but you’re gonna love it.
I’m excited for the reunion !
Don't worry, it only gets worse!
Whatever humanity has achieved it has achieved by working with people in teams. May be you should discuss with your father about this too, as I am pretty sure in chemical engineering teams would have mattered more ( in software one can imagine building something useful alone, but it’s hard to imagine that for chemical engineering). If you really like working alone, may be mathematicians like Perelman can be your inspiration. But I believe if you want to build something you will need to navigate through all this. May be that’s why leaders are paid more in general, as it’s a hard thing to do.
Sounds like you just had a lot of bad luck with your teams. I think everybody had the same problems at some point, but I also had the exact opposite situation where everything is great and I really like my team, work and how we interact with each other. Your view is for sure not something one can apply to all of the industry.
Conceited, self aggrandizing, egotistical, proud beyond reason. Almost everything you described is not the software engineering industry, it's life. Every career has people, every career has people with personalities, every career has people with personalities that might not mesh with yours. There is nowhere you can run from this except to leave civilized life altogether and go become a mountain hermit. The problem is you are immature. You don't have control over your own emotions, you allow so many things to bother you, so many small things that truly aren't nearly as serious as your post has made them seem to be. There are billions of people in this world, many of them are not as smart as you, but many of them are way smarter than you. The problem is you only look at one side of that equation and don't realize that every single criticism you've offered is something people smarter than you would probably think about you if they had to work with you. Get over yourself. You don't understand humanity, it's not a career problem. You're emotionally and socially inept, and entirely unable to function within the larger group that is the human race. Your inability to function within a team is a stain on your intelligence. You don't have what it takes to ever be a leader, this post says as much. And even then, you're a pretty poor follower, since you don't have the ability to see the value of the entire body, only your little small part. Do yourself a favor and gain some perspective. You are the problem, the moment you understand that, the happier you'll be.
When i first read this comment, i thought it was heavy handed and unnecessarily harsh, but then i re read the initial post and realized it was honestly spot on. The issues you described are literally all facts of life, and they apply to you as much as they do the next person. You need to learn to deal with those issues and learn how to work in a team. Teams have different opinions and personalities, and they’re not always perfect. People** are not always perfect, and nor are you. But we are social creatures, and success is often determined by our ability to interact with others. Understanding this will take you far.
This ^
You radiate positivity and wisdom man. Thanks.
LOL. I love how some people think being an engineer is a status level that sets you apart from normal human problems.
I am still figuring out what this has to do with being an “indian” software engineer 😊. Everything you have written applies to all..so what am I missing?
I think he wanted other Indians to comment because it’s more relatable to OP.
The 7th point I added, address this. Originally I was going to vent about how the Indian education system doesn't actually prepare you for real-life problem-solving. But I felt it was too much for a single post.
Currently going through similar shit as to what you pointed out in (2). The PE wants us to “rewrite” a perfectly working system in language A in a new language B, just because they cannot and dont want to understand language A and address tech debts.
Tech Industry
Yesterday
206
[POLL] If you are looking for a job, how is your job search going?
Tech Industry
Yesterday
823
Is meta really worth the wait?
Tech Industry
Yesterday
738
PM is irrelevant role and will die in next 2-3 years.
Tech Industry
3d
31319
What happens when most of your team is Indian?
Ask Blinders
Yesterday
1950
How big are the balls of Google to lay off thousands and then do 70 BILLION in stock buyback?
The game isn’t going to change, learn to play it