Wizeline Chief Technology Officer, Vidal Gonzalez, shares his thoughts on what it takes to be an engineer in today's global software development ecosystem.
One of my first CS classes at ITESO was taught by Carlos Nafarrate. It was my first interaction with a well-known engineer. He was a distinguished member of the iEEE and just exuded professionalism. One of the things he taught us was to keep a tight agenda and to constantly take notes. To keep a journal and to reflect on the work that we had done and to always keep improving our craft. Back then, I did not understand that he was giving us powerful advice on how to achieve mastery.
Becoming a great engineer requires constant iteration, reflection, curiosity, and a deep sense of care for what you do.
Experimentation & gathering data
Great engineers are comfortable with experimentation and data. A culture of experimentation enables an organization to try new things. Software engineers today have access to a lot of data. The key is learning how to take that data and use it in a way to solve problems; problems that can guide business outcomes.
But living in the numbers will only get you so far. Reflection is just as important. Engineers need to constantly make decisions on the correctness of their implementations. Achieving a solution that is “correct” requires constant reflection and achieving the right balance of simplicity and maintainability.
Influential engineers know how to motivate others. They are collaborative in their approach and open to new ideas. They know that the best ideas come from iterative work. I cannot stress the importance of collaboration enough, especially in an organization like Wizeline—built on distributed teams and a global economy.
The right kind of mentality allows you to go deeper into a problem. To have the tenacity to push through when the solution is harder to come by. Click To Tweet
The right kind of mentality, allows you to become a transformational engineer. What does that mean? A transformational engineer has a heightened level of ownership, humility, and mastery of their craft that sets the tone for the rest of the culture. The right kind of mentality allows you to go deeper into a problem. To have the tenacity to push through when the solution is harder to come by. Transformational engineers have that tenacity.
Curiosity as a prerequisite
Development is a field of specialized skills. It is a field that innovates and changes fast, and you need curiosity to stay ahead of the curve.
Engineers are problem solvers. They get to work with so many industries and domains of knowledge. Curiosity is vital to understanding every concept that affects what you touch. A mechanical engineer responsible for building the wheels of a car would need to understand the friction and the wear and tear of the tires. Similarly, an engineer building a [web platform] would need to know about [programming languages] testing code, and infrastructure.
What problems are companies trying to solve? How can new technology be used to improve people’s lives? What can we build to make work more productive? These are the kind of questions that lead engineers to solve meaningful problems.
As you can see, there is a pattern; a passion for experimentation, the ability to collaborate, a growth mindset, and a natural inclination for curiosity. To be a transformational engineer in today’s tech environment requires ownership, a desire to make your customers (or users) successful, and a commitment lead the culture forward.