Bad software developers or “I’m a senior developer”

Hi there, today I’m going to tell you about bad developer types I had to work with. For those who don’t know there is gradation among developers, which goes like this in ascending order: beginner, junior, middle and senior. Those are general levels, and obviously, there are good and bad programmers on each level. I’m not saying that I’m one of the perfect developers, but I strive to be one. And in this article, I want to show you some traits of bad developers.

Overconfident developer

This type of developers can be found anywhere, give him any task and he will respond that is easy to implement. Ask him how long the task will take he will quickly reply announcing shortest time possible. He almost never writes any test, because he already put a short deadline for the task and doesn’t have time to write tests, why should he write any if the task was “easy” and he is confident with the code he writes. Which usually ends up as a disaster, he either fails deadline or produces shitty code just to stick with the deadline to show how awesome he is. If you’re working with this kind of developer multiply his estimated time at least by 2. Bad choice for enterprise companies, sometimes good for a startup if you’re building MVP.

Perfectionist developer

This kind of developer won’t start doing the task without a full specification with every smallest detail. So he can make a perfect architecture or perfect solution for the problem. Can reject your pull request several times on code review even with a tiny visual style problem in code like spaces, so you have to be careful with spaces =), fortunately, lint can solve this problem. Becomes a big problem if put as a lead developer, because the project will move slowly, as you can guess to make everything look and feel perfect. Will argue a lot if you ask him to make something fast or make a hotfix. Tends to be a good choice for enterprise companies but won’t fit a startup needs.

Theorist developer

This one often can be found among beginners and junior developers and junior developers pretending that they are “middle” or “senior” developers. May know a lot when you speak to him, or in an interview, but will definitely fail if check his practical skills. Loves to argue to demonstrate his knowledge. Can tell about any technology or framework, but does not how to use in real-world conditions. It’s good to know a little about many things, but you must know at least even one topic in depth with practical skills, otherwise, you’re nothing else other than a useless.

“StackOverflow” developer

Very popular among junior and weak middle developers. This type of developer can’t do anything without googling and asking for an answer on StackOverflow. I’m not saying that it is bad to do so, but if you’re working 1+ years and still googling and asking for help for any small task, it means you’re a stupid developer. But there is even worse developer type I call it “Stupid as fuck developer”, the one who can’t even search the answer on the internet. And guess what he does instead? Of course, bother teammates, friends, and everyone around him because it easier than putting some effort to find the solution. The most terrible part of this is that most of those developers just copy and paste the code, without further investigating why it works.

Robot developer

Probably doesn’t like the job he’s doing or thinks that he doesn’t have enough experience to have his own opinion on the project. Robots are mindless things, and they just doing their job. Sometimes good, and sometimes bad. Still, “robots” can be those who are afraid to have their own opinion, but can actually be good coders. The problem will start appearing if the developer doesn’t say about critical problems or easier ways to solve some problems. Maybe because he is shy, or afraid to look stupid. Often seem to have impostor syndrome, that’s why will try to work more than anybody else, like a robot. Commonly seen in a big company. So if you need a mindless developer who performs your orders may be a good choice.

Lazy developer

It seems that lazy developer usually the smartest developer because he doesn’t rush into the task without assessing it. Also, he writes less code, and by the rule: “less code you write, the fewer bugs you have”. But it isn’t always true. Sometimes laziness can cause a lot of troubles. First, because he can skip writing tests, which could’ve saved a ton of time in future (Not applied to startups😅).  Second, can approve shitty code during code review, so he doesn’t need to recheck the whole thing again. Third, can say that something is impossible to implement or very time-consuming to implement, even if it isn’t. So you need to be careful with this one. But if it is healthy laziness they are one of the best developers, because they love to automate things and find easiest and creative ways possible to solve problems.

Businessman-developer

It’s all begins with side projects, and books or articles about entrepreneurship. By gaining some theoretical “business” knowledge will start thinking about moving forward to create his own startup, or go to freelance. And will try to convince his friends and coworkers to do the same. It usually ends up badly if he fails when founds a startup, and then when he returns to work as a developer he can’t work with an engineering mindset anymore. That’s where he becomes a manager developer. No more coding, only talking. But if he chooses the path of being a freelancer it is a lot easier than creating a startup. So he can still be the same good old developer plus some business skills that any company should appreciate.

Designer-developer

Mostly found among front-end developers. Doesn’t care much about the code, as much he cares about the look of the application he builds. Can write nasty and shitty code, but the design has to be perfect. He is designer by heart but chose to be a developer because they earn more😅. Maybe, a great choice for startups wanting to save money on designer and hire a developer with designer skills.

“Senior” developer

Oh, this is very special kind of developer. Actually, there are two types of “Senior” developer. First, the one who worked more than 2 – 3 years, and yelling that he is very experienced and became a “senior”. Even though the only things he probably did is changed the color of buttons and moved them around (but not without StackOverflow). And the second type doesn’t give a shit about how many years he worked but instead the number of fancy technologies he knows or the number of companies he worked for. Fortunately, they can be easily detected on any proper interview, however, I’ve seen some in a position of senior and lead developers. But mostly in startups.

Not quite a developer

I’ll never understand this type. There some part of software engineers who don’t care about the stuff they do. They do not improve their skills, do not contribute to anything related to their career. Some of them even think that it is stupid to spend time learning something in depth or learn any architecture patterns. Its waste of time to write tests or do code reviews they think because software can work without those fancy things and architectural problems look far-fetched for them.

 

I made this article in hope that if you are one those guys, you will start thinking about it. Or if you’re beginner you’ll know what characteristics you need to avoid. And In my opinion, we all sometimes share some traits with bad types of developers, but if we know what’s wrong it’s more likely that we can fix our problems. I guess this list can be applied to any sphere, and it mostly depends on person himself.

Please do not be one of those guys, unless you hate your job. If you hate it move to something else, maybe you’re good at something you would never think of. Love and be passionate about the job you do, because it’s most likely that you spend the most of your time working.

Thank you!

Subscribe to be notified of new posts!

 
Please follow and like us:

11 comments on “Bad software developers or “I’m a senior developer””

    • Nicholas
    • 06.04.2018
    Reply

    Jerk developer: guy who points out everyones flaws.

      • Utemissov
      • 06.04.2018
      Reply

      😀 I should’ve added this on to the list. But I didn’t want to look arrogant, I made this list so newbies will know what traits they should avoid, and if you’re already skilled one to look at yourself from another perspective. So if you see that you share some bad habits with types from the list you’ll know that you have a problem which could end up badly in future.

    • Cameron Spear
    • 06.04.2018
    Reply

    I’m a little bit of most of these developers. 😁

    Really, tho, I’d say at my core, I’m the good kind of lazy dev with perfectionist tendencies (tho I like to think I keep it on check). But the more I work for large enterprise companies, the more they force me to pick up some of the bad habits of lazy devs.

      • Utemissov
      • 06.04.2018
      Reply

      Some companies just don’t care about people they work and the quality of products. I understand it is a constant struggle to go the easy way, bear up my friend. And Do not let them make you a shitty coder =)

    • Adam
    • 06.04.2018
    Reply

    I have only worked as a developer for several months, but I do see a bit of myself in most of these.

      • Utemissov
      • 06.04.2018
      Reply

      Don’t worry that ok if you’re just beginning =) I do see myself and other skilled developers in some of the aspects too

    • Aldo
    • 06.04.2018
    Reply

    This ia a stupid labeling. I’ve been working for 3-4 years as developer. I forget things so fast that sometimes I google the simplests things.
    For example, I have not been working with reading files in C# for at least 6 months, and I had to google how to read txt files because i could not remember.
    Yeah, I accept. I google things almost every day. This does not make “a stupid developer”.

      • Utemissov
      • 06.04.2018
      Reply

      It’s ok if you google things never done before, or do something rarely. But if you google the same shit every day, without realizing how to do something properly, it’s in my opinion “a stupid developer”.

    • Vini
    • 06.04.2018
    Reply

    No matter how you fit that list. If you can bring value to people that use what you build, you are doing a good job. It is not about being, but about doing. A lot of the stuff in this article tends to lead a project downhill, so watch out for them. But don’t label your teammates or yourself, there is always something worth improving.

  1. Reply

    I think that you’re caught in a trap of populist articles, which are trying to impose their stupid opinions on other people. I used to be in this trap a couple of years ago and it was really bad, so I would encourage you to focus on other things rather than trying to figure out how to be a good developer or how to write perfect code as it’s extremely subjective. Even if you have your own formula, it does not necessarily match the formula of another person, so please don’t try to judge people around you.

    If I ask you to tell me how to identify a “perfectionist” and where’s the line between “too perfect” and “not good enough” code, how would you reply? I’m pretty sure that you’ll fail to give me a proper inarguable answer because it’s virtually impossible as it’s going to be based on your _subjective opinion_.

    Moreover, you omit so many important aspects and factors involved in software development process that it makes your article almost pointless.

    What about the “values” which vary greatly from company to company? Won’t you agree that some companies can make certain very good developers bad just by putting them into a wrong environment or by limiting their resources such as time or something as stupid as the amount of air in the office space? What about the “culture”, “team-work”, hierarchy, shitty bosses, etc, etc? Some “fast-moving” companies don’t care about quality but focus on speed, experimentation and flexibility of their infrastructure, others prefer their developers to be “perfectionists”, so they have to deliver slowly and their deliveries generally add very limited value to the product. It’s very easy to blame developers in any of these cases but is he/she really the one who’s guilty?

    If you ask me, a good developer is a person who can survive, be productive and evolve in any environment no matter how “shitty” or perfect his/her code is supposed to be. It means that a good developer has to be able to play and tolerate all the roles you’ve described in the original post. Good news is that it’s just my formula and I’m not trying to impose it on others 😉

    PS This article contains a lot of toxic statements. It could be beneficial if you neutralize the toxicity as it can potentially play a major role in your career.

      • Utemissov
      • 11.04.2018
      Reply

      Thank you for your descriptive comment, I like it. I agree almost with everything you wrote. Except for things you addressed personally to me =) I do understand that labeling seems kind of stupid, but I wanted to look simple yet a little “funny”. And I’m more of a “stoic” than a toxic, and you’re right being toxic limits your ability to think

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.