How a Growth Mindset and Machine Learning Skills Are Both Essential for Tomorrow’s Software Engineers

In this episode of ‘In Conversation With,’ Ravi Srivatsav (CPO and CBDO at NTT i3) joins Gokul Rajaram (Product Engineering Lead at Square) at NTT i3’s offices in Palo Alto, CA. The topic: How both a problem solver’s mindset and machine learning skills are important for software engineers.

(“In Conversation With” is a video series where NTT i3 executives engage in conversation with some of our most visionary partners at NTT’s Operating Companies and global enterprise customers, futurists, and leading Silicon Valley technologists, entrepreneurs, and researchers. The explorations may be around current and near future developments in IoT, big data analytics, machine learning, AI, network virtualization, and security. At times, we also investigate the human impact of technology and the role our values and culture have on how we decide to use what we are inventing.)

Ravi

As we talk about failure and startups, as well as startups inside large enterprises – ultimately it all boils down to people. We’ve seen a vast change in the skill sets of engineers, the people behind these new ideas. What characteristics do you see as most important?

Gokul

I think one of the things you see with engineers is that they dislike bureaucracy. There’s the bureaucracy that comes with checking-in code and seeing it deployed in product. I was once told that for engineers, happiness is inversely correlated to the amount of time it takes from when they check-in code until it is pushed out to production. The more barriers you put into place to getting from push to production, the less happy they are.

When you are an early stage startup or a 2 person company, you are checking-in code constantly and pushing into production almost real time. As a company grows there are more people who have to review the code. There might be cycles that you have to wait for the code to be deployed, and that can wear on and grate on engineers. The best engineers will be those who balance the speed if deployment with figuring out how to fit into the processes of a large company and push the boundaries. We see this all the time.

Ravi

Some companies really excel at providing the freedom to the engineering group to allow these changes to propagate 50 times a day. Example in point: Amazon, Facebook, Netflix.

Gokul

All of these companies have what we call good ‘staging environments.’ You can quickly push your code and send 1% of your traffic to it. Then you can quickly see how it’s doing and if it does well you can push it to full production.

That’s the great thing about being an engineer today. Earlier, you had to do a ton of scripts to get your code into production. Now increasingly, third parties are coming in and they are providing things that make your life easier as an engineer (e.g. dockers, containers) to ship code.

At the root if it, engineering is problem-solving. The job of an engineer is now getting more abstract – a problem solver at the highest level. All the other things that are the execution of code are being taken on by third parties and specialists. The best engineers are going to be people who can take a complex problem and solve it algorithmically.

Ravi

Over the period of the last few years, what have you observed in the change of attitude that engineering team members?

Gokul

I think the most important thing to have is a ‘growth mindset.’ You have to understand that change is a constant and to have the right mindset to embrace it. It’s going to come in terms of the technology you are using, the kinds of people you work with. I would say that change has come in two dimensions over the past 10 years.

People need to figure out how to work on distributed teams. Engineering teams might be divided into 3 or 4 different geographies and time zones. How do you check code? How do you communicate when you are not right across the table from each other?

Machine learning. I strongly believe that over the next 10 years, every engineer will need to become a strong machine learning (ML) engineer. ML will be applicable just like mobile was 10 years ago. Today we don’t even say that something is mobile first; it just is part of what you are. ML over the next 5-10 years will be exactly like that. Every company and process will have machine learning and AI as part of it. So every engineer needs to understand the basics; to get on the curve of machine learning.

Ravi

Excellent. Gokul it is always fun to talk with you. There’s so much learning from this process. I really appreciate it and want to thank you for coming to our offices and I hope you can do this again much more frequently.