I've had some god awful managers in my engineering career and my managerial philosophy is twofold: have empathy and keep coding. Most, if not all, of my managers over the past 10 years have been people managers cloaked as engineering managers who have all stopped programming a decade ago. So much respect is lost for managers who have turned their back on the very craft that brought them into management. Before the pe…
The best engineering manager in my career was not amongst the best developers I knew. (Conversely, the worst engineering manager in my career was one of the best developers I knew). He had two particular skills that many will never have or take a decade or two to cultivate: he could provide you feedback, empathetically, and make you feel like he is genuinely interested in your success and improvement, and he could re…
Unfortunately the smartest and most component engineers I have known have nearly always come across as being arrogant. They have a very solid grasp of their domain and a strong skillset, but they also expect everyone around them to be at their level and instantly follow everything they’re saying. These people sometimes even have disciples who follow the philosophy of arrogance and engage in gatekeeping. I have concluded that while this is not ideal, it’s often par for the course.
Conversely, the best engineering leaders I have known (architects, tech leads, product owners, requirements analysts, etc.) have had really strong empathy and encouraged healthy debate while also making everyone’s input and analysis feel welcome and valued. Their technical skillset is not necessarily the strongest but they’ve usually been good generalists who could talk intelligently about something at a high level without having to know the technical details. These people have also been able to take those arrogant engineers and have gotten them to successfully collaborate with everyone from the junior devs up to management. A good tech leader really is just a good mediator.