Things Great Engineers (almost) Never Say
My job as a recruiter of software engineers and my 12 years as a user group leader have provided me the opportunity to speak with many talented technologists since entering the business in 1998, and through my interactions I’ve been able to notice several behavioral patterns shared by those that are considered to be the most skilled. To develop a profile of a candidate I ask many questions that can lead to a variety of answers, and I pay close attention to responses. Beyond behaviors, there are things that you hear in conversations with less skilled engineers that you don’t hear in talks with the best. Here is a list of quotes I sometimes will hear, but that I almost never hear from the engineers that are most coveted.
- “I’ve used _____ but I have no idea how it works” – Great engineers gained their skills through probing and curiosity. They go ‘under the hood’ of the products they use just to understand how things work, even if that information will never be very useful to them. It is unclear whether this need to dig deeper is a choice or a compulsion, but it seems that it is a trait of the best talent.
- “______ works, I just don’t know how to explain it” – Not only do the greats know how things work, but most of them derive genuine pleasure in telling others why and how things work. This is often true even if the other person doesn’t care to know. Over the course of my career I’ve listened to engineers talk for thousands of hours, and in almost all cases my conversations with the most talented go much longer. I actually made a point of scheduling an extra fifteen to twenty minutes on my calendar when I will be speaking to someone who appears to be great on paper, as I know that the person will go deep into some technical details and nuances that will come up in conversation.
- “I will need ______ (tool/condition) to complete this task” – The masters of development will have the ability to improvise and adjust on the fly to arrive at a solution in non-ideal conditions. When you hear of engineers being compared to MacGyver they are speaking of this very rare skill. Greats will figure out a way based on minimal resources and will be aware of alternatives to their first choice of tool.
- “I’ve learned all I want/will ever need to know about ________ “ – Continuous learning and improvement is probably the most obvious differentiation between the good and the great. They don’t just get to a high level and then rest. The best engineers understand that industry progress causes them to never stop learning, and if they are not gaining enough new knowledge in their day jobs they will invest the time to learn during off hours.
- “There is no solution” – The greats will continue looking at a problem different ways to come up with an answer instead of conceding. This characteristic can be both a blessing and a curse.
- “I hate programming” – At times a great engineer will hate their job or employer, but their love of solving problems with code is what brought them to this skill level.
- “I’m an expert in _____” (when it’s not true, and even sometimes when it is true) – The strongest engineers have no need or desire to lie or exaggerate the depth of their skills. Much of the great talent will be reluctant to say they are an expert in anything, as they are aware others could know more.
- “I don’t understand the business” – The stronger engineers will always want to know how their code impacts the employer and is able to describe their contribution and value to the organization.
- “I don’t pay particular attention to industry trends” – Being both great and relevant (in demand) is only possible if you keep an eye on where the industry is headed. When speaking to talented engineers, the topic of which new technologies are actually viable and which are a passing phase will often come up.
If you find yourself using any of these lines on a regular basis, give some thought to why. Quoting one of these lines in a job interview could be a serious mistake.
Another thing an engineer rarely will say is “I don’t/won’t work with or learn _______”. You should be flexible enough to learn something new, even if it doesn’t belong to your field of expertise, when it is needed for the job at hand.
Actually my experience is that the very best know when to refuse to use a particular technology. It’s very easy to go along with something inferior and make it work, but by objecting early you give up short-term comfort to avoid long-term problems.
Having a preference for a particular technology and outright refusal to use something regarded as inferior are obviously different concepts, but I can see some situations where this could be an issue. I think an engineer who simply refuses to use x because of a certain belief will probably develop a reputation as a prima donna, or worse would be out of a job. I would think the most professional way to handle a situation is to make as strong a case for y as possible, and if you fail you at least have limited your exposure should the project fail.
That’s why I put the “learn” into it. I was aiming at outright refusal without even grasping basic concepts.
It is not always so obvious, but it is comfortable from the employer’s perspective. I am not against learning. I just do not agree with the demand of accomplishing tasks for which I do not have a chance to prepare first. That’s why I would not like to take every task in every technology.
1) Some companies assign a developer to a role and since that moment they treat him as an expert in this field, but they do not give enough time to prepare for the task properly. I think the flexibility should be from both sides – the company and the developer. 2) If someone is a junior developer, do you expect this person to accept tasks in many various technologies? Or should he or she learn a basic set of technologies first and only with some more experience take new challenges?
actually not wrong for us to try a variety of new technologies that can facilitate our work, in any field. so we should never stop learning.