They are super opinionated.

An engineer who likes to apply one particular technology on every problem is not a good engineer. They are just being opinionated for no good reason. A good engineer would look at the problem, analyze it and then find the best solution (tools, programming language, etc). Experienced engineers would definitely have an opinion about different technologies but they would never enforce.

They are difficult to work with.

I can tell you this: engineers are naturally not the most sociable lot, otherwise they would be in marketing or sales. Sometimes, they are too shy or sometimes they are too technical when talking to non-technical stakeholders. Therefore, they often give us the impression that they are difficult. On the contrary, the best engineers love working in a team solving big problems.

Engineers need to be micromanaged.

Good engineers do not need to be managed so closely; they just need to be guided. Micromanaging their every line of code is not the way to go about it.

They must have a computer science degree.

Some of the best engineers I have worked with never had the luxury of completing a bachelor’s degree in computer science. They choose this profession because they love what they do!

They code in their free time.

No they do not always. Software engineers are people too. They have a variety of interests. Some tend to like gaming, most enjoy time with family and friends but few will code all day in their free time.