I have a colleague who thinks he knows everything better than me. Sure, he knows many things, but not everything. He knows quite some things better than me, but I also know other things better than him. Yet, he believes he knows everything better than me.

He pulls up my changes and starts criticizing them. I'm sure our manager put him up to that. I constantly have to defend my code, even when I know it’s good code and his only argument is “I know because I programmed for 20 years and you just 1”. I've been programming for 10 years though, followed formal education (at university) for 4 and have been working professionally for 2, 1 when I started here, so I am not clueless, even though he acts I am. He says “Why are you using Linq to filter that list, a couple foreach work too.”. I think he’s trying to hide that he’s the only developer in the company that doesn’t understand Linq. He keeps telling me my solutions are “overkill” when I use a lambda expression. He also looks at me with a blank expression when I mention SOLID.

He’s been badmouthing me to our manager, because I refuse to name my class “Request” to “RequestClass” and other weird reasons.

He shouted at me a few days back. Unfortunately, no one was within hearing distance. Luckily he’s been away from the office since, so I thought I was able to calm down some. You see, I suffer from a generic anxiety disorder (don't have an official diagnosis yet, but I've been in therapy for about a week). I've always been a worrywart, but the anxiety attacks started a few months back. Today I saw him again and I immediately felt an attack coming up. I’m hiding in the bathroom at the moment. I’m using women-business as an excuse. That works, but not permanently.

My manager has instructed him to check on me, since I took long on a change request a while back. It was a difficult one because I had to refactor a class that this programmer wrote (badly). Of course he claimed that it was easy when the manager asks. The manager and this programmer go back a long time.

My seat is in view from both this colleague and our manager.

How do I go about this? How do I hide my anxiety attacks? I don’t want to be fired, I have a family to feed. Location is Netherlands. We do have a HR department. This manager manages this other programmer, me and another guy who just got diagnosed with a depression caused by work and only told me.

  • 62
    @Dukeling Anxiety itself is off-topic, dealing with the workplace effects is not.
    – Belle
    Commented Oct 18, 2018 at 17:33
  • 2
    If you are maintaining code written with a unique style, you should probably emulate and preserve that style, even if you dislike it - being able to do so is a critical skill in large projects. At least unless you can get an explicit mandate from higher up, stated in that author's hearing, that the company wants to start transitioning to something else. Conversely, if you are maintaining code not written in the critic's requested style, the rest of the team should be stepping up to defend you and put a stop to irrelevant criticism. Commented Oct 20, 2018 at 21:37
  • 3
    As much as your update made me smile, I would still recommend that you select an answer you actually agree with and skip the sarcasm (which as you can see in @Korinna s comment doesn't necessarily work online), because if you feel that answer didn't help and someone with a similar problem gets here in the future, it might be nice to show which answer actually helped you most instead of which one you disagreed with most.
    – Mark
    Commented Oct 22, 2018 at 10:28
  • 7
    @Cyonis, please don't give up on programming!!! You just need to find a better working environment, as your current one is clearly toxic. Your update really saddens me, as your lead has clearly failed to mentor you properly! Don't throw away your years of passion and experience just because of one guy. Commented Oct 22, 2018 at 16:00
  • 5
    @Dukeling Point taken. Perhaps I've just been able to imagine doom scenarios again. Just called with my husband. He says I need to stop listening to people who say I'm an idiot and believe in myself. They're in the minority, even if they seem louder to me. Step 1: accept the other answer. Thanks :)
    – Belle
    Commented Oct 23, 2018 at 10:03

11 Answers 11


Let me start with a platitude: It's not you, it's them.

It may sound trite and obvious, but on the emotional level I get the feeling from your question that it isn't obvious to you. It's your colleague who's being unprofessional, and he probably even (at least subconsciously) knows it and lays pressure on you to avoid the consequences of his own actions. And your manager, who either doesn't pick up on it or doesn't care about it, isn't a star manager, either (particularly if there's another person in your group who's depressed because of work).

From your question, you are a professional, university-educated .NET developer who knows her stuff, living in a Western European country. With what I know of the current market, it's not you who should be worried about them firing you... they should be worried that you will "fire" them. And you should probably fire them (ideally after securing a new job where people appreciate you). Imo, life's too short to be working with a-holes with inflated egos when you can find better work elsewhere - and it sounds likely that you can. I suggest to do a bit of job hunting, if only to show yourself that you can find a new job if you get fired. To alleviate the rational part of the fear you have.

Which leads to the next step: If you know that you have little to be afraid of, you can call their bluffs and win or avoid their games of chicken. If you know that you're following the best practices of the trade and that it's their loss if they fire you for it, then it gets easier to stand up to the BS.

I was in a somewhat similar situation a while ago. At some point I was so frustrated and depressed that I couldn't take the random displays of dominance from a colleague anymore - and started pushing back. (On that day, she wanted to have the my desk rearranged while I was working at it. I only found out about that when the workmen arrived. I exploded. The desk stayed where it was.) That's when it started getting better. Ultimately, however, it really got better when I left that job for greener pastures.

Often, there's really nothing to back up the dominance displays of a-hole colleagues - they just try it and see if they can get away with it. You don't have to let them get away with it. Your colleague is probably (subconsciously) worried because he knows his knowledge is outdated and if/since he doesn't do anything about it, one day he'll be out of a job. I'm not saying this to make you feel for him (he obviously doesn't feel for you) but to show that he's not as strong as he appears.

Continue with therapy. Discuss what's needed to take time off with your therapist - short term (in case of an anxiety attack) and long term (to decompress from this situation). What would you do if you got a really bad headache that doesn't go away with painkillers? Hopefully: go home? Consider doing the same if you get an anxiety attack?

Improve your mental health by opting out of the overtime they want you to do. (They do want overtime, right? Dysfunctional workplaces often aren't that efficient, so they require you to stay longer to put out the fires that their bad management fuelled.) Don't work through your lunch break, take time to eat and rest and recharge. Ask your friends and family to support you because you're having a rough time.

It sounds like you're convinced the manager is firmly on the colleagues side - are you really sure about it? If not, explain the best practices and how they benefit the company to your manager. Sane managers like employees who do stuff that's good for the company. If he doesn't, all the more reason for going job hunting.

I wish you the best of luck and get well soon!

  • 7
    This answer is great. But I don't think the OP should focus on the fact that her code follows "best practices", because today's "best practices" may have sounded atrocious yesterday, and vice versa. Instead, I think she should invest some time to learn the merits of multiple practices (if she hasn't done that already at some point). There's nothing quite like the confidence you have when you know that you can comfortably apply any practice, and that you ultimately made an informed choice, whatever that choice was.
    – Natural20
    Commented Oct 18, 2018 at 18:00
  • @Kleronomas At the same time, though, if her code is following best practices (regardless of specifically which practices), and she is following company style guidelines, she isn't doing anything wrong. She is perfectly within her rights to take some solace in the fact that her code is perfectly sound, even as her colleague is trying to verbally abuse her into using antiquated conventions. "It helps to learn new practices" is not a good excuse to bend to every little whim of a colleague with an overly-inflated ego.
    – Abion47
    Commented Oct 18, 2018 at 22:17
  • 1
    @Abion47 I think you may have misunderstood my comment. I'm not saying that she should bend to the whim of any arrogant coworker — she should actively ignore that guy (and report him, if possible). I'm saying that she will probably be more confident to stand up against him if her confidence stems from knowing why her code is good, rather than if her confidence stems from knowing that she is following best practices.
    – Natural20
    Commented Oct 19, 2018 at 5:46
  • 4
    I would agree if this were about things unrelated to junior dev's code, but what OP describes sounds like it is the legitimate purview of the senior dev in question, in which case OP would run the risk of being labeled unmanageable.
    – bob
    Commented Oct 19, 2018 at 18:17
  • 4
    Agreed. In the grand scheme of things, life truly is too short to be dealing with people like this. Chalk it up as a learning experience, move on, and be grateful there are abundant opportunities.
    – Mark C.
    Commented Oct 20, 2018 at 18:17

My honest advice is to look for another job. You cannot change other people, especially people like your colleague, but you can have a new start with different people in another company.

Usually, I would advise you to respond to any of his silly requests with objective facts, ask for objective reasons for his criticism and show him objective sources for technologies you propose. But in your case, I'm not sure you're able to pull it off. Anxiety attacks are nasty and thinking things through calmly and logically is almost impossible during an attack.

But anxiety attacks are reason to go to a doctor and take a sick day. Ask your therapist for practical advice and strategies on how to deal with the trigger of your attacks.


Contrary to what others write, if I were you I wouldn't tell my employer I have anxiety.

What law says and how people react are two completely different things. I've experienced people being bullied for so many reasons. The fact that they shouldn't be bullied and that it's illegal to bully didn't play any role.

This seems like a political conflict. Your colleague is trying to show you who the boss is. He's trying to enforce his dominance on you. This happens a lot and even more so if he's a senior male and you're a more junior (in terms of age and career length) female.

Don't quarrel with him, just do your thing. If possible smile while doing your thing.

Accept that some things don't depend on you and just take a big breath when the guy requests something silly from you. If your boss supports these requests, just perform them. Don't try to prove to anybody they make no sense.

If you are strong enough, you can even try out a different strategy. Go to him and ask him about his opinion on some problem. It doesn't matter if you know how to solve it and don't need his help. Go to him and tell him something like

Hey [Dick], I've been wondering if you could help me with it. I know you have much more experience than me in A, so I think I could use a second opinion. I would appreciate it a lot.

You don't need to believe it. See it as a strategy. He will be able to show you he's the master, save your poor, damsel in distress's ass and will like you more. When he gives you an answer, thank him profusely for it, even if it doesn't make sense. Stress how much he helped you. Of course only if you feel psychologically able to behave like that.

Or ask him to have lunch or a coffee with you. Compliment him on staying with the company so long. Ask him about his work style, what communication style he prefers etc. Don't talk much. Listen. We all love the sound of our own voices. If he feels listened to, it's possible he won't try to dominate you in your work.

  • 5
    I don't really like this advice. I, for one, do not like the sound of my own voice at all. Also, I personally couldn't stand to suck up to somebody the way you suggest, never mind inviting them to coffee and exposing myself to more of their obnoxious behavior.
    – user159517
    Commented Oct 21, 2018 at 14:22
  • 3
    @user159517. Tbh, I don't like it either. But I went through that so many times in my own life that if I hadn't figured out how to deal with assholes in the workplace... I would be the author of the thread "fired 3 times" (a bit lower in the thread queue). In this kind of situations you can try to talk, which usually doesn't bring much, and then quit. Or try to deal with assholes, which I suggested to try out first. If I quited every time this happened to me, I would be a long-term unemployed (and unemployable) by now.
    – BigMadAndy
    Commented Oct 21, 2018 at 17:22
  • Would the latter strategy not be called an ‘enabling’ behaviour — not merely tolerating but actively encouraging the colleague's dominance behaviour?
    – gidds
    Commented Dec 16, 2023 at 17:00

One thing that might help involves dealing with the stressful situation. I've been in a similar situation when I was still pretty junior, and it caused me a lot of stress (and didn't end well because I handled it poorly). With more experience under my belt (9 years), I have some advice. Again, this is dealing with the source of the stress, which I think should help with the anxiety, if it works. Why I am saying junior? Because experience comes from work, so if you have 2 year of working experience, you're still junior. Non-working experience isn't a factor in this case. Junior has nothing to do with tech skill.

Senior developers have more experience, not necessarily sharper tech skills, and that's ok

This is something junior devs don't usually get, and it's frustrating to them. They see the senior dev's rusty skills and compare them to their own fresh, sharp skills, and assume the senior dev is a fraud who shouldn't be senior. But the senior dev isn't senior because of razor sharp tech skills (these dull with time as someone manages more and codes less). They're senior because they have years of experience from which they (hopefully) have learned pitfalls to avoid and critical soft skills that help them work effectively with management. Junior devs generally lack both, so they need senior devs to help steer them around pitfalls. One of the best junior devs I've ever seen still needed this. He let himself be steered (after resisting a bit), and it was a very good thing. If you notice management listening to senior dev, it doesn't necessarily mean there is a conspiracy afoot (in all seriousness, not meant as a slight at all). Managers look at experience first, tech skills second, and they likely (and very reasonably) respect and trust senior dev's judgement in looking at the big picture.

Don't fight the senior dev

Don't fight the senior dev. Don't. Every junior dev does (I did too), but it's folly. Yes junior devs have sharper tech skills, but they lack experience, and so usually don't know nearly as much as they think, and give the senior dev far less credit for knowledge than they should. And second, and very important, management trusts senior dev to steer the ship and to guide junior dev. Management expects junior dev to follow senior dev's lead. If junior dev refuses and says "but senior dev is an idiot, I know better because of XYZ priniciple", management won't think "wow, junior dev is right, senior dev is a fraud; I'll fire them and promote junior dev". Management thinks, "man, this junior dev is unmanageable and a big risk. I hope they fall in line soon, or we'll have to show them the door." I'm sure the last line isn't helpful for anxiety, but there's good news: there's probably time to turn the ship around! What should you do?

Submit to the senior dev's leadership!

Does the senior dev say to use GOTOs? Then use them. Raise concerns in a way that demonstrates humility and respects senior dev's experience, but still raise concerns (best done as genuine "I want to learn X" type questions, not "Isn't that a foolish way to do that?" type questions). Raise such concerns from the position of first assuming senior dev has a good reason and wanting to learn what it is, but communicating that you'll go along with what they say regardless, you just want to learn. I'll repeat: do what senior dev says. The only reason you should not do so is if you know for 100% certain that senior dev is not in any way in a leader or mentor role over you--not the tech lead, not over the project, not over the codebase, none of that. If your manager hasn't said this explicitly, then you should assume that they are. That's what senior devs are for.

Remember: your job is not to do things perfectly, your job is to get things done

Junior devs often don't realize this, but at the end of the day code must get done, and someone has to have responsibility for making decisions on how to architect the code, coding standards, etc. That is the responsibility of a senior dev, and quite likely of the senior dev in question. That means it's not your responsibility as junior dev. As long as you raise concerns in the right way (see above) when you have them, it's okay to write code in a way that doesn't make sense to you or feels like you're compromising code quality standards (with experience you'll learn about the tradeoff between cost, speed, and quality that makes this a given in the software industry; senior dev has probably already learned this lesson).

Why this will likely help

First it will hopefully repair the relationship between you and senior dev. Senior dev's responsibility is almost certainly to direct and mentor you. Right now you are accidentally making that difficult and stressful for senior dev, and you're seeing pushback from them (granted in a way that is not appropriate, but people are human). Repairing that relationship will make things less stressful for you, and reduce your anxiety, which should help your anxiety attacks. Bonus: it will also likely improve your image with your manager, which is important. And with time and experience you will start to see why all of these things are true, which will help with the anxiety as well, long term.

If this doesn't work

If you do all of this, fully, with complete humility and sincerity, going along with what senior dev says (and giving it a reasonable amount of time--at least a month or two), and they are still being abusive, then I agree with another poster that you need to look for another job. And of course none of this precludes the need to give priority to your mental and emotional health, nor does it assume that reducing your stress will fix everything, but it is a tool that should help, in addition to other steps.

  • Comments are not for extended discussion; this conversation has been moved to chat.
    – user44108
    Commented Oct 22, 2018 at 9:56

While this developer is the direct cause of your distress, it seems to me that the real problem here is the manager. This is one the kinds of dysfunctions that happen on technical teams where the manager doesn't really understand the work that team does.

When you don't really understand what's going on as a manager, you are forced to rely on others to understand the quality of work and make decisions. That's not necessarily an issue in general but what often occurs is that the manager doesn't know how to choose the right people to listen to. They will tend to base their assessment on superficial things and often choose the exactly wrong person. The classic is the team-member who produces brittle and often overly-complex solutions which create a lot of problems that only they can resolve. What the manager sees is the 'hero' fixing issues. "Uh-oh, the TPS reports are failing again! We need the hero!" The developers who write code that is stable and robust are not constantly saving the day and seem dispensable.

That might seem stupid (it kind of is) but it's a natural result of how our minds work. Things that don't change and work fine tend to become invisible. For example, how often do you think about your heartbeat? Probably not often when it's normal. You also need to understand that most people have no idea what's going on inside a computer. It's all a mystery. They just see a hero firefighter. They don't make the connection that the hero is really an arsonist.

You've landed on a team with a 'golden boy'. When the golden boy is not really terribly competent, they can be very territorial and jealous. If you challenge them on a technical level, they can become very aggressive and attempt to bully you into submission. The reality is that their status is typically very tenuous. Once the manager starts seeing evidence of their ineptitude, the situation can change very rapidly. Often the manager will become angry as they start to see that they have been played and that their own standing in the organization was hurt by this person. The golden boy is desperate to prevent any cracks in their facade of competence.

You have three basic approaches to choose from:

  1. Submit and allow the golden boy to dominate.
  2. Go to war and expose him.
  3. Leave and find a new situation

The first one is not a choice I would make unless I desperately needed to keep my job. I've done #2 a number of times, mostly because of my personality and not so much because I really understood the dynamic. It can be really uncomfortable and there's some risk you will be sidelined or fired. I've suffered the former but not the latter. How going on offense will affect your anxiety is hard to say. Stress is often a result of feeling helpless so actively solving issues might help. And if you are successful, you are still stuck with a manager who doesn't know what's going on. You might become the golden boy ('golden girl' has a very different connotation, I welcome suggestions for another non gendered term for this idea). Maybe you want that, personally I would prefer to work in a non-dysfunctional team. One thing to keep in mind that J. Chris Compton offered: "If you are full of emotion (perceived to be upset) when you explain your side, you're less likely to deliver a message that will sway/convince the other person. My opinion from watching people argue technical stuff - the person who is emotionally charged is more likely to be perceived as wrong (all else being "mostly equal")." I'll add to that: know your stuff and be prepared to defend your decisions but if you realize you are wrong or the other person has a point, admit it.

Leaving is always an option. The main downsides with that it is hard to know for sure what you will be getting into in the next place and switching jobs too often can look bad.

One other thing that could happen is that the manager leaves. This isn't typically something you can affect although you could make a claim of a hostile work environment which could lead to dismissal. I'm not sure how that works in the Netherlands but in the US that exposes the company to lawsuits and such claims are generally taken seriously at any well-run company.

  • I doubt #2 (Go to war and expose him) is a good option. The manager already sees her as a person who took too long on a project (ref to refactor issue) and is probably already hearing from and believing golden boy when he said she can't code well (ref to LINQ). I'd say #1 is her best short term solution until she can implement #3. Trying to deal with both a toxic adversary and increasing anxiety is a steep uphill climb (though it can be done, #3 is less stress and no less healthy). Commented Oct 18, 2018 at 17:13
  • @J.ChrisCompton I've never been able to tolerate someone making incorrect objective assessments of my work. It seems that the OP has allowed this already so it's probably not the way she'll go. Perhaps if the 'other manager' can be recruited and has technical chops, though...
    – JimmyJames
    Commented Oct 18, 2018 at 21:41
  • #2 is the best option - but it takes an army / a warrior to go to war, not someone with anxiety attacks. So, option 2 is not an option but wishfull thinking.
    – TomTom
    Commented Oct 18, 2018 at 23:06
  • 2
    @TomTom An army may actually be an option. I noticed I'm far more popular and have a lot more credibility with everyone except the manager than the 'golden boy' (I like that term) - up to the point where some people want him fired. I just managed to recruit some 10 other developers and two managers. Got an offer to move team next week. Army secured... :) Let's see how this goes from here.
    – Belle
    Commented Oct 19, 2018 at 8:46
  • @TomTom I'm not sure about that. Or at least it has not been my experience. For example, I started a new job and one of the architect/developers there was considered to be the 'best' by the a manager. When I started looking at what he had built and talked to the manager about it, his impression quickly changed to 'this code sucks'. This manager actually new how to code at one point, he just never bothered to look before. In any event, faith built upon superficial impressions isn't very robust. A few cracks in the facade and it may fall apart completely.
    – JimmyJames
    Commented Oct 19, 2018 at 13:44

Sometimes, people (toxic ones) occupy as much (personal) space as they find available. It is at your will to place your limits and give no more space to him. This guy may never change but at least you can set some rules about his behavior to you.

From my personal experience with a toxic colleague (many similarities with your case), First, I talked with my boss and told him how much more productive I would be if some things would be different in my working environment, mentioning one or two facts that happened with my colleague. Secondly, I took the first chance given from my colleague after being criticized once more, telling him that even if he was right about his proposals, his behavior was not helping at all.

Νo need to insult anyone,try to bring to the surface his positive aspect of its character by highlighting his experience and at the same time make him to understand that your productivity depends on him and your good communication between you and him.

In my case my colleague's behavior became better (only for me!) He has the same behavior for those that have kept their mouths shut.

The good case is that you'll work in a better environment. But what if things do not work as you plan?

What would be the worst scenario? To get fired? Hardly enough to believe that would happen. In the worst case the guy wont change and you will have the option to quit your job or try another method. Suppose you quit, or get fired. So what? You will find a much better job. For you and your mental health. Your family needs you to be healthy first of all.

You could try to manage your anxiety attacks time by time by setting your primary feeling for this situation to be your anger instead of your fear. Yep, needs patience you have to struggle, but it can be achieved for sure.

  • 1
    Do you actually believe that he can not do it? Or you "think" that he would not be able ... because blah blah . He can use his anger to overpass his fears . Many have done it , he also can . He can also follow an alternative way . I have followed that way
    – Prometheus
    Commented Oct 19, 2018 at 6:48
  • 1
    @Prometheus Something that works for you will not necessarily work for someone else. I don't know what will work for her, and neither do you. Neither of us are her therapist. Saying "You can manage your anxiety attacks time by time by setting your primary feeling for this situation to be your anger instead of your fear." is very likely wrong and dismissive of her problems. Commented Oct 19, 2018 at 20:04
  • Sure we are not , but that's why i have cited my personal experience. Since some people (including me) have achieved something by using this method then i think it is worth citing . I do not think that OP will digest anything that had been given to him as a right advice without chewing it well before . He can filter it ,decide if it is suitable with his character/situation . He may try to adopt it or discard it , he may also choose to combine it with a another method and take a positive result .
    – Prometheus
    Commented Oct 19, 2018 at 20:50

I have been in a similar situation, in the same country. I'm just gonna share what I did and the effects, if that's not a good answer on WorkplaceSE let me know.

I'm a mobile developer, I work with 3 others, one of which acts the same way your guy does. He constantly complains about other people's work, even those that have been with the company for 15 years. He's theoretically very strong, but he lacks a lot of real world experience, he doesn't understand that when you work for a company you sometimes have to use the 1-hour solution that's good enough instead of the 10-hour refactor project to fix a bug. In meetings he starts discussions about everything, the whole team can say A and he'll still be adamant about B.

The first time this caused an attack for me, I completely shut down. It was in a meeting, I don't even remember what triggered it exactly, but this guy kept shouting the same argument no matter what I told him. I panicked and the moment one of my team members said something to the guy I removed myself from the conversation entirely, I don't have a conscious memory of the rest of the meeting, just stared at my can of soda, luckily the rest of the team finished the rest of what needed to be discussed.

Afterwards I went to the bathroom for a bit, to calm down and think about what to do next. I asked my superior to schedule a meeting. I have autism and was recovering from a depression at the time, nobody knew that yet and I felt I had to tell that first to fully explain the impact. So I just outed that to him, he's generally a very nice guy a few years older than I, so I felt comfortable sharing this with him. It helps I know he values my work and wouldn't change that opinion based on knowledge of these issues. I explained what happened and how it affected me, and that I didn't know what to do in such a situation. He responded very understanding and gave me the tip to just go to the bathroom the moment I feel an attack coming up. Stay there as long as I need to and tell him about the incident sometime afterwards. I've done so one more time.

The problem guy got an official warning a while after with a somewhat general "you don't fit the team, work on that". He's been improving ever since.

Do you have a "vertrouwenspersoon"? If so, talk to them, so at least someone in the company knows your situation and can vouch for you if things really get out of hand. (vertrouwenspersoon = a person in the company that you can tell things without them blabbing it to others, it's a thing some companies in the Netherlands have)


For long term happiness, you should find a new position where you will be happier.
It might take a couple months, but .NET skills are marketable worldwide.

With that in mind, I'm going to address something else.

Others have good input about dealing with your anxiety specifically.
There isn't a need to add to that part.

What I'd like to talk about is how you deal with things in general.
If you look at things differently, things might be easier on you.

So lets look at a few things that you say here, with fresh eyes,
and you can consider whether I have valid points.

Note: I'm not blaming you for the mess you've described.

Read that last sentence again please...

I want to suggest different ways to look at things - at your next job - no matter what it is.

He’s been badmouthing me to our manager, because I refuse to name my class “Request” to “RequestClass” and other weird reasons.

I have to ask... why didn't you just rename it?
He is the senior dev, and he is friends with the manager. Is that a hill you're willing to die on? Pick your battles.
There will be plenty of stupid rules at every organization. Why? (1) Because it can be much better to have the code all written in one pattern, even when that is sub-optimal, and (2) bossy people.
I had a friend that worked at a place where you weren't allowed to use a negation in an if statement (a good general principle... but dumb when ruthlessly enforced).

He says “Why are you using Linq to filter that list, a couple foreach work too.”

Tell him you thought it was more maintainable and offer to rewrite it.
(Without telling him or implying that he's an idiot... especially if he is an idiot.)

It was a difficult [task] because I had to refactor a class that this programmer wrote (badly).

Did you have to rewrite it?
By "have to" I mean was there actually no other way to make the changes?

He pulls up my changes and starts criticizing them. I'm sure our manager put him up to that.

This is something to talk to your manager about when you feel healthy enough to address it.

Yelling is inappropriate, you should not have to deal with that at work... ever.
I note that you say he is criticizing your changes, but the tone of the post seems to be that he is criticizing you.

At most places you'll have to deal with criticism of your work - work on taking it less personally.

He knows quite some things better than me... Yet, he believes he knows everything better than me.

While you may be correct, when you say "he believes he knows everything better than me" you're definitely projecting - which isn't the healthiest way to go through life.

In my opinion projecting can contribute to anxiety.1 See if your therapist wants to talk to you about it.

1 Nope I'm not a therapist. I "think it contributes" because most people I've know who have anxiety do a lot more projecting. That's "anecdotal evidence" skip this point if you think I'm wrong :-)

  • 1
    Also "because I had to refactor a class that this programmer wrote (badly)." - I do that at the moment. Problem? Logic was writen over 5 years, business requirements changing "daily". Refactoring always postponed for b udget reasons. Stuff like this happens in companies. You get a new guy, you put him on clearning this up because he is not "busy" yet with busines requirements. This is normal work, happens. (in my case we FINALLY retire the whole API and rewrite it from scratch - took me only 2 years and a LOT of new requirements making it seriously unusable).
    – TomTom
    Commented Oct 18, 2018 at 23:10
  • 2
    @TomTom Yes, I am saying that if you cause a multi-ten-million dollar loss you should not be yelled at. Written up? Maybe. Fired? Maybe. Screamed at? No. Where I work now, no one would scream at me if I generated a multimillion dollar loss - and yes, it is possible for me to do something like that. When that much money is on the line there should be adequate checks and balances (multiple reviewers) - never a chance of one person standing alone taking the blame. Sorry to hear that your experience is different. Commented Oct 19, 2018 at 16:07
  • While there is very much truth in this answer...it's a short-term strategy. You don't want to shut up and become a worse developer unless it's a step for something else. Commented Oct 20, 2018 at 17:48
  • @AdrianoRepetti Actually, I advised seeking a new job at the top of my post. If your take-away from my post is "shut up and become a worse developer" then I must not have written a good post. It saddens me that she's apparently decided to give up on the industry. Commented Oct 22, 2018 at 18:37
  • 1
    Yep, I wanted to reinforce that, it easily goes unnoticed. Oh, yes. What a terrible decision, especially if caused by one single experience. I hope it's not the case but it may be something she might regret in future. Commented Oct 22, 2018 at 19:00

I have another approach for your problem: your colleague seems always to have a better idea on how to do things, but those kind of people generally have one drawback: they are very into the deepest coding, but they have no clue that the programs they're writing are to be used by normal people (I mean, no IT nerds, all do respect), this is something you can use:

You go to your manager, and mention him/her that you don't feel good about the constant critics you get from your co-worker, so you have a proposal: every time that your co-worker finds that you do something wrong, it's up to him to come up with a real-life situation, where he can clearly indicate why his solution is better than yours. That real-life situation has to be agreed to by your manager.

This will result in the following situation:

  • Some of the situations he'll invent will not be accepted by the manager, as not being realistic enough, there's a winner for you.
  • Some of the situations he'll invent will be accepted by the manager, as being realistic enough, that will be a winner for him, but for you it will be an opportunity to learn from your co-worker.

Eventually, you'll end up with a list of real-life use cases, which your company can use a regression test list, which might heavily increase the quality of your product, and that will be the real winner for you, as you are the person who has proposed starting this regression test list!

  • 1
    The risk with this advice is that the coworker in question is a senior coworker. The manager is unlikely to receive this well. It signals "I'm an unmanageable junior dev who doesn't understand the significance of my coworker being senior."
    – bob
    Commented Oct 19, 2018 at 18:14

Here's the thing about developers with big egos and no skills: The companies that hire them and keep them long-term will die off. Eventually what will happen is they will cause a lot of code bloat, a lot of hidden dependencies, monolith-model applications, and so on, so that one day the code breaks and nobody except that guy will be able to maintain it. Then that guy will leave the company (retire, quit, fired, what have you) and the application will fail and the company will crumble under its own weight. My current company is working through a similar situation right now, where their old application was so poorly designed that they decided instead of fixing it, it would be better to just rebuild everything from scratch and throw the old one away, and they're spending a ton of time and money on it, that could have been saved if the old application was built properly.

So, that's the direction your company is heading, if their "senior developer" doesn't know about SOLID and nitpicks stuff like "Request" vs "RequestClass" (and by the way you are right in this case, it should be "Request"; suffixing everything with Class/Impl/etc is so old-fashioned, no wonder the senior developer has been programming for 20 years, he's probably still using Java 4 as well I bet ;) ). Do you want to be on this sinking ship when it eventually crumbles, or better yet, do you want to be there to pick up the pieces of someone else's mess? Of course you don't. So get out of there ASAP. You're on a sinking ship, time to jump it.

  • 2
    Except MOST companies do not crumble. Remember year 2000 problem? Likely not - not ONE bank crumbled, on a systemic bug introduced mostly in the 1960ies and 70ties. Companies crubmle when their business fails - most companies do not ahve IT as business.
    – TomTom
    Commented Oct 18, 2018 at 23:07
  • @TomTom Loved how you cunningly included an example of the Y2K bug in your comment about the Y2K bug! Commented Oct 19, 2018 at 10:39
  • @TomTom IT and software development are not the same thing. The terms are too often conflated, but saying that IT = software development is like saying that dentistry = open-heart surgery.
    – Ertai87
    Commented Oct 19, 2018 at 15:06
  • 1
    @TomTom Do you know why it went so well? Because people went ahead and fixed it. Had it been fixed incompetently, there would have been trouble. BTW, lots of places had their Y2K problems earlier. I know a woman who worked on a system that managed child support. Second half of 1981, one of the programs went "woman is pregnant in 81, the child will be born in 82, add 18 years, that's 0, it's 81 now, that's greater than 0, so no more child support payments". That one had to be fixed competently and reasonably fast. Commented Oct 19, 2018 at 20:11
  • 1
    @ChrisStratton agreed. I can tell you, it is far from standard to put “Class” behind a class name in the company. He just thought it was more descriptive because “it is a class that represents a request, not a request”, which doesn’t count for other classes
    – Belle
    Commented Oct 20, 2018 at 21:26

Your problem is not your coding habits or the way you do things, your problem right now is your anxiety. If you don’t get that sorted out with a professional/medications, you will see this pattern happen as you go through life. People will view everything you do in a unfavorable light, you will not inspire confidence, and after that, you can be the experts, the go to person for this type of business, and no one will take you seriously. Take some time and explain this to your therapist (don’t ever tell your co-workers), even if there is someone there that you trust. What’s happening at your workplace are details. Your anxiety and projected vulnerabilities are your priorities now.

  • 3
    Thank you, Rafeal. I'm already taking to a therapist. The problems won't go away overnight, though, and I'm still expected to come to work 5 days a week, which is the focus of my question.
    – Belle
    Commented Oct 19, 2018 at 10:23

You must log in to answer this question.

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