I'm working as a software development consultant (contractor) for a small/ish enterprise.

We have this software engineer I'll call John.

The team consists of me, the CTO and John.

John is a Senior developer with about 5-6 years of experience. He hasn't been on many projects. Used to be the CTO of his own company but he quit for reasons I'm not aware of. (it seems to me he was actually fired because he's removed from the founders list pretty much everywhere I look, may be due to him being very arrogant)

John is definitely smart and capable, but is obviously arrogant and has very strong opinions about stuff. So strong, in fact, that the "discussions" we hold most of the time aren't actually discussions, but just him rehearsing his decisions/opinions without acknowledging anything other people say.

He will interrupt you after 5 seconds of talking. Any attempt to objectively and calmly state his decision might be worse than what we have is met with a "I don't believe that". If you ask "why" you're accused of being "too attached to be willing to change the existing code". Actual reasons are never given unless in his favor. Questions are not answered if the answers can be against his position.

Problem is John insists on having these discussions all the time, as to simulate he wants external input, but the reality is he won't stop in any way until we agree with his views. It does not matter at all whether his solution is better (rarely, but it does happen), equivalent or worse. He is very good at "masking" this enough to constantly be on the edge.

He also doesn't take in account the development and refactoring time cost. Everything "must be done right from the start" and everything that he hasn't personally written is "garbage" and "will surely fall apart in the future".

He's been with us for like 6 months now and literally 0 of the predictions he's had of stuff being "doomed to failure" or "just about to fall apart" have come true. He actually had to implement some stuff and we let him do it in his fancy manner. Turned out the feature was mostly broken, but he blamed other people for that.

He was given the opportunity to write another module and instantly made it into an entirely new project using his own library/framework, that is still heavily underdeveloped (meaning that now he uses it on the project, he gets to develop it on company time).

The question:

How do I peacefully co-exist with this person and actually have productive discussions about things that affect the future of the project?

What I'm currently doing is nearly blindly agreeing to what he proposes because it's just not worth the "fight". I'm just a consultant anyways.

I sometimes need to agree with stuff that is creating us more work/making stuff more complicated than it could've been. Also, often times new problems are simply being invented as a result of these "discussions" which is also a problem.

Now I know these "conflicts" can be resolved by the CTO, because he's the one ultimately making decisions, but while he's a great person and a very decent developer, it seems he is extremely afraid of conflict and will very, very rarely share his actual opinion, leaving this fire to burn.


About those voting to close, please note the reasons in the comment section so we can improve the question.


This question is not the same as How to deal with an arrogant superior?. John is an employee and not superior to me. The situation seems quite different as well.

  • Are you employed by the company or contracted?
    – user
    Nov 13, 2020 at 12:10
  • 1
    Contractor, I'll add it in the question.
    – user259590
    Nov 13, 2020 at 12:20
  • 1
    @JoeStrazzere well yes but it's kind of my job description, really. I'm a software development consultant and this is a large part of making software.
    – user259590
    Nov 13, 2020 at 13:07
  • Is John also a contractor or is he an employee?
    – mxyzplk
    Nov 13, 2020 at 13:45
  • @Fattie John is not my superior. John is an employee.
    – user259590
    Nov 13, 2020 at 14:08

3 Answers 3


Very polite. Very firm.

How do I peacefully co-exist with this person and actually have productive discussions about things that affect the future of the project?

The answer can be given in seven words:

You do have to be absolutely direct.

To repeat. The actual answer to your actual question is "You do have to be absolutely direct."

For me, this is no problem.

(I have an incredibly single-minded attitude about work. I work for one simple reason: to make money, so I can drink and raise my children. There is literally no other reason I work. Hence, I am utterly robotic about work. I'm like Data except with no personality.)

Here's precisely the language I use in the specifics you give:

John problem:

"He will interrupt you after 5 seconds.."

What Fattie says to John:

"John, you just interrupted me. You always interrupt people after five seconds. Do not interrupt me again."

John problem:

"but is obviously arrogant and has very strong opinions about stuff..."

What Fattie says to John:

"John, you are being very arrogant. You have very strong opinions which you express with arrogance. Never address me in an arrogant fashion."

John problem:

"insists on having these discussions all the time, as to simulate he wants external input..."

What Fattie says to John:

"John, you constantly call for these discussions. You simulate that you want external input. Then you talk and talk about your own view. Stop calling for pointless discussions."

John problem:

"literally 0 of the predictions came true..."

What Fattie says to John:

"John, each of your predictions the last 27 weeks has been wrong. Two of your systems failed. In those cases you tried to blame someone else. Your library XYZ is rough, buggy, and underdeveloped, your choice to use it here is extremely unprofessional."

You get the picture.

As you can see, I never have ANY of the problems you describe. :)

(Conversely, folks love working with or for me, since I am so completely direct and never waste a second of anyone's time.)

Again, the actual reality of the situation is you have to be more direct.

One can't be "an enabler" as it were.

If someone interrupts you, speak right up and tell them to not interrupt you. And so on.

Unfortunately, that is the only "real" solution.

Perhaps try to take small steps towards a more

  • "Data-like"
  • "it's just work, not highschool"
  • completely blunt, direct

language set.

A good start would be "no interruptions" policy. Bluntly state "You just interrupted me". That will solve a third of the problem set here.

  • 4
    I was going to say what @user259590 pointed out, that while in theory this is a great answer, the reality is that when contactor gets confrontational with a permanent employee then it's the contractor who will be removed to resolve the tensions (pretty much always unless the company already had a lot of issues with John). Downsides of having less stable employ, you need to tiptoe a lot more, it's not an equal balance of power.
    – Aida Paul
    Nov 13, 2020 at 14:24
  • 3
    @TymoteuszPaul that is until the project is failing and the manager knows the only solution is to get the contractor back, at a higher rate :) and last time I saw this happen within 2 weeks both the employee causing it and the manager got moved.
    – Solar Mike
    Nov 13, 2020 at 14:27
  • 3
    @SolarMike take it from a contractor for life, if an employee got tossed out over a contractor, that employee was going to be gone soon anyway and at most you sped up the process by month or two (in which case if you stayed quiet the problem would sort itself soon enough anyway). Especially in Europe this balance is even more skewed towards the employee, right or wrong, as a contractor your job is always at risk whenever you take more assertive stance. But yep, rarely there are those turnarounds.
    – Aida Paul
    Nov 13, 2020 at 14:29
  • 1
    @user259590 well, it was in Europe that I saw it happen... but you lot seem to know it all.
    – Solar Mike
    Nov 13, 2020 at 14:51
  • 1
    @user259590 , I work in and for European entities constantly. I talk word for word as in the answer above (well, you know, sometimes in another language!) to employees, other contractors/consultants, and indeed owners and managers. POLITE but DIRECT. Contractors are sort of "more important than anyone", almost like a "consultant" you know? Anyway, as you say " I will definitely be trying to adopt the mindset..." I believe you've hit the nail on the head
    – Fattie
    Nov 13, 2020 at 19:12

You're not going to like this answer but... you don't have the ability to resolve this.

Step back and realize the traits you've ascribed to this person: they're condescending, arrogant, argumentative, and cannot admit they're ever wrong.

With all of that said, I can't imagine any conversation about this with John would bear good fruit. You don't have the ability to convince John, and you don't have the ability to force John. And no matter what you'd be tempted to do, arguing with John is about the worst thing you can do. You'll either lose or make them loud (overly-argumentative people don't just 'go quiet'. They either escalate the stakes/volume or shift to another aspect to argue about.)

To be honest, conversation with John about this strikes me as a lost cause.

So the next natural step is your shared boss - the CTO.

But you've described the CTO as being extremely conflict averse. Which, honestly, is almost a death knell of the situation. Forget small-fry stuff. Imagine John starts arguing about things that substantively matter - company direction, tech direction, finance allocation, etc, etc. Both you and the CTO are just kinda following wherever this guy leads you. Which is a bit insane, since he's only been with the company for 6 months and only has 5-6 years of actual experience.

If I were in your shoes, I'd try one of two things:

  • Find a different job, with an actual management structure.
  • Convince the CTO that the status-quo with John isn't working, and that something has to be done long-term to make sure John doesn't just do whatever his whims tell him to.
  • Thank you Kevin! Yep, I think you're absolutely right. I kind of hoped there could be some clever trick I could use to change this guy's behavior, but it's really none of my business.
    – user259590
    Nov 16, 2020 at 8:15

Start by looking for another job so you have a way to get away from this toxic person.

Then you might want to ask John for a private chat. Explain calmly that you feel he is dismissive of your opinions and constantly interrupts, which you find frustrating. Don't mention that he is always wrong, concentrate on how it affects you. Ask that in future he adjust his behaviour and trust your judgement, especially since you have more experience here.

  • 2
    Thank you! I forgot to mention that I'm a contractor (added it onto the answer now). I have two active contracts atm, and this is my main one, so quitting isn't really an option. He isn't always wrong, just completely dismissive of other opinions.
    – user259590
    Nov 13, 2020 at 12:22
  • Quitting is not an option, but replacing is. Find another contract. This is a company that hires people that possibly are in the middle of their Junior Grade into Senior positions.
    – TomTom
    Nov 13, 2020 at 16:26

You must log in to answer this question.

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