The role of a software engineer has a magnitude of dimensions. When I think of the people I've worked with over the years, here are my top appreciated attributes.
They are curious. Software engineers solve problems by pursuing truth. They prepare, weigh options, and follow a direction for optimal solutions. They communicate, write well, and are always learning.
Are collaborators at their core. Software engineers work together with others to develop and solve these problems. They do not go it alone. They seek to help others and share information widely.
Teach and mentor continuously. For each problem they tackle, it is an opportunity to show others the way. They take their time to grow these individuals in the pursuit of brilliant teamwork. When they need clarity, they create a method for teaching themselves new skills with or without training.
Partner and communicate effectively. Software engineers have supreme communication skills. They work in a complex environment where different teams, product owners, designers, architects, and others work toward a common goal.
Dive deep into the unknown. Without fear. Problems can be expansive, and they know how to break the issues down. They enjoy the craft, the detail, and can orchestrate a path to its resolution when a pattern is not clear. They form a philosophy and become opinionated.
Their craft has a procession to it. With toolchains and structured thinking and approach, there is a concept of mise en place. They invest in the discovery and improvement of their tools. The right tools are laid out to achieve the best results. They may even use meta tools to improve their decisions.
Software is also unstructured work, and they embrace it. They name and create metaphors for difficult concepts. Sometimes, they "marinate" with a problem until a solution forms. They create order from entropy and automate the repetitive.
They strive for code that is human readable. They go deep into the meta of writing software: the test philosophy, the structure, and correctness. Software products typically endure past the software engineers involvement with a project. They know that well-written code that is readable and traceable is essential to the success of their products over time.
They are a part of a community. Sometimes, in cathedrals, sometimes in bazaars, they work internally with their team or externally with the open source collaborators. They participate in significant initiatives and occasionally write and demonstrate to the broader audience.
They contribute ideas and are open to feedback. They have the backs of their teammates and help others when a problem needs solving. They spend their time wisely and ask for help when they have tried numerous options. They avoid silos.
Software is a creative endeavor. They love a profound technical challenge, enjoy being close to the reasons why the work needs to be solved. They appreciate being valued and recognized while striving to be egoless.
Leaders are born from engineering teams. For those that begin to find interest in organization engineering, or simply rise due to their technical prowess and empathetic strength as an inclusive collaborator, leaders emerge.
The code they write is not their value. Engineers understand that formulating approaches and problem solving is their value. Not the code they write. With each line of code they produce, they are learning, which has an increasing exponential impact on their current products and future society.