Engineering Expertise Top 10 Characteristics of a Great Software Engineer By Mohan Shah | August 1, 2017 People who have software engineering jobs are generally perceived to be “smart.” But that’s just one of the engineering characteristics needed to become a great software engineer. Being book smart will help you become a good software engineer, but it will not necessarily make you a great software engineer, or make you stand out. There are several other traits that are necessary to becoming great in a software engineering job – in addition to an engineering-focused education. I’ve outlined below the top 10 engineering characteristics that a great software engineer should have. (Source: University of Silicon Valley) Engineering Characteristic #1: Time Management In a world that runs at a pace faster than a second hand on a clock, time becomes a crucial factor in determining your costs. Software engineering projects that are not delivered on time become white elephants. Engineering Characteristic #2: Team Player Most of the time, software development is a collaborative process, as it involves developing something that will be used by others. All such engineering projects require teamwork. Chains are only as strong as the weakest links in them, and teams are only as good as their least helpful team player. Engineering Characteristic #3: Continuous Learning The ability to learn and adapt is essential for successful software engineers because the software paradigm is continuously evolving with new technologies and new engineering trends and opening up new fields like GUI, internet and mobile. (Source: University of Silicon Valley) Engineering Characteristic #4: Readiness to Teach and Help Software development is also a time-bound process — a piece of software’s development life cycle has different phases, and in those different phases there will be different people with different engineering techniques working on the project. Your readiness to teach and help others is not only crucial to the project itself, but also to your own progress. If you do not teach others, you will be forced to do the things that they could have done. Engineering Characteristic #5: Accurate Judgment of Problems I remember a cartoon where a dog owner hires a craftsman to build a wooden house for his dog. The skilled craftsman negotiates the price and promises to deliver in three weeks. He comes back with a cozy two-bedroom dog house with a water fountain and a self-cleaning feeding plate for a Chihuahua. The only problem was that the dog owner had a Saint Bernard. Engineering Characteristic #6: Independence Being independent is very essential not only in software engineering jobs, but also in other aspects of life. You will note that independent thinkers and doers are able to come up with unique solutions to problems. The ability to think and act independently is necessary if you want to do pioneering work. (Source: University of Silicon Valley) Engineering Characteristic #7: Curiosity to Know How Things Work Curiosity is the mother of invention. Curiosity also propels continuous improvement, from Flintstone cars to modern day luxurious cars. Curiosity is what led man from the Babbage Engine to modern day supercomputers. Engineering Characteristic #8: Passion for Quality Work If you do not take pride in delivering quality work, then you will remain as ordinary as the work you deliver. Engineering Characteristic #9: Clear-headedness The ability to think clearly is very important in software engineering jobs. A software engineer is continuously dealing with abstract, intangible things like software systems and programs. Since these are intangible, they are to be dealt with only in the world of thoughts. Engineering Characteristic #10: Love for Programming A software engineer who does not like programming cannot be a great software engineer. Such an engineer would be like a barber without a razor. If you do not like programming, why would you choose a career in software engineering?