Career advice from Timothy James, an instructor at Pitt and manager at Google.
What is the difference between an average software engineer and an exceptional software engineer? Communication is a good start, but there are many differentiators.
Intellectual Curiosity
- An average software engineer is OK to get what they need from an API and assume that what's underneath is magic.
- An exceptional software engineer wants to know how and why it works and how those constraints and nuances affect the system.
Quality
- An average software engineer is ok to use something like PHP that lets them get the job done quickly.
- An exceptional software engineer wants to build something that will last and is willing to take a bit more time to do it.
Constructive
- An average software engineer is critical.
- An exceptional software engineer is constructive.
Role
- An average software engineer thinks about their own part and delivers it.
- An exceptional software engineer thinks about how it fits into the rest of the team's work and makes decisions on that basis.
Uplift Others
- An average software engineer works the best they can to deliver their own work.
- An exceptional software engineer works the best they can to make everyone around them better.
Product Sense
- An average software engineer builds to the written requirements.
- An exceptional software engineer builds to the actual needs.
Skillset
- An average software works in code.
- An exceptional software engineer works in code, design docs, collaboration, whiteboard, testing, monitoring, and other media.
Showing Up
- An average software engineer does what they need to do.
- An exceptional software engineer steps up when the team needs it.
Humility
- An average software engineer hopes they don't get asked about something they don't know.
- An exceptional software engineer takes ownership of what they don't know and therefore gets approached a lot.
Wisdom
- An average software engineer wants to be an exceptional software engineer.
- An exceptional software engineer knows when it's appropriate to be an average software engineer.