
Ask HN: How to deal with incompetent people - zldkz5
Long story short: I&#x27;ve been working in this position for a couple of years with a colleague at the same level as me. We both lead a few product team giving them advice on technical implementation, best practices and architecture.<p>I&#x27;ve been doing a lot of work to clean up the debt that was accumulated and, meanwhile, I improved the reliability and the efficiency of the infrastructure. I wrote common components and library to avoid duplication and shared it with wiki pages on how to implement certain things correctly.<p>On the other hands, my colleague, is more focus on building relationships and acting like he&#x27;s the manager even tho he&#x27;s not. In a couple of circumstances he event tried to give me orders which is not what he supposed to do. In meetings with our manager he brag on stuff that I did sharing it as a &quot;we did&quot;, while when he does something alone (which most of the time asks to me as well) he would say &quot;I did&quot;.<p>Most of the team members know it as they always asks technical informations to me. Most of the new architectural design has been done by myself same as the library that they use daily bases.<p>This kind of behaviour was ok at the beginning but since our boss left and he got promoted as manager is not sustainable anymore.<p>So here I&#x27;m asking for some advice. I started to look for a new job already, other than that I can&#x27;t find a way to make my life easier has it might required some time (European market is not that good) and I got a break to travel a bit and clean up my mind.
======
clavalle
I never heard anything about incompetence in your description.

Technical debt can build up for myriad reasons not related much to competence.

What I would suggest is not to approach this situation as how you can wall off
or otherwise attack this person but, instead as a life lesson on the
importance of interpersonal relationships and politics.

Politics are a fact of life. Humans are social creatures. All things being
equal, and some ways even when not equal, those that are proficient in
interpersonal relations will come out ahead. Grok that fact. There is no
escape from it.

Good. Now that unpleasantness is out of the way. On to how to cope. Scratch
that, /thrive/, in an environment of people doing people things when you are a
technical person.

First, information. That is the lifeblood of many systems and politics is no
different. Simply make sure important information is conveyed to the right
people at the right time.

You use the example that this fellow was able to take credit for your work.
Had you passed the information of what you were doing and why it was important
to the right people, he would have simply looked foolish to try to take
credit.

It can be uncomfortable, to toot your own horn, but it is necessary.
Additionally, it can be important to the organization. Assuming you are
creating value, it is important that decision-makers know that so they can
make the correct decisions. Don't feel bad. Toot away.

Building relationships is critically important in almost every human endeavor.
Get good at it. It is a skill like any other.

The target of your annoyance became a manager because he built up those skills
and made it known.

Build your skills and make it known. It is just that simple.

~~~
zldkz5
Yes I agree with you, the point is that being technical person doing a
technical job I thought that the value that I create will talk more than the
nonsense of some people. As I like to act first and share later, but there are
people who talk but don't know how to act properly.

I can build this skills as you said, true, but in my position now it would be
impossible to get a promotion as the available spot has been taken already.

~~~
clavalle
>I thought that the value that I create will talk more than the nonsense of
some people.

Nope. Silence is always less noticeable than noise.

Evil prevails when good men do nothing. Also, nonsense fluff prevails when
good work isn't spoken of.

You have a professional duty to make sure nonsense is crowded out by important
information. No one is going to do that for you.

Follow the rule of three...tell people what you are going to do and why it is
important. Tell people what you are doing. Tell people what you've done. And
not just anybody; decision makers.

It is no one else's job to tell people who influence your life of your good
works.

No one has time to dig through everything you might have done to hold up the
shining examples of your work. And now you have someone above you that might
actually be interested in seeing it kept buried so it is even more critical
that you do that interpersonal information transfer yourself.

You are a business, and like a business there is no worth in a product that
the people who are in a position to buy don't know about. You're going to have
to market and sell your value to the people that are buying. All of the time.
Make it a habit. Your co-workers are competitors...don't expect them to sell
your product for you. (though, keep in mind, part of your value-add is
cooperating in your value-add chain so don't take this analogy too far).

Honestly, this is stuff that took me way too long to learn. They should teach
it in engineering school. Hell, they should teach it in secondary school, for
that matter, since there is really no one who is not running a business even
if it is a business of one.

~~~
La_Beffa
Cannot agree more, this is a life lesson that should be taught in school.
Especially in medium/large companies where you got rewards like promotions,
bonuses and so on, then your colleagues are competitors. Pretty much like
politics, the one over promising and under delivering wins over the quiet one
that delivers.

~~~
pitt1980
exactly how much to promise is an art form

over promising and under delivering isn't a sustainable model

under promising too much and you won't get the chance to deliver

there's a sweet spot somewhere in there, which can be sometimes tricky to find

~~~
dawidw
Is it a poem or you're just missing capital letters and punctuation?

~~~
pitt1980
just missing capital letters and punctuation (maybe stream of consciousness
posting isn't the way to go)

~~~
dawidw
Are you aware that it's difficult to get your message from such form and some
people might ignore your posts?

~~~
pitt1980
I guess that's a risk, opaqueness was not my intention, thank you for the
heads up.

------
beat
Bluntly? You're letting anger and resentment cloud your judgment. Your
colleague is clearly not incompetent. He just has different goals from you. He
probably wanted to shift from a technical role to a managerial role, and he
succeeded. That's not incompetent! And that's probably because he recognized
his talents are better with people than with technology. So be happy for his
success, rather than resentful of his perceived incompetence.

It seems to me like people skills are a weak spot for you. That's not unusual
in our industry. But leading and managing people, sorting out the
relationships to make large project work, that work is just as essential as
technical skills are. Nothing big ever got built by a bunch of grumpy,
resentful introverts.

Rather than hating his "incompetence", try to recognize him (and others like
him) as valuable allies. Find ways to work together, to let them deal with the
frustrations of relationships, and let you focus on the technology. Create a
mutually beneficial partnership. If you can't learn to do that, to trust the
"people persons", you're going to find yourself in this situation over and
over again.

~~~
zldkz5
> It seems to me like people skills are a weak spot for you.

That's not true as I always hangout with the people in different teams, and,
we get along pretty well. I just don't do kiss-ass to my boss and I don't take
advantage out of situations.

> Find ways to work together

We worked together for two years on daily basis. And I overcome a lot of bad
behaviours but I can't stand to report to him

~~~
tdumitrescu
This is not likely to work out well for you. You disliked the guy when he was
just your coworker, and now he's become your manager and you have this
seething resentment ("I can't stand to report to him"), which I'm sure he and
others can see. It can be difficult transitioning even to having a teammate
you like become your manager, and the fact that you dislike him puts a 10x
multiplier on that difficulty. A situation where you resent, distrust, and
dislike your manager is not sustainable and in a lot of companies will end
with your removal if you can't truly get over it. Assuming that you can't see
yourself working happily with this guy as your manager (which, to be clear, I
think is perfectly reasonable on your part), you could try to transfer to a
different team if your company's big enough, but I'm guessing most likely this
will end with you leaving the company either on your terms or theirs.

------
jwleath
It's probably too late to do anything about this job. This person has already
taken advantage of you and will continue to do so. Try to transfer out from
under him to another group. If you can't, find a new job. This guy will
continue to take credit for your work and will probably resist promoting you
so he can continue to do so. In the future, don't let this happen. As other
posters have commented, you should have either spoken up at the meetings or
complained to your old boss privately. Many people have more social skill than
technical skill. This situation will come again so learn your lessons. If
someone is asking about your status right before a meeting, that's a good sign
he's going to try to take credit for your work. You can use it to your
advantage, though. For example, keep something in your pocket. Don't tell him
an important detail and then interject with it at the meeting. As an ULPT,
tell him something that's wrong so he makes a fool of himself. (He'll accuse
you of saying it, so tell him he misunderstood.) People like this are playing
a game with you. Don't ignore it; you must play as well.

------
astockwell
I toiled like you seem to be for a long time, cleaning up technical debt, and
writing well-architected (but very time-consuming) code. I learned a few
things (things I have to remind myself of often, when I too feel the anger
rising at people who don't place the same priority on those things):

The business is almost never paying to you clean up technical debt. They are
paying you to generate revenue (or save costs). Period. It could be the best
architected system in the world, but if it takes 4x as long to build, and the
"quick and dirty" version can ship and generate revenue earlier, then that is
the way the business will want to go (even with an elevated error/loss rate).
My takeaway: If you do not intimately understand exactly how what you do each
day makes the business more money, or saves the business more money, then you
need to pause and figure that out.

Nobody gets credit for building a system that never goes down. It does not
speak for itself (much as I would like it to). As others have pointed out,
it's critical to communicate the value (see point above) of what you are
doing, and communicate it to the people who matter.

Dealing with Humans (incompetent and otherwise) is actually what most of us
get paid for (or at least it's a big share of why we get paid). Dealing with
bureaucracy, red tape, incompetence, things taking too long, etc... Sometimes
I wonder why I have to wait for others who are slow, don't they realize how
much money is being wasted?! But it's true, the human component of our jobs is
the main reason why we haven't already been replaced by others/computers.
Relationships trump even adding business value (point 1 above): if you are
difficult to work with, but add value, you will still be marginalized (or even
let go). However on the flip side, if you are great to get along with but do
little-to-nothing, you may not thrive, but you will survive.

~~~
alistproducer2
There's so much wisdom in the post.

>The business is almost never paying to you clean up technical debt. They are
paying you to generate revenue (or save costs). Period.

So true. Once you're in enterprise nobody cares that you wrote the connection
pool yourself (which I did and nobody gave a darn). I did 5 years in
enterprise and decided that was enough for a lifetime.

>Nobody gets credit for building a system that never goes down.

This happened to me. I designed and wrote a subsystem that is used by every GM
dealership around the world and that thing never went down meanwhile my
colleagues project was always down yet folks from the other team were the ones
that got promoted.

~~~
peteradio
Probably made it look too easy. That'll get you nowhere.

~~~
alistproducer2
so true lol.

------
JoeAltmaier
The time to speak was when the liar was claiming someone else's
accomplishments - to contradict them clearly and immediately. After that it's
much harder to recover.

------
OliverJones
Others have said this person is competent and meeting his personal goals:
building relationships and successfully evangelizing your department's work. I
agree. He's not incompetent. He's just not a technician, and you are.

You have the makings of a fine partnership here, that uses your strengths and
his to get things done. Don't forget that complementary talents and work
styles are generally good. You are already the go-to guy for tech questions.
He can be the go-to guy for relationship questions. SOMEBODY has to answer the
questions, "how do we get whatever in the budget?" or "do you know anybody at
our customer Initrode?"

But, this person has some things to learn about taking and sharing credit.
It's up to you to give him appropriate feedback. Let's say he takes credit for
something he personally did not do. Here's what you do:

1\. Cool off if you're annoyed.

2\. Speak to him in a place where nobody can overhear you.

3\. Ask him to listen to everything you have to say without interrupting.

4\. Describe, with particulars, the unwanted behavior. "Yesterday, in the team
meeting, you said 'WE successfully framised the zumbinator under budget and
ahead of schedule.'" (Don't generalize: don't say "you always take credit" or
anything like that.)

5\. Describe the behavior's effect on you. Speak for yourself only. "When you
said 'we,' I was uncomfortable because I know you personally had nothing to do
with that project. It sounded to me like you took credit for work you did not
do. " (Don't say "the team gets annoyed" or anything like that.)

6\. Ask for a change. "In future, please keep in mind that people who work
hard on projects deserve credit for them. When you announce an accomplishment,
please be careful to give credit to the right people."

7\. Say why: "Personal pride in good work done is very important to me. We
have a good partnership here. If you give credit to the right people we'll be
even better. Thanks for listening."

8\. DON'T expect him to immediately smack his forehead and say, "Oh I have
been a fool. I'm sorry, I won't do it again." It takes people a while to
absorb "constructive" feedback.

------
motohagiography
Front running news is a standard play.

The line for me has always been lying and sabotaging others, but I've found
that even this sort of honesty gets you blindsided by those who don't share
it. You don't anticipate it when you aren't in the habit of doing it.

As a thought experiment, try to re-imagine the idea of honour as a luxury,
where people raised to value and expect it have been saddled with a privileged
misapprehension that they do not have the power to enforce on their
environments.

Viewed through this lens, an expectation of honesty and relationships with
principles and interactions according to rules is an artifact, if not the
definition, of a poor education - one that does not equip them to succeed in
organizations that have optimized this costly luxury out.

Ending this thought experiment, consider how someone without that luxury and
little exposure to it might operate, and what it might mean if to succeed, you
had to leave a luxury you took for granted from a former life behind.

My recommendation would be to grieve it briefly, look forward to a time when
it doesn't cost you dearly as it has, and then move on.

------
paraditedc
Let me start by pointing out that, based on your description, your colleague
is not incompetent and your colleague technically did not do anything wrong.

Is it wrong to say "we did" for tasks given to your team as whole? No, because
after all everything is team's effort. At the same time, it is also not wrong
to say "I did" when it is indeed only your effort alone. It's just playing
with words for one's own gains.

What is very apparent, however, is your lack of confidence and interpersonal
skills. You should talk to your manager (or skip to the next level) to assert
the relative contribution between you and your colleague, based on hard
evidence (git commit, wiki edit history, interviews with other teammates).
Also you should do it as soon as possible after your colleague plays the word
game while the manager for both of you still have fresh memory.

But now it might be too late for any of these. Move on to another team or
another company.

~~~
zldkz5
> technically did not do anything wrong.

I didn't share everything that happened in two years time but just some vague
summary. Is hard for someone that does nothing to do something wrong. In all
the meetings we had his first thought was "let's find an open source
alternative that does that for us" even in some highly customisable and domain
specific solution that won't be available in GitHub for you to use. Or not any
"how to do ...." search in Google can solve.

Yet, after more than two years, is still have lacks on how our infrastructure
and the application works. And he still propose useless open source or SaaS
solutions that don't fit at all our usecase because he doesn't even know what
the applications do.

------
laurent123456
How come people don't know what work you are doing at the company (thus
allowing your colleague to take credit for it)? That's probably what you
should try to address.

I'd start by writing emails detailing such or such feature you are working on,
how it improves the system, etc. Maybe ask for feedback, or ask general
questions to the business owner. Maybe suggest using some issue tracker where
you could document over time what you are doing via comments, issues, etc. I'd
expect your colleague might be the kind to distort truth, so such record is a
good point of reference to set things straight.

Not only that would be good for you, since people will know that you are
improving the system, but it will be good for the company since they'll know
what's going on. They are lucky you're actually doing your job because another
employee could have been slacking off and they wouldn't even know it.

------
alistproducer2
I worked at a fortune 500 where IT was a support role and we had lots of
people who were not that technically proficient. I really did have to deal
with people who were incompetent programmers. Rookie mistake all over the
place. Global variables in JavaScript. Check. Not using version control.
Check.

What you describe is not incompetence at all. It just sounds like this person
has aspirations for management and you don't. Personally, I believe that it's
best to lead from the front meaning that one should demonstrate to the people
he/she is trying to lead that one really knows their stuff.

That being said, it sounds like now this person actually is responsible for
managing you now so it appears their tactics paid off. Unless this person is
asking you to write bad code or implement designs that don't make sense,
there's really no issue other than your resentment towards this person. you
got to let it go. That stuff is poison.

------
heywire
Since it seems you must work closely with this colleague, perhaps you could
look for opportunities to improve together? Maybe taking a training course or
attending a talk together or as a team? Maybe you could even give an internal
talk on an area you feel is important that they could benefit from?

I would also be careful to assume that your colleague is incompetent. Perhaps
the two of you have just very different styles. I once worked with a "solution
architect" who would over-engineer every project. Even the smallest utilities
would become a "system" with lots of moving parts. Management lauded his
technical abilities, but those who later had to maintain these "systems" he
created were not as impressed. I could see how he might consider some of the
other members of the team "incompetent" because they did not work in the same
way.

------
ensiferum
This is of course only your side of the story but it sounds like he's way
better at office politics and elbow tactics than you are. When you were at
same level in the org I would have just cut him off from the critical
information flow and communicate directly to the superiors. Now that he's your
superior you cutting him off can backfire where you're the one causing the
trouble and not being a "team player". Anyway, you can bet that he'll continue
to take the credit of the work that his team will be doing, fast forward 10
years and he's probably a C level exec while you're still a SWE. Just the way
the world works.

My advice is to a) leave asap, b) simply ignore him as much as possible while
you're stuck there.

------
patagonia
In response to/summary of some of the other comments, to keep it brief:

1) Your colleague is not managing. They are politicking. A good manager gives
credit where due and listens to the people doing the work.

2) You don’t want to work in a culture that rewards politics over solid
engineering. They need to coexist, by staying in their own lanes.

3) It’s too late with this role. Move on and bring these lessons with you.

The alternative is a fairly ugly and costly series of discussions and
confrontations with the company during which you will need to make the
argument that what you say is happening is happening and you will need to
change the company culture along the way in order to win those battles.

Not worth your time or energy.

------
asveikau
Think of yourself removed from the situation, perhaps think of yourself
meeting these same people in another context, and realize that it's the time
and the place, rather than the people, that distorts things enough such that
you are in conflict.

For a long time I thought of such people as my enemies. But it is the context
that makes them so.

A lot of them may not have the maturity to come to these conclusions, and some
folks on the periphery may take their side too. That's OK. You know the truth
for yourself.

Change jobs if you have to. It's not great to keep working for people who hold
up these illusions.

------
Floegipoky
It seems like you have a few problems: 1\. Doing more than your role calls for
and not getting recognition 2\. Reporting to somebody who you don't trust 3\.
You want to keep coding/architecting. The next promotion requires pointy hair

I see 2 solutions: 1\. Try to work with the company to come up with a
solution. Make sure the people higher in the management chain know you're
unhappy. Many companies really don't know what to do with senior/lead devs.
Often the only way to advance is to stop coding, which of course is the whole
reason you were valuable to the company in the first place. If that's the case
where you are, consider talking to some decision makers about it. Frame it as
"I like it here and want to stay, but my goals are incompatible. I'm producing
more and more value for the business but there's currently no way for me to
advance my career without setting aside the skills I've spent so long honing.
Help me to find a way to meet my goals here." Try to talk them into creating a
position for you that formalizes your role as a technical leader and gets you
out of this person's reporting chain. Either they've been paying better
attention than you think and they'll work with you to get you to stay, or
they're clueless and have no idea what you're doing for the org. Either way,
at least you tried to do something and you know where you stand. 2\. Quit. 3\.
Deal with it (not recommended)

------
minionslave
I would like an answer to that too. I'm the youngest member of my team so the
older more 'experienced' teammates are really good with politics.

We have a new project coming up and I basically was the one implementing the
initial architecture, I showed them how to use the linux terminal, gitflow.

I am the dev with the fewest number of bugs reported, they are always on
meeting about issues. They take the most visible, interesting features.

Yet during meetings, people talk to them more because they are older, so they
basically take most of the credit.

What should I do in that case?

~~~
oblio
Divide et impera, I'd say. Get a backer, someone that sees your values: your
manager, your manager's manager, one of the senior devs. If you have 3 people
in a room at work, there's bound to be at least 2-3 (hidden) conflicts. Figure
out where they are and benefit from them: get your backer to help you with
your task and when you present it, present it as being team work. While you're
the person actually presenting. Your backer will... back you and you'll be
able to stay a bit in the spotlight and you could use the exposure.

Or just find a sane work environment, which one is easier.

------
fpalmans
I am a little late to the conversation, though want to share some quick
thoughts here.

On the one hand, I understand why you this situation makes you unhappy. On the
other hand, I want to offer a different perspective. Based on your
description, it sounds as if the two of you could form an excellent team! You
have the technical know-how and drive, he has the relationship building and
political skills. Perhaps you should team up with him and make him your
advocate for career advancement - he at least appears to be good at it. Never
forget that advancing one's career in a company is NOT a zero-sum game!

Also - when a manager, whether or not he has the title, says that he did
something, or that he will do something, in stead of taking credit, can also
signal acceptance of accountability. In other words, if a deadline is missed,
or a system breaks, etc, he will take the flack. Perhaps this is something you
need to clear out with him directly.

Assuming that you enjoy/prefer the technical work, aligning yourself with him
might be a match made in heaven. You continue to make him look good and he
makes sure he gets you regular raises, progresses your career, gives you time
off, sends you to conferences or training courses in which are interested,
gets you bonuses, etc., etc.

------
navinsylvester
You talk about not getting enough credit but want to be a manager. It's not a
good trait to have as a manager and you will suffer even worse.

A new shared dependency is worse than duplication. Sometimes developers get
carried away about doing it the right way and don't understand the trade-offs
you need to do to make it tick. FYI - I am a fully hands-on manager.

If you truly aspire to be a manager you need to understand that tech side
alone doesn't cut it.

~~~
zldkz5
It was required by our ex-manager and director to do so. As we were re-
inventing the wheel in any application. If you're a fully hands-on manager you
should understand the value of having strong common components that can be
plugged in an out.

If you don't think so, just use a plain language without any framework,
module, library or third party component and let's see who target the release
date first.

We are paid not to build beautiful or robust software, but, first, to deliver
faster and without headache. Decoupling stuff and avoid redundancy is a huge
benefit and we experienced it dropping down the delivery time by at least 20%.

~~~
navinsylvester
You are missing the point here. No one is doubting the usefulness of reusable
code or common components.

Its about developers spending time on what they think needs to be refactored
due to the engineering itch on an already functional and maintainable code.
Most times by doing it they can be introducing instability to the whole
system. In a larger code base with handful of engineers and teams it becomes a
bottleneck to make quick changes since it can break others stuff so too much
interaction and policy around it and so forth.

------
maxxxxx
I don't think your colleague is incompetent. Instead he has a better
understanding of the reality of a company than you have.

My advice is that you learn the political game. Otherwise you have a lifetime
of resentment and disappointment ahead of you.

You don't need to use politics to do evil things. But you need to understand
how it works and protect yourself. Nobody gets ahead by just doing good work.

------
eksemplar
Why was it wrong to promote your colleague to manager instead of you?

You did technical work, but your colleague build relationships and manoeuvred
politically.

So from what you’re saying, your colleague was a better choice for management
than you. Because management isn’t really about having technical skills, even
in tech, it’s about building relationships and getting the most out of them
while you hold a steady course through corporate politics.

I mean, you didn’t even speak up for your achievements when you felt they were
being stolen. And now you can’t come to terms with a new management structure.
How do you expect to handle a management meeting?

That’s a little rough, and I am sorry, but technical skills isn’t really
useful above technical leads, and those guys/girls rarely have
responsibilities outside of technical direction.

I mean, do you even want to spend 60% of your time motivating other people,
dealing with their problems, resolving their conflicts and helping them
improve? Never writing another line of code? Because the other 40% will be
spent in spreadsheets and meetings.

------
catfish123
> he brag on stuff that I did

> when he does something alone ... he would say "I did"

> he got promoted as manager

Act like the stereotypical manager, get promoted to manager.

~~~
Aeolun
I mean, he’s already functioning at the level he is aiming for, so might as
well make it official.

------
kjullien
I am not emitting an ethical judgement on what he does btw, merely suggesting
that:

If you think that what he is doing can be achieved by an incompetent person,
then why don't you simply do it yourself ? Why don't you become the guy that
can manage + actually code stuff ? Surely you can set aside 10% of the effort
you use when writing your libraries and invest them in overtaking this guy's
job/position since an incompetent person can achieve what he does.

Sure you might not like what he does, namely managing, but that's a role that
will probably be filled in any company you apply to. Maybe take a bite of the
bullet and invest 1/10th of your time even if you don't like it to actually
render this guy useless, eventually fired or released since he is so
"incompetent" ?

If this ends up not sounding as "easy" as you thought, maybe take some time to
rethink your approach, your philosophy towards the situation... As many here
have already said...

------
jka
It can take a while in an organization before people learn whether someone is
really competent; especially if as you say the individual in question is
particularly good/charming at convincing others that they are effective or a
necessary part of the org.

If you trust your employer and management chain enough, then you can use the
normal reporting loop to file concerns and notes along the way - just try not
to get emotionally involved as it could become difficult to separate your
observations from your personal opinions.

Even more so don't let this person pressure you or change your decision-making
in ways that could undermine your position.

And certainly, if the organization fails to take care of things, then it may
be time to move on and find somewhere more progressive and healthy. It's the
sign of a failing environment if it can't identify and deal with individuals
who claim overdue credit by using others' contributions.

------
AchieveLife
Some great advice already in this thread.

To add on to it

I'm reading that you don't like your new manager. 2 option s are to go above
his head and become his boss or find a new job

If you decide finding a new job is your move then I recommend using some of
the advice here to _sell_ your accomplishments and ability to lead to acquire
the position and authority you want.

Politics do happen but there are people who have the necessary "no bullshit"
political attitude that keeps others in check. If you are that person then get
the authority to execute that prerogative and improve people's lives.

Tech culture tends to forget the interpersonal side of careers which is
critical for advancing goals.

Have you taken the StrengthsFinder assessment before?
[https://www.gallupstrengthscenter.com/](https://www.gallupstrengthscenter.com/)

------
jcriddle4
Read the Dilbert Principle. If you are in too much of a hurry here is the
Wikipedia summary of it.
[https://en.wikipedia.org/wiki/Dilbert_principle](https://en.wikipedia.org/wiki/Dilbert_principle)
The situation seems completely unfair but you need to move on, life has some
sucky points sometimes and a magic fairy isn't going to come down and fix
things and set them right. I suspect talking with the management will only
make things much much worse. You look much better to an hiring company if you
currently have a job. Put your resume out and when a good offer comes in jump.
Do not let the fact that you did great work and an idiot got promoted suck the
life out of you.

------
LocalMan
The one thing you probably haven't been doing is having friendly work-oriented
talks with your boss. A couple of times a week you should have been raising
some easy issue just as a "heads-up" so the boss is up to date.

The idea is to break down the social barrier between you two and make sure he
knows you, feels relaxed around you, and knows you're competent. A related
important goal is to make sure the boss knows that you two can work together
as near-equals as part of a team. That's what being promoted really means,
from the boss's point of view.

You've run into a colleague more of a predator than an engineer. I've also
been pushed out this way and was foolishly resting on my technical laurels.

------
JustSomeNobody
Reading your post, the only incompetence I see is your management. So, to deal
with that I have some suggestions.

First off, again, your manager failed you. They should have known who was
doing what and who wasn't. There is simply no excuse for that. That is their
job.

Second, what you should take from this is make sure you have constant
conversations with your manager(s). If they're not doing their job, do it for
them by initiating these conversations. Tell them what YOU have done both
individually and as a team member. Don't be negative. Even when teammates fail
you, find a way to be positive. That may just mean that you leave out the team
part and focus on your individual part. This cannot become a habit, however.

------
thekhatribharat
I've been in a similar situation and can relate to most of what you've
described. In my case, I pointed it out to upper management multiple times but
they failed to take action. I left the organization eventually.

~~~
thekhatribharat
To add to this, reading your post, I was actually surprised to see that
someone else is in a pretty similar situation. In my case, I felt the other
person was really a toxic element and did my best to point it out to upper
management, with concrete examples and validation from other team members. I
rarely faced disagreement in any of these discussions with upper management
but alas they failed to take action. I came to the conclusion that if an
organization is incapable to weed out toxic elements despite substantial
evidence, it's going to only get worse from here and that it's best to leave
the organization as soon as possible.

------
Devils_Avocado
+10,000,000 the comment below.

If you feel you have not received recognition or reward in proportion to your
efforts while in the employment of this company, its time to 1) start looking
elsewhere for an environment more in sync with your own personal values and 2)
accept that for >90% of all economic interactions, perception = reality and
adjust your attitude accordingly.

"clavalle 1 hour ago | unvote [-]

I never heard anything about incompetence in your description. Technical debt
can build up for myriad reasons not related much to competence.

What I would suggest is not to approach this situation as how you can wall off
or otherwise attack this person but, instead as a life lesson on the
importance of interpersonal relationships and politics.

Politics are a fact of life. Humans are social creatures. All things being
equal, and some ways even when not equal, those that are proficient in
interpersonal relations will come out ahead. Grok that fact. There is no
escape from it.

Good. Now that unpleasantness is out of the way. On to how to cope. Scratch
that, /thrive/, in an environment of people doing people things when you are a
technical person.

First, information. That is the lifeblood of many systems and politics is no
different. Simply make sure important information is conveyed to the right
people at the right time.

You use the example that this fellow was able to take credit for your work.
Had you passed the information of what you were doing and why it was important
to the right people, he would have simply looked foolish to try to take
credit.

It can be uncomfortable, to toot your own horn, but it is necessary.
Additionally, it can be important to the organization. Assuming you are
creating value, it is important that decision-makers know that so they can
make the correct decisions. Don't feel bad. Toot away.

Building relationships is critically important in almost every human endeavor.
Get good at it. It is a skill like any other.

The target of your annoyance became a manager because he built up those skills
and made it known.

Build your skills and make it known. It is just that simple."

------
coleifer
If you are able to discern his motivations, you can probably have faith that
others will, too.

The extent to which your ego is bound up in taking credit, having a certain
reputation among your colleagues, etc, is the exact extent to which your
coworkers behavior can "get to you".

Always the best advice is: do your job to the best of your ability and don't
worry what anyone else is doing. Others will notice. And if they don't, then
perhaps its not the kind of place you would want to work, anyways?

------
sandrocottus
I face this situation everyday after joining my current company. It can be
disturbing and counter productive. My manager is non technical, this is the
root cause in my case. I am determined to either join a different team or
company, My requirement is that my next manager needs to be technical (this
helps because previously there was no such issues). Alternatively i keep
hoping to join a startup where your work is transparent.

------
thisisit
I hope you got a chance to read a good HBR article posted earlier on HN:

[https://hbr.org/2018/11/5-ways-smart-people-sabotage-
their-s...](https://hbr.org/2018/11/5-ways-smart-people-sabotage-their-
success)

Discussion here:
[https://news.ycombinator.com/item?id=18459389](https://news.ycombinator.com/item?id=18459389)

------
_pmf_
> I've been doing a lot of work to clean up the debt that was accumulated and,
> meanwhile, I improved the reliability and the efficiency of the
> infrastructure. I wrote common components and library to avoid duplication
> and shared it with wiki pages on how to implement certain things correctly.

What's the business case for this?

~~~
zldkz5
Required by our ex manager and director to cleanup the debt and increase
delivery time. And, it was urgent since we were having performance issue.

Pretty much I don't like to do stuff for the sake of doing it

------
toomuchtodo
Accelerate your job search, take some time of to decompress, and try again in
a new opportunity.

~~~
akvadrako
Agreed. You can always try going to his boss to explain it, but that probably
won't work out. It just seems like a miserable situation to be in.

------
golanggeek
You can't change what has already happened. And trying to change that will
only cause more trouble.

Inform somebody higher up about this. Do it more subtly instead of name
calling. Usually people sitting higher up will take this into consideration on
future decisions.

------
the_arun
Have you spoken to Manager’s manager and requested for a change as you & your
current manager were peers earlier & do not want him as your manager?

------
twoquestions
Is there a way to train the kind of social skills that people are saying the
OP lacks, or are you just boned if you can't play the game?

------
caymanjim
I'm going to be a little mean here, but it sounds like you might be the
problem.

> I've been doing a lot of work to clean up the debt that was accumulated and,
> meanwhile, I improved the reliability and the efficiency of the
> infrastructure. I wrote common components and library to avoid duplication
> and shared it with wiki pages on how to implement certain things correctly.

Did anyone ask you to do this work? Does it benefit the company in any
tangible way? Did you make the product objectively better, or did you fixate
on code purity at the cost of work that generates more business value?
Sometimes tech debt needs to be addressed for technical reasons, sometimes
it's a vanity exercise. If your work doesn't have visibility, maybe that's
because no one wanted it done in the first place. Spending time on tech debt,
not under the umbrella of tangible benefits, is usually not a productive
undertaking. As much as you might loathe working on some hairy piece of code,
if you're not changing it for a business reason, you might be making things
worse. You might be adding complexity, introducing bugs, hurting performance,
or simply going off on a wild goose chase.

> On the other hands, my colleague, is more focus on building relationships
> and acting like he's the manager even tho he's not. In a couple of
> circumstances he event tried to give me orders which is not what he supposed
> to do.

Building relationships is critical. Most of software development is not
writing code; it's understanding business problems, gathering requirements,
organizing/prioritizing, delegating, getting feedback, etc. Of course you need
to produce a product at some point, but doing so effectively requires that at
least some team members be engaged with product owners, customers, and other
teams. Your colleague sounds like a manager/team lead, and it sounds like he's
viewed that way by others.

> In meetings with our manager he brag on stuff that I did sharing it as a "we
> did", while when he does something alone (which most of the time asks to me
> as well) he would say "I did".

In a functioning team, almost all tasks should be "we dids" rather than "I
dids". It doesn't sound like he's taking credit for your work. He's not saying
"I did" in reference to your work; he's saying "we did". Maybe he slips up and
says "I did" when talking about his own work. It could be that he is trying to
speak in terms of team effort and only says "I did" out of habit for his own
work. Or maybe he's an underhanded dick.

> This kind of behaviour was ok at the beginning but since our boss left and
> he got promoted as manager is not sustainable anymore.

It sounds like he IS a manager. In fact, despite your earlier claim about how
it's not his role to give you orders, it sounds like that is in fact his role.
It sounds like he is YOUR manager, but you're simply not happy about it.

Maybe your colleague is an asshole who takes credit for your work, brown-noses
his way up the food chain, and is less technically competent, but I don't see
any of that. What I see is someone who's able to strike a balance between
social engagement and technical engagement, with natural leadership abilities,
who's able to effectively delegate, and has successfully transitioned into a
leadership role.

You have to advocate for yourself. If you don't think your contributions are
appreciated, make sure that your contributions are what the company actually
wants, and not your own agenda. Make sure people know what you contribute, by
building relationships with other leaders in the company. Make your voice
heard during planning and review meetings.

If you really are leading a few product teams, then you must have people
working under you. Delegate to them, and stop worrying about taking personal
credit. When your team does well, you'll look good. And if you start saying
"we did" instead of "I did," your team will appreciate it and view you as a
humble leader.

------
itomato
Who are you to judge another's competence?

By what standard?

Your expectations are yours alone, unless you are tasked by the business to
analyze and optimize.

~~~
zldkz5
Indeed that was my scope. I was tasked by the business to analyze and optimize
the technical assets of the company. And yes, I do also recruit and judge
other's competence

------
austincheney
I live in two separate worlds simultaneously. Here is what I have observed,
but please bear in mind the following points are easily abused by incompetent
superiors to protect themselves.

1\. Corporate:

1a. Subordinates: In the corporate world firing people isn't as easy as it
sounds. Put everything on paper. Good managers have lots of paper on their
people. Good documentation lets you know who to promote, without implicit
bias, versus who to fire if layoffs happen. This is why contractors are so
common at many firms. Contractors are easy to fire.

1b. Managers: There are great managers and there are horrid managers. More
often than not it comes down to personality. Does your manager know anything
about you? Do they listen to you or care about your job? Good managers really
show they care. No matter how much you suck they still want to provide you
opportunities to propel your career. Incompetent managers look you are a line
item. In the case of incompetent managers you aren't going to be a rockstar.
Instead cover all your bases and check off all the blocks on the metrics the
boss cares about. The goal is to tread water with comfort and not make waves.
In this case a life raft is any opportunity to work under a different manager.

1c. Peers: Tread carefully.

1c I. Incompetence: Incompetent peers who are downing might try to pull you
down with them. Don't let incompetent people dictate your quality of work. Be
independent and grow a backbone in the face of their uncertainty. Always be
helpful with frequent offers of assistance and guidance. Help them to learn
and remain productive, but the bottom line is to deliver quality work to the
project on time.

Ic II. Assholes: If they are assholes or too special for help then simply let
them drown. If they do stupid things to harm product quality let the product
owner know, but remember you are not their boss. If they don't make it at the
current company they will always find work somewhere else.

1C III. Immaturity: Immaturity is rampant among young developers. Its weird
how so many young developers, even when I was young, think they are so
incredibly talented. I believe this is the _dunning-krueger effect_ effect.
Kindly remind the immature person when they step out of bounds, but keep a
very safe distance. Typically immaturity stems from a lack of self-awareness
similar to starting forest fires.

2\. Military:

2a. Subordinates

2a I. Disobedience or Disrespect: Eliminate the problem immediately and
directly in a very ad hoc manner. This is ok because they are owned by their
superiors. The superiors must then care for them with directed guidance and
mentoring. After you crush their emotions you have to empower them to make
better decisions independently.

2a II. Incompetence: Counsel them on paper. Every major screw up goes on
paper. This protects you and them, because lets your booses know you are
working on it and maybe they need a different job. You need paper to prevent
them from being promoted before they are ready. Putting things on paper with
great specificity also imposes an action plan upon you to improve the
individual.

2b. Superiors

2b I. Assholes. Pull them aside and kindly let them know they are burning all
their bridges and although they don't see it yet they are drowning and nobody
wants to save them. Give them an olive branch and be patient and respectful
while they are being an asshole to you. Be a good example and encourage them
to follow your lead before they really hurt themselves.

2b II. Toxic Leaders. The core of all toxic leadership is some sort of selfish
quality. Document all the wrongs you see about them. Simultaneously report the
evil bastard to the unit commander and let the unit commander you have already
submitted the issue to the inspector general's office. Don't wait on this and
don't be passive about it, because if they aren't screwing you they are
screwing somebody else. This is one of those situations were the forced
dichotomy isn't a fallacy. You really are part of the solution, part of the
problem, or an immediate victim.

2b III. Incompetence. Stupid, unqualified, or unprepared people can be
promoted to astonishingly high levels. This is going to sound counter-
intuitive, but do their job for them, but don't let them take credit for it.
Ensure the work gets done and everybody stays safe. Don't worry about a paper
trail because actual incompetence is obvious and people talk. If their
incompetence results in harm or high risk situations they will typically be
removed before an investigation falls upon their boss.

2c. Peers

2c I. Toxic. People primarily interested in self-serving interests aren't
leaders. Address this directly with both them and their boss. Document what
you see, but keep it secretly to yourself. If the toxic behavior is bad enough
to warrant an investigation it often comes down to paper and good paper will
protect you and the toxic person's subordinate.

2c II. General Incompetence. Talk to them and figure out what's going on.
Sometimes a life situation can arise that provides serious distractions. Help
a buddy out and try to get them on the right track. If they continue to fail,
well at least you did all you could to try to fix the problem... right?

------
citilife
You're in an office, or the way I like to think of it - a tribe of
"professionals". Like all tribes you have people who hunt, gather, tan
leather, and make dinner.

The "best" hunter occasionally will bring back a deer, maybe once a week. The
stable hunter brings back 15 fish every day; aka they feed the tribe
consistently.

People recognize and praise the deer hunter more. Even if they bring back less
food, they are visual and there is a celebration when a deer is brought back.
Meanwhile the person bringing back fish, well, they feed the tribe, but it's
consistent and not flashy.

To your post:

> I've been doing a lot of work to clean up the debt that was accumulated and,
> meanwhile, I improved the reliability and the efficiency of the
> infrastructure. I wrote common components and library to avoid duplication
> and shared it with wiki pages on how to implement certain things correctly.

First, it sounds like you may have done unnecessary optimizations (aka not a
"good" job at delivering real business value). I'm not saying that's the case,
but always be wary of "delivering" what no one asked for. At the very least,
you didn't bring back a deer, you delivered a steady stream of fish. It
actually appears like you built a new net, but at the same time catch the same
number of fish.

Second, it appears the deer hunter has already been made chief (aka manager),
and you're still catching fish. So now it's your job (if you want to stay
there) to figure out how to work together. Explain what you'd like to do, and
where you'd like to go. As a manager it's his responsibility to work with you
to achieve those goals. Move to be the next deer hunter, and learn from the
chief on how to get there.

Clearly, they appear to be better at distributing the work and / or self-
promoting. Ask them to promote you too, work with them to ensure you're being
promoted as well. As a manager, they can only be as successful as their
underlings. Use that value you create to benefit both of you. At this point
it's not a zero sum game. Both of you can move up the ranks, albeit in
different paths.

Looking for a new job is also an option, but in any case. You need to refocus,
you were out maneuvered politically -- you lost. However, it doesn't appear
your goal was to manage, you thought bringing in the regular solid work would
promote you. It doesn't, solid development does nothing, achieving business
goals and sharing it is the key.

Keep in mind taking an open source library and distributing it often brings
more value to the company than new development. The person who distributes
that library is far more likely to get promoted (open source or internally
developed - it doesn't matter).

------
sebleon
What are his responsibilities as your manager?

------
SirLJ
Just find another job... life is too short...

------
asianthrowaway
Seems like you learned the hard way that social skills are an important part
of thriving in a social hierarchy.

I recommend you read books on how to deal with people.

------
jhowell
Don't take it personally. Be happy for their accomplishments. Be happy for
your accomplishments. Think about how important the "tough" times you are
having now will be in 1 year, 3 year, 5 year, 10 years. Control what you can
control.

~~~
rc_hadoken
He can control someone taking credit for his work...

~~~
jhowell
Do you offer suggestions?

~~~
vthallam
As the top comment says, information flow at the right time makes all the
difference. When you do something nice, put something in your slack channel
like "man I finally got this elastic search issues fixed. the search is faster
now and it doesn't fail for certain terms` or something like that. a subtle
self congratulating message and everyone know you did it.

~~~
jhowell
From my experience which is obviously different than yours, over time these
pats on the back do more to divide than unite development teams. Others know
who gets stuff done and who doesn't just like you likely know who gets stuff
done and who doesn't. The slack pats on the back seem counter productive,
almost as if looking for credit for doing your job. The higher up in the
organization you go the less important it becomes that you refactored the code
to batch load index data where the prototype might have inserted one record at
a time. By the time the index is done, the people who use it don't really care
how long or how efficiently it was built.

------
cupofjoakim
Have you talked properly to the colleague in question? It seems like you've
bottled up all this frustration for far too long, making this infected, which
in turn makes it harder to talk about it.

Even if it's hard, just tell him how you feel. Take it easy (don't start by
listing all his faults) and stay objective - as in "When you do ... I feel
...". Be honest and say that you're not sure if you want to stay, and that the
situation needs to be resolved so that you can have a healthy working
relationship again.

~~~
zldkz5
I never tried because we had to work together closely and I didn't want to
break the balance. And now I don't know if it make sense since he became my
manager.

~~~
java-man
leave the company.

if the company does not promote meritocracy (in a sense that it gives more
competent people more responsibility and vice versa), you are destined to
become more and more at disadvantage.

life is too short to spend it fighting a localized idiot. go build something
interesting that will benefit mankind.

~~~
stupidbird
Spoiler alert: talking about your work is a big part of meritocracy.

