I have worked with several software engineers that got fired, so I’ll base my answer on them. btw, I was never a part of the decision to let them go nor did I influence that decision in any way.
Being extremely argumentative; especially with the tech lead.
The  guy openly argued with the tech lead. He was actually a very talented  developer and knew how to code, but he boasted about his years of  experience as if it helped win the argument. He nearly started an  argument with me, but I didn’t even have any reason to argue, so nothing  happened.
UPDATE:  Allow me to clarify that I am aware the arguing can be a healthy  attribute to a large team but it was highly unusual to hear a raised  voice using outrageous logic such as touting the number of years of  experience he had. We always had healthy doses of conversations with  disagreement, but this individual was beyond reasonable. I get that  people can have differing views, but this was what I would consider  toxic. Yet I would still work with the guy and I gave him the benefit of  the doubt in that he was still adjusting to the new environment, but  about 6 months later he was let go.
Not able to pick up the stack.
Two  guys that were hired as a mid and a senior simply were not able to  figure out how to build features using our stack. And they were just  very slow. Our juniors were out-performing them so they were just let  go. Not the official reason why they were let go. I personally helped  them a lot. I patiently answered all their questions and I noticed that  the same ones were asked over and over as well. I sincerely hoped that  they would catch on and independently complete tasks but they were let  go.
Unable to take constructive criticism.
Same  with the first guy, but a junior was hired and was very upset when the  tech lead told him to rewrite his code. The code was copy-pasted with  minor differences and could easily be written in one set of code.  Normally, a junior or any programmer of any level, would agree that this  is true and rewrite it. This guy got so upset, the project manager and  client got involved. He wasn’t fired, but he left before the ax fell.
This all “should” be obvious…
The things I’m saying seem like common sense, but I was very surprised people still did it anyway and got fired for it. I think we should all generally be humble and admit where you’re wrong when proven with a reasonable explanation.
Skilled + hard to work with vs Unskilled + easy to work with.
A  co-worker once asked me if I would choose working with one of the above  2 choices and I picked the latter. I don’t want to work day-to-day with  a difficult person. What helps is that I also don’t mind sitting down  and teaching someone that’s easy to work with. If you’re worried about  your skills, work on them but more than that, don’t be an asshole.
In  short, my definition of a bad developer is one that I can’t help. You  could be the worst developer skill-wise, but if I can influence you to  have better coding practices, learn the stack, and have productive  conversations on approaching problems, at the very least you would be an  unskilled developer, but one that will eventually become a good  software engineer.
Check Also: 10 Proven Ways To Learn How To Think Like A Programmer
            
Oldest comments (1)
While being proficient in coding is important, having a fine mindset and desirable verbal exchange abilities are additionally critical for a profitable software program engineer. As viewed in the instance given, being extraordinarily argumentative, specially with the tech lead, can lead to a poisonous work surroundings and in the end end result in getting fired. In order to excel in this field, it is vital to be open to remarks and work collaboratively with others. And as you discover the contemporary software program developments, do not overlook to take a look at out the Top Media Player Apps of 2023: Explore to beautify your experience.