18

Background

One of my colleagues joined my company a year after me, on the same level as I was. He and I initially had a good working relationship, though his code quality is sometimes substandard. However, our relationship has deteriorated in the last few years, as he appears to be too ambitious to work collaboratively with others.

He is task-driven, promotes his own work to middle management, and doesn't acknowledge the work of others. His self-promotion is better than his work quality. This has produced some tension and polarisation within the team. Further, he works in a dominating way, valuing his opinion more highly than that of others.

As background context, I am also disappointed that he was promoted instead of me, last year. I acknowledge that being passed over for a promotion is a simple cause for ire towards a colleague. Yet I do believe I've been working excellently too, and suspect his self-promotion contributed to his promotion prior to mine. Consider this as a background to the situation I outline below:

The situation

He recently took a perfectly functional and well-constructed, readable application I wrote in Go, and deprecated it in favour of another version he derived from my own Python code. I'd found that Go was significantly faster than Python, which is valuable in our application. He decided he knows best, and didn't want to support Go, and re-benchmarked the two, duplicating all my work. With some tweaks he got the Python version to be marginally slower than Go on average. He decided to move future dependencies onto this Python application, and then tasked me with migrating our existing dependencies onto the Python function as well. Keep in mind he's not my manager - he's just a colleague in my team. Now furthermore, his Python application removed some functionality the Go application had, that we need. I only worked this out after my testing during the migration failed. So he wasted his own time on re-benchmarking work I did months ago. I don't mind that. But I do mind that he wasted my time as well, giving me a pointless migration onto an application that doesn't even fully work.

Another cause for my recent frustration with him is that him and the few other seniors in my team are planning all of the team's work, without involving or consulting me. I have been at the company almost the longest in the team, and am by no means a junior in technical proficiency. I raised this with my manager, but he simply said we can't have too many people doing the planning. I want to have input, and I don't want to be disregarded. The team has grown more polarised and hierarchical between seniors and (mid-levels + juniors) as a result of this.

My questions:

How should I handle this colleague, and my awkward position of being disempowered within the team, despite being proficient? My company is great otherwise, as are the other seniors. Is he simply navigating the corporate environment in a self-serving, ambitious way and 'earning' his promotions through networking with management? Should I be as bullish to get promotions? Or is there still something to be said for technical excellence, working on impactful projects, and caring about the people in your team, rather than only the tasks you do to gain recognition?

5
  • 2
    He is a danger to the company. You get need get out in front of him by demanding objective comparisons of your work and his "improvements", in point form eg latency, functionality, operational support, etc with a weighting for each (its importance) and a score. Get agreement for the weightings and score from the whole team and management. Multiply the weighting by the score and sum the results. Then when it's clear your implementation is better, just say "interesting experiment, Go is clearly better so we'll leave it. Please don't waste any more time on it: If it ain't broke, don't fix it"
    – Bohemian
    Commented Jul 19 at 2:50
  • 13
    I'm going to suggest right now you drop any mention of affirmative action here unless you have irrefutable proof of management actively overriding clear proof that you were a better fit for the job. This argument is not going to be doing you any favors.
    – Flater
    Commented Jul 19 at 6:30
  • Agreed @Flater, affirmative action has little to do with this question's gist regardless.
    – anonymous
    Commented Jul 19 at 14:32
  • 2
    Also, ask yourself the hard question if you want to advance in this company or if you would fit better somewhere else.
    – David R
    Commented Jul 19 at 14:50
  • How many people in your company can support Go code and how many can support Python code?
    – Aaron F
    Commented Jul 20 at 18:23

5 Answers 5

71

You should learn from him.

As a high-tech engineer, I had a manager who had very little technical understanding, and I resented it. At one point he shared with me the formula to success in an organization, the PIE model. That is, your success and advancement is based in equal per in three things:

  • Performance
  • Image
  • Exposure

Just technical proficiency advances you very slowly. You need to curate the image or persona you project, and find ways for people to see it.

I didn’t like hearing that. But now as a VP level, I can tell you it’s completely correct.

You can do it without putting down others or doing shady things, but if you don’t understand this you will chronically be a “right” but “underpromoted” engineer.

You don’t need to handle him, you need to handle yourself.

15
  • 47
    +1 You don’t need to handle him, you need to handle yourself. -- I would give you a million dollars if you could go back and tell me this fifty years ago. Commented Jul 18 at 14:55
  • 15
    This is something that I will never understand, having worked in Europe, Asia and North America, I saw it only in the latter, and I have seen terrible office atmosphere and incredibly poor quality job done, all because "apparence is better than quality",
    – Varech
    Commented Jul 19 at 7:34
  • 7
    @Varech both you and the OP make the mistake of framing this as “either-or.” Instead consider doing quality and understanding how to manage its appearance. Be willing to upskill in something that doesn’t compile, it pays off, in any region.
    – mxyzplk
    Commented Jul 19 at 12:44
  • 7
    @Varech: I've only ever worked in Europe, and I second mxyzplk here. Technical excellence and reputation are two different things. And even if you don't want to be promoted (to a lead position), you definitely should take care of cultivating your reputation to suit your needs. For a non-promotion example, I still remember as a Junior how non-technical people stopped questioning my answers (and going to my boss) when I started wearing shirt & slacks rather than t-shirt & jeans. Instantly, they started perceiving as more reliable, or stopped underestimating me. Commented Jul 19 at 12:58
  • 10
    This is why everything sucks now - the loudest and stupidest people are in charge of everything. Commented Jul 19 at 16:19
12

I'm purely a technical person, no desire for management position of any kind, never trying to gain anything by social tricks etc. I read mxyzplk's answer and at first I was like 'I completely disagree with this', but then I thought about it.. I'm doing all that myself, and I never even realized!

At first I understood his answer as: being socially invested, befriending the managers, taking part in important meetings for no reason etc. I see people in my company doing that all the time, and it rarely 'works'. Your coworker seems to be doing some of that.

Then I realized his answer was not about that (well, maybe it was, but if so, I have another interpretation). You can have Image and Exposure without all that. Couple of things I do that seem to work really well in that department:

  • creating solutions that are used on a big scale - not just your team, not just your department - sadly, difficult to do it when you have your regular work. I used to do it on the side, not telling anyone until it was ready - then dazzle everyone by how good and useful it is, at that point nobody cared I spent company time on it without permission. I also spent a lof of time on solutions that I gave up on - as long as your regular work is done on time, nobody minds.
  • be absolute expert at something. Garbage collector problems? Go to X. Performance issues? X will help for sure. Literally one situation when you save everything by some unique performance fix can help you a lot.
  • help people. It's the best thing if people come to you for help, don't brush them off.
  • make people think you work 100 hours a day. This is actually Harvey Specter's advice, that I completely agree with.
9
  • Excellent points, @Shadov. I share your aversion to the networking-only method of exposure in the absence of technical excellence. Your four points are great ways to meaningfully contribute technically while organically getting exposure.
    – anonymous
    Commented Jul 19 at 14:51
  • Good answer. You should leverage your technical skills and acumen in this - the P I and E shouldn’t be separate (do work, then go randomly schmooze). Share your expertise with a brown bag, make a tool people can use… A perfectly fine image is “super hardcore techie that creates value for everyone by doing <x>.”
    – mxyzplk
    Commented Jul 19 at 22:46
  • For @anonymous - we live in a society. Quietly slaving away only qualifies you to be a quiet slave.
    – mxyzplk
    Commented Jul 19 at 22:47
  • Roughly once a month we have a company wide meeting where all the C-level execs attend. And they often request tech staff to do demos of what we have been developing. I've always tried to ensure that over time everyone in my team gets to present the demo because exposure is important. Presentatoin skills is something developers need to develop.
    – slebetman
    Commented Jul 20 at 4:02
  • 2
    Obviously I learned the self-promotion lesson a long time ago. For myself I always broadcast our successes myself in the company chat and email. Deployed a product for a new client - send a company wide email to announce it and give thanks to key team members. Finished ISO audit - send that self-congratulating email! Helped the sales team successfully demo product to client - send that email! I know it feels stupid but you have no idea how those emails make managers feel happy.
    – slebetman
    Commented Jul 20 at 4:04
5

If you assume that promotions are based on merit, that is false, sorry. Likable, well spoken people that network well move up quickly. Even in tech companies, the majority of the time the top executives tend to come from sales.

If you understand this simple but unfair reality; it is easier to fight back.

  • Understand business
  • Present yourself well
  • Choose your battles
  • Self promotion is a good thing (how else will anyone know about you?)

Understanding business comes down to several simple principles:

  • Will it increase sales
  • Will it reduce cost
  • Will it reduce risk

Otherwise don't waste anyone's time talking about it.

When money is involved, be prepared to quickly show where any previous money went and what you will do with any money you are asking for. People flub this one all the time.

What does any of this have to do with better tech? Not a darn thing. The person that can do a better elevator pitch is perceived to be smarter. Remember the majority of IT projects fail.

As another answer very correctly pointed out, it is about you. Presenting yourself well is important. If you aren't comfortable, consider taking public speaking classes, etc. How you explain to someone that they are wrong is important. Leave people feeling that you are helping not demeaning - always. (I am not saying that is a problem, just it goes along with everything else.)

Choosing your battles is very painful. There will be times that you have to knowingly let someone else fail. This is so that you aren't perceived to be always fighting. The explainations as to why you are right must be simple. The managers USUALLY shouldn't have to be the tech experts.

Showing that you understand the basics of business and are an expert in tech will help you stand out. Being able to communicate to others that are not your direct peers in a non-technical way is critical to career growth.

Don't be concerned about the other person. If anything, learn what they are doing that you aren't.

2
  • 1
    Agree with everything except the implication that these soft skills are not "merit". The ability to understand business needs and communicate in business terms is a kind of merit. That these business merit often trump technical merit is a bit unfair but the business does not exist to solve technical problems - it exists to make money. Solving technical problems is just a means to make that money but if you can sweet-talk a client to sign a contract that is just as important as solving technical problems.
    – slebetman
    Commented Jul 20 at 4:09
  • @slebetman We are 100% on the same page. In my career everything tech was easy and the business side a much more painful learn. I've told others that I've wished that I didn't get a tech degree and had gotten a business degree or MBA. Of my 3 kids, 2 of them got MBAs and are glad they did. The two with MBAs weren't hired for them, but the MBAs are boosting their careers. To your point and my wording, understanding business in my mind is a requirement. The OP likely doesn't see it that way and might pushback.
    – DogBoy37
    Commented Jul 20 at 12:42
1

I saw this particular question. I thought I’d like to answer it more objectively rather than be a subjective bulldog as with some of the answers I’ve seen here.

What appears here is that you’ve built a nice house and someone has come along, drove a few more nails into it, knocked a few walls out to modify some of the rooms and redid the plumbing and electrical therein. I can feel your frustration—you built the house originally. The question is does upper management like the new look and functionality or could they care less as long as it has ‘curb appeal’? Is the Go-vs-Python strategy looked at in any big way (cost, upgrades etc) and/or is it seen as one becoming defunct and the other becomes the way of the future?

I’ve had something a little similar happened to me, but at least they continue to praise and recognize what I’ve done as the main architect. And I am always included on all meetings and developments related to efficiently improving this project. My input is considered valuable.

I don’t like that they’ve given a greenlight to this guy, promoted him, and not including you in discussions and meetings about the future of this work. Time to do some soul searching-but without beating yourself up over it. Your reputation as a good worker and programmer should not be of question if everything you said is true. Temperament and ego both need to be kept in check even if the other guy himself doesn’t. (What is it they really like about this guy?) There are those who would step on and over others to get ahead – that’s why they say keep your friends close and your enemies closer. I think if they really see your true value to the company, they will be more inclusive to you. If not, there’s always another company to go to where you will be appreciated. In my own case, I harbor no judgmental feelings because I’m old enough to retire and have nothing more to prove to anyone. My work for many years stood on its own merits. Hold your head high, and best of luck to you!

0

Being a developer is, ultimately, a technical management position. The machines do all the routine work - the developer performs a complicated control and communication function for the organisation.

I'm struggling to understand where your colleague has really gone wrong, and there's a number of claims you make which seem like you've misunderstood the idea of development.

There's obviously been unnecessary fuss about this one Go/Python method, and there is the potential that he's stepping on your toes, but it doesn't sound like there was a huge amount at stake or inordinate waste.

I'm not clear whether Go is a standard language in your firm, or whether it's the poor cousin introduced only for its performance profile in this special case, but it's generally reasonable to try and minimise ad-hoc mixtures of languages and tools.

It's also often reasonable for at least one extra person to try their hand at a solution to a hard problem, if a particular piece of functionality was finicky and involved having to haggle with the config (as opposed to something that is derived from first principles and/or acquired expertise), and if the previous attempt ended in a lot of technical compromise.

You make a number of claims about him - overly-ambitious, uncollaborative, producing substandard quality of work, domineering, self-serving - which are strong and negative. There are other things which you also say which, in context, are supposed to be disparaging.

But none of it is substantiated here! If his work has been substandard, then what have been the consequences? How many months added to the project? How many millions cost? How many days of outage?

[he values] his opinion more highly than that of others

This potentially has two interpretations.

There's a difference between on the one hand ignoring useful information from others - which is a bad behaviour - and on the other hand, rejecting an invitation to believe someone else over your own eyes.

Are you fairly explaining your understanding of the situation to other people, which they are just ignoring, or are you just telling people what your conclusions are and expecting them to obey?

Is it possible that the palpable differences between you and this colleague are causing his disregard for the information you have to offer, rather than the disregard being the root cause of the differences?

For example, you said you were quite happy for him to waste his own time, just not for him to waste yours. This might suggest keeping good boundaries, but it might also suggest that your interventions are more often motivated by your own perceived personal interests rather than concern for his - in other words, it is not a spirit of cooperation driving you. People can often subtly detect this, and will weigh the information given as less trustworthy.

Or is there still something to be said for technical excellence

What is "technical excellence" in a developer position in your view? Are you communicating better than your colleague? Are you keeping better control of things than he is? Are there substantial differences in your performance - or are you engaging in a "narcissism of minor differences" as Freud called it?

What do other technical people - the other seniors - think of your colleague?

1
  • I agree that it would be annoying to have to maintain Go code. Sure, it's probably an easy language. Doesn't mean I want to learn it. If something was only marginally slower in python using python is a big win from a maintainability standpoint. OP seems emotionally invested in their own code.
    – philn
    Commented Jul 21 at 18:46

You must log in to answer this question.

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