3

Background:
I've worked in an Indian startup where the engineering VP was directly in control of his team of 11 members. Even if he appointed team leads, they never had any decision-making capability or real responsibility as a lead. He used to give people "excellent" ratings for more than a year, and when he wanted to fire the same person, he'd give them one bad rating and put them on a performance improvement plan and fire them. He was less qualified than his subordinates and didn't know good software practices. He didn't like it when the product team tried poking around about why our implementation was taking 9 months, when it should've taken 3 months, and he would hide details from them. Toxic culture. I left.

Now I've been hired as a consultant by a company that's almost gotten out of startup mode and has a proven product. The problem is, the manager whom I report to, is similar to the earlier VP. He does not know good software practices like design patterns. Code is written haphazardly. There are barely any test cases written. No code reviews, so developers end up writing code where a single function can span 400 lines and have variable names like "lki". Instead of using the IDE, they still run programs from the commandline. The manager takes all decisions. His team leads do not know full details about the work they themselves do (even though they've been there for 5+ years). He expects everyone to follow only what he says. This company is very particular about rules and audits etc. This is what made me think that things would be well organized. But seeing the code, I see it's a nightmare.

Before joining, I had mentioned that I could help with better software practices, and he agreed to it. But now he says I'll be given that chance "later on". Right now, he just wants me to use the code the way it is, because they have deadlines to meet. The product is scheduled for delivery a year later.

My questions:
Is it like this in most companies? Where the "team lead" position is given just for the namesake of it, and the managers do not invest any effort in ensuring that the employee learns and becomes a better software engineer or manager? In such companies (where the team leads are just puppets and the managers themselves are unaware of good software practices), is the promise of "later on", just a carrot dangling on a stick?
I'm asking because I need to figure out whether to stick around and "just get work done", irrespective of how the code is structured, or whether I could hope to look for companies where things are better implemented and I have a chance to grow in terms of knowledge and managerial skills.

4
  • You said you've been hired as a consultant. Do you mean a full time position, or just to do a one-off study? Are you consulting on business practices and organization, or do you just mean as a high-powered developer? Nov 13 '21 at 17:23
  • It's a full-time position. I'm a developer. I'm surprised at the downvotes for a genuine question.
    – Julia
    Nov 13 '21 at 17:24
  • I'm an independent consultant. Been working at this company just a few months. Contract ends in a few months. The agreement was that midway, if they or I didn't want to work with each other, we could part ways as long as I give them a few months to hire a replacement. The decision date is coming up soon, and from their responses, it looks like they are trying to hire me as a permanent employee.
    – Julia
    Nov 13 '21 at 18:00
  • It happens a lot but is not universal. Try the best you can to look for clues of the "get it done" mentality in future interviews. Might be okay to ask directly where they feel they are on the spectrum of "get it done" vs "clean up the parts the customer can't see". Most shops know perfectly well where they lie. Since you're consulting with not too much time left, IMO give them what they want, and move on when you can, without fighting a battle that can't be won.
    – Pete W
    Nov 13 '21 at 18:53
6

Is it like this in most companies?

No it's not. Most companies work much better than this. What you are describing is a dysfunctional and unsustainable model. The "Engineering manager" cannot keep track of every piece of code in detail, and this means he will make bad decisions, but his team will follow them even when they know they are wrong (because that's what they've been told to do.) As the size of the company grows this will start to fail. The manager will become the bottleneck, as developers wait for him to make a decision as to what they should do, but he is too busy to make the decision. These problems can start as low as 20 developers.

Having said that, it's not an extremely rare approach, unfortunately. As you move around companies it's likely you will find someone like this at some time.

Your implied question:

Will this change?

Probably not. The problem is not the stability of the product, the problem is the manager himself. He is clearly a controlling personality, and is unlikely to change over time, even if pressured or ordered. I encountered a manager like this, and the company realized there was a problem. They tried to sort it out by promoting him to "vice-president of development" and appointing another person to do the day-today-engineering management, but it didn't work. He insisted on making the descisions all himself. Eventually the company fired him. I expect that is the only way the company will change.

I need to figure out whether to stick around and "just get work done", irrespective of how the code is structured, or whether I could hope to look for companies where things are better implemented

If you don't mind working in a dysfunctional company, and risking that it will fail, then stick around. But an environment like that can have a very bad effect on your productivity, and while you are there you are not learning good development practices. It will be easy to find a company where this is not the way of working. Try literally anywhere else. If you can't find one in two tries - probably one - I'll be very surprised.

3
  • 1
    Do remember that this is in India. The issue I see ahead, is that if I accept their offer of taking me on as a permanent employee, if the product gets stuck or fails due to it being so muddled up, they could make up an excuse about it being my fault, and fire me. Their Glassdoor review says that they give negative feedback about old employees. Or, perhaps the right thing to do would be to leave after a few months, when the contract expires, and work remotely for a job outside India, where hopefully, they respect work life balance and have good software practices.
    – Julia
    Nov 13 '21 at 17:37
  • I'm not very familiar with Indian practices, but in any case my advice would be to leave as soon as possible. By the time the manager had been fired in the story above I had already left, and found a position with excellent management. My new company knew the old manager and specifically asked if his practices were the reason I left. Nov 13 '21 at 17:40
  • The first VP I mentioned, left the company because he wasn't sure of the next round of funding. The CEO then spoke to the CEO of the other company and brought the VP back because the employees thought he was good, and his replacement didn't speak kindly to them, like the VP used to. In the current company, even HR and other employees think the manager is good at his job. The VP and this manager are good at talking their way through things, and it looks like the companies just want someone who can keep employees under control & get work done. I've seen many more like these retaining their jobs.
    – Julia
    Nov 13 '21 at 17:53
4

No.

There are companies that do not do this. Consider inquiring into the work and technical environment before you hire on for future companies; this one won’t change.

4
  • 1
    Could you suggest what questions I could ask? The manager is an expert at deflecting and giving vague answers.
    – Julia
    Nov 13 '21 at 17:23
  • 2
    Try to be interviewed by someone not the manager. Then ask them how much autonomy they have to make decisions. If you are not interviewed by someone other than the manager, that's a red flag. Nov 13 '21 at 17:31
  • 2
    I was interviewed by one of the manager's yes-men. During the interview he himself muttered that he wonders why he was asked to interview me, when my skillset was totally different. I was also interviewed by the manager's boss, who said something that made me feel that the manager was hiding project details from his boss too. Red flag. I know. I don't need to ask about the autonomy. I've already seen they don't have autonomy.
    – Julia
    Nov 13 '21 at 17:42
  • 1
    @Julia: Clayworth was referring to asking queries in your future interviews in other companies.
    – John David
    Nov 13 '21 at 18:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .