123

I started working at Dec 2018, currently, there is only me and the senior developer and we sit next to each other.

He comes to work really early and leaves early.

When I started working I noticed him really lecturing me about not touching his code.

Almost everyday when I come to work, I try to be at my best attitude and everyone at the office likes me and talks to every time, except him.

He becomes hostile every time there is something I want to ask him, that to him, seems like redundant question, just to clarify, my questions are related to HIS project that I have NEVER touched, BUT he somehow thinks I need to know every single bit of the code and tells me that I am stupid for asking and not figuring it out.

(And by the way, his code is so bad that all the variables are just bunch of random letters sometimes, never a whole word that describes it)

There were a lot of fighting like this and today something happened: yesterday I needed to finish a system I have been working on and when I ran the project, it crashed, so I started debugging and found out that he forgot to add a few lines to his code (the code that he didn't want me to touch).

It was 4-5 hours before end of work, I didn't really have anything else to do, and he kept me in the dark about what I should do next, and all the code is on his computer and he lets me have pieces of it every time I finish something...

So what I did is add 1 line of code (assignment) that he forgot, and continue finishing my work. (there was another thing he forgot but I didn't touch that because I knew he would go crazy)

Fast forward to today, I told him about what I did, showed him the line of code, he went silent. Just for the record, all the company sits in a long hallway and we can all hear each other and talk to each other (and see of course).

When he started talking he went yelling in front of everyone that he told me not to touch the code and it's the second time he tells me that, and I told him "ok I can delete it" and he again went quiet (and you could see his angry face clearly), I asked him if we can continue with the CR, he told me "I don't think I want to".

It was more yelling after that in front of everyone and I just got up and got into a empty room.

After that I got outside and a coworker came to me and told me about him that he is like that with everyone he worked with before, and every coworker that we have in the office is backing me up and I should be strong... I started crying because I couldn't help it.

I don't really know what to do, I already told the manager a week ago about all this and he didn't seem to do anything just told me that in two months or more we will be separated...

If I go and tell him again and he confronts him, he will be even more angry with me because I told the manager. And he is a greater asset than me for the company..

I really don't want to get fired because of that, and I don't know what to do.. If anyone could help me with this situation that would be great.


Edit: The manager just called me in, and told me about what happened and told me that what he said earlier about 2-3 month to separate us, will be even sooner (didn't specify a date).

He said that tomorrow he will talk to him about all that, and if I want I can take half day off or I can learn a new system they are integrating.

I don't know what will happen but you were right he told me he will work on it as soon as he can.

Thanks to everyone for the help I truly appreciate it!

11 Answers 11

219

The incident you described is unethical, unprofessional, abusive and borderline harassment. Irrespective of the facts about the efficiency, technical capability, time management etc or that person's "importance" in the organization (or whatever you are assuming by saying "greater asset").- this is about work ethics.

Time to have a talk with HR, without any delay.. Since you're already kept you manager informed earlier, pull him also in the discussion.

If things are fair in your organization, most likely the senior dev will be taking a walk, as he seems to be a serial offender in this case.

However, somehow if you feel that the HR or the administration is trying to cover up the case, start looking for job elsewhere. You don't want to be a part of the organization which encourages harassment and bullying.

  • 27
    @Anon222 and what do you expect to achieve if you stay in this toxic work environment? Whatever you think you'll gain, you're wrong. With people like the senior dev, this organization does not look like a very good place to work and learn anything, other that how not st speak up against bullying and how to harass other people. – Sourav Ghosh Apr 16 at 9:46
  • 13
    @Anon222 Keep searching for other opportunities, given your current situation, whatever you get will be better than the current scenario. – Sourav Ghosh Apr 16 at 9:48
  • 5
    "If things are fair in your organization..." Which is more rare than one would like. – T.J. Crowder Apr 16 at 13:35
  • 9
    @Anon222 It's a lot easier to find your second job than your first job. And with phrases like "all the code is on his computer and he let me have pieces of it " it sounds like you're in an environment with truly awful development practices (as well as truly awful coworkers), Start looking for something new. You'll never regret leaving. – Player One Apr 16 at 21:27
  • 9
    If he was yelling at OP in front of coworkers it is verbal abuse plain an simple. – Matthew Whited Apr 17 at 16:05
140

And he is a greater asset than me to the company

No. An abusive co-worker is never a greater asset to the company.

Everyone in your company, regardless of their level, has the right to be treated with respect - from the cleaner to the CEO. Your manager should know this, and simply moving people around this guy isn't dealing with the situation.

It looks as though this guy is known for this behaviour and people have either avoided or worked around him. Ask your peers how they've handled this, how did they report this behaviour, and how they dealt with it.

If possible, record this behaviour happening (whether toward you or someone else) and take this to HR. Remind your manager that allowing this situation to carry on isn't an acceptable way of dealing with it.

It's possible that this guy's defense is an autism-related condition and that "that's the way he is". That, however, is his problem. Abusive behaviour should not be tolerated - from anyone.

It's fairly obvious that this guy is both obfuscating and protecting his code base in order to protect his job. Again, this situation cannot be allowed to happen (for obvious reasons).

  • 50
    "An abusive co-worker is never a greater asset to the company", This x100, I cannot believe everyone knew about AND tolerated this kind of behaviour. The OP spoke about people being on his side, where I'm from they'd have showed the OP's colleague the door, it would have hurt his career. – LogicalBranch Apr 16 at 14:52
  • 36
    Abusive and unable to code. A liability. – David Apr 16 at 16:46
  • 39
    Oh please, let's stop using autism as an excuse for being an asshole.. – George M Apr 16 at 17:40
  • 6
    To support the statement that toxic workers are not an asset to the company, there is a Harvard Business School paper about their effect on workplace productivity. – 200_success Apr 16 at 22:15
  • 7
    There is a reason he was fired twice. – Matthew Whited Apr 17 at 16:06
26

You should have clear examples showing:

  • that you could not finish your work without touching "his" code;
  • "his" code actually is broken.

I used "his" because the code belongs to the company.

Additionally, keep reporting (to the boss and HR) his behavior as often as needed. Show how his work is sloppy. Complain that you are forced to work in an unprofessional environment because of this colleague, and that this affects both you professional performance AND your private life - since a difficult day at work cannot be "magically" forgotten at the end of the "shift".

Learn as fast as possible, you might have the (nice) surprise to be promoted to do his work.

You might want to discuss with HR too, yelling is not welcome in any company.


While looking for another job is definitely one alternative, I would not say that this workplace is toxic, but only one colleague. Yes, it is difficult. And it is likely that he will go away as soon as somebody can take over his tasks. Since you are a beginner, you might want to consider having a little more patience (if you can do it, and if you want). Also, think about this: do you have any guarantee that the next job will be perfect? I changed jobs several times, and I am yet to find one which comes close to "perfect".

  • 3
    "Additionally, keep reporting his behavior..." I believe that's the primary activity, not additional one. YMMV. – Sourav Ghosh Apr 16 at 9:37
  • 1
    I tried telling him both of the things you said, he just yell at me that I should NEVER touch his code no matter what, and the second one that I told him about his code broken and I couldn't continue just made him even more angrier. I will report to my manager again, I don't think he will do something but I will try.. Someone told me he heard about what happened today, but he didn't tell me anything and we past each other several times today. Thanks for the answer! – Anon222 Apr 16 at 9:48
  • 3
    @Anon222: it is obvious that you cannot solve the problems by talking to the guy - as the other colleagues confirmed. You have to present the information to the boss and to HR ;) The idea is, if you complain without proof, you are just a complainer. If you have proof that he is not doing a good job AND he is rude and aggressive, then things might change for the better sooner rather than later. – virolino Apr 16 at 9:53
  • 42
    Star performers don’t need to bully anyone. It looks like this guy doesn’t want anyone to look at his code, most likely because it is rubbish. – gnasher729 Apr 16 at 10:17
  • 3
    @gnasher729: true, for both sentences. – virolino Apr 16 at 10:19
8

What matters most here is not the senior jerk, but how your manager reacts. It sounds like the manager is entirely aware of the jerk's failings, and that he's tired of the jerk pushing new people out. They may well be seeing whether you're able to replace him if they get rid of him (either by firing him or by transferring him out somewhere). So in your place I'd do the following:

  • Work hard, keeping to your own area as much as possible, to demonstrate you can indeed do the job at the same level. If you find an error in jerk's code, show it to the manager but not the jerk, it's manager's job to deal with that.
  • Don't talk to jerk at all if at all possible, and in fact make sure all your interactions at least start in email.
  • Keep a log of incidents like this one, including date, time, witnesses, and quotes as exact as possible. This may be useful for you in negotiating your exit, it may be equally useful to your manager in firing him. Keep all emails.
  • Mark 3 months from now in your calendar. Start polishing your resume now. At 2 months at the latest, make sure you have a full-blown job search going, so that there is some resolution by the 3 months promised. There must be light at the end of your tunnel if you want to survive this as a sane person.
  • Make sure you tell your manager that you will hold him to his promise timewise, because enduring this situation is not viable. Be sure to remind him of it every month at least.
7

I am sorry he is like this. However, he may seem to be a bigger asset, what he really is to that company is a huge danger. As a coding team, you should be trained to have your code on a company GIT server and no code should live on any one computer. Daily pushes of that code should be done. The fact that all code exists on his computer alone is a huge problem if he decides not to come to work anymore or gets his by a bus. The company is too in experienced to know he has set them up for doom. You would require a staging server and a production server to push code. You would have access to produce code based upon your assignment, pass it to him for testing and he would make the decision to push to production.

Code should be written in such a standard that anyone can edit it as it should be easy to understand. Even if you did edit it, and it was incorrect, so what. It would still need to pass testing, make it to the staging server for testing and then to production. What he is, is an idiot wannabe devops guy pretending to be important like a mutt on the street with a bone.

You are supposed to be a team. He is supposed to be training you to fit into his code, habits and the company so that you too are an asset in the event of his absence. It would seem that company and manager have not thought of that and thus are doomed to fail.

I would recommend that if they are not team oriented and since management is so poor, you would be better off, moving on. Let them find another programmer. Proper management is providing direction and guidance to coworkers and subordinates. They are all failing at it. The end result will be the deterioration of your own personality and it is not worth it.

New contributor
Cybergei is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
  • 10
    Just a minor nit-pick. A code repo doesn't have to be GIT, but that is one example of an online repository for code, which includes the ability to look at specific check-ins and do rollbacks. TFS and many other options work as well, and all have their own pros & cons. Also, it can be really hard to have a coding standard for such a small team, but it should be looked into. – computercarguy Apr 17 at 2:51
  • 1
    @computercarguy sometimes all you need for a coding standard is a linter config. A small team shouldn't need to have a whole written-out standards document if automated tools can be used to verify that code meets a particular standard. – Chris Charabaruk Apr 17 at 23:29
7

So let me start with your yelling friend. He's highly protective of his code. Why would that be ? Are you just as protective and not letting anyone see a single line, or is your code in the repository free for anyone in the company to see ?

That 'dev' over here is perfectly aware how bad his code is, and how low his coding skills are. He understands that if you see his code in its entirety it won't take you long to rewrite his bullshit. It won't take much longer after that for you to explain to management that this "irreplaceable developer" is actually quite bad and should be going. I'm guessing that's the core to the reaction and the behavior. They are afraid you'll introduce the correct methodologies and he'll be SOL trying to change industries as no one would hire him.

I wasn't going to suggest job hunting but given your manager's reaction and the hint I'm getting that developing isn't highly regarded in this company (No reppos ?) it might be time to go.

  • Yeah, this level of rage and aggression normally comes from people trying to defend something they know is wrong but for whatever reason they don't want to face/fix. . . . What does SOL stand for? – brasofilo Apr 18 at 0:33
  • @brasofilo Sh!t Out of Luck (urban dictionary it) – Lightness Races in Orbit Apr 18 at 12:44
  • @Lightness, me and future readers thank you for the clarification ;) – brasofilo Apr 18 at 20:56
3

I just thought I'd chuck a little advice in as I went through the exact (and I mean EXACT) same experience during my apprenticeship.

The senior developer made terrible code, wouldn't allow me to fix any problems he clearly made, and blamed me for every mistake even if it was his fault. He would yell, throw tantrums, call me an idiot, and even ask if I were stoned.

This guy was allegedly ex-military, and not a very nice person.

I ended up standing up to him (as an apprentice), scared that I would lose my job as I had a newborn baby to support. But still I did it, and got separated from him at work, expanded my skills, got a pay rise and am now getting tons of other job offers.

I waited through 2 years of torment from that guy before standing up; there were countless conversations with my manager and director (who never got rid of him and still hasn't). I'd say: stand up, man. Tell him he's ridiculous, demand to be moved/separated from him and search for a new job whilst you're at it! That company clearly doesn't appreciate or respect you and will probably be taking advantage of you more the longer you stay.

Most of all: stay strong, I cried twice after some yelling and threats from the guy I worked with. It's fine to do that, because things get to us. You just have to realize when enough is enough and take the plunge.

Keep your chin up, man.

New contributor
Brayden Manning is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
  • Thanks a lot I really appreciate it! He also asked if I were stoned a couple of times, glad to hear you are doing well now! I'll get there too soon enough :) – Anon222 Apr 18 at 13:19
  • I like your answer - however, the line about your former coworker being ex-military is not relevant, and contributes to negative stereotypes against veterans. Essentially, you've equated "not a nice person" with "ex-military", which is a non-sequitur. – CobyCode Apr 18 at 17:15
1

He is absolutely right, you shouldn’t touch his code. However, the code that the company uses that he wrote is not his code. It is owned by the company, not by him. He has no rights to it.

As far as that code is concerned, agree with your manager whether (a) you have the company’s permission to modify code he wrote, obviously doing code reviews etc., or (b) whether you should send the developer requests to make necessary changes to his code, Cc’d to your manager, and escalated if the changes don’t happen in a timely manner.

BTW. In most companies, the worst you can do is retribution. Doing something that gets complaints is often harmless, but retribution against the complainant gets you fired. Tell him that.

  • 7
    Although I agree with anything else, I disagree with telling him about it. It is not reasonable to escalate the conflict as it can sound not as something that could be perceived as a constructive critic. Especially the magic word: gets you fired – mpasko256 Apr 16 at 13:30
  • 2
    This guy is not someone you want to take responsibility for fixing his attitude. It's too high a risk to your employer, much less your employment. He has a stranglehold on the code base that is going to require the company seizing his computer without warning to fix. (They could give it back after cloning the hard drive, but that's the only reliable way to capture the code base right now.) You could sink the entire project by just getting him angry and him deciding to delete everything and quit. Management and HR need to address this, not the OP. – jpmc26 Apr 18 at 10:53
1

You may be over your head at this company, and it may not be worth staying or trying to resolve things. Other answers have made many good points about resolving this while remaining at the company, but I would like to suggest leaving as the best option.

This senior developer needs to be replaced, not just because of his abusive behavior, but because of the way he has designed your company's systems. He has set himself up as a single point of failure by hoarding and obscuring code, and it is likely that no one else in the company knows enough about IT to recognize this as a problem. Are there things that no one else has credentials to? If he got hit by a bus, would you even be able to access the machine he keeps your company's code on?

You have made it clear that this is your first job as a developer. While you may be capable of replacing him, you are still a junior developer. Even if he were completely willing to train you as his replacement, it would probably still not be a good idea for you or the company. You would benefit much more from being able to work in a team and learn from others. Consider your hostile senior dev: there is no one around (besides you) to point out his harmful practices. Working alone at this early stage of your career could set you up to have bad habits of your own. (Granted, if he were willing to train you as a replacement, then he would be a very different person and not need to be replaced.)

The best route for this company would be to hire a senior developer with the goal of replacing the hostile developer - someone with not just the knowledge, but years of experience. The best route for you would be to find another job, one where you have GOOD examples to learn from, instead of just examples of what NOT to do.

New contributor
friggle is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
  • I know this comment is buried because of the late response, but as a fellow developer, this is spot-on and probably the best route for OP to take. Adopting such bad habits as a jr dev would be very unfortunate. The situation described is far beyond a simple workplace or interpersonal relationship issue -- it's a black hole for any software developer with a long career ahead of him or her. – Rocky Apr 18 at 22:33
1

Yup... you'll encounter developers like that as you walk the path. They never document anything, don’t participate in code reviews, won't help you... and their code is usually trash.

Personally I like to challenge people like this. Get on his turf, step on his toes, and mess with him a bit. Start doing his job. Build a prototype for a parallel system, but do it right, and make improvements.

The bottom line is that you're better than him, and he’s afraid of you—afraid you’ll take his job.

When he throws a tantrum, be cool and don’t engage. Really, what can he do? He's just blowing smoke. The whole office will love you for it.

I love to hear 'em scream >.<

  • 1
    Yes, be awesomer. Be the change you wish to see in the world. Just keep being awesome and people will love you for it. – Chloe Apr 18 at 19:18
0
  1. Tell hr and see it if can be resolved.
  2. If it fails, have 1 to 1 meeting with him and technical manager. Tell him where he wrote wrong code and you don't like his behavior.
  3. If it fails, change team
  4. If it's not permitted, file lawsuit against him and hire good lawyer.
  5. Leave the toxic company and colleagues.

protected by mcknz Apr 18 at 18:09

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.