flickrlinkedin

Media Corner

Latest Media Mentions

Shiva Chinnasamy of Tesco on the evolving role of a technology leader

In this Exclusive TechGig interview, we feature Shiva Chinnasamy, Director - Engineering &Technology at Tesco Bengaluru. He is responsible for Search & Recommendation platform for Tesco.com including Customer Order, Digital Content Services and Product Services. Previously, he served as Global Head of Engineering – Search, Retail Intelligence & Pricing Systems at Target and a Sr. Manager of Engineering and GM for Product Ads team in India. 



1. 
As a tech leader, how has your role changed over the years? 

As the role of technology has evolved from being that of an enabler to that of a disruptor and an innovative force, the role of senior technology leaders has also simultaneously evolved. Technology leaders have to now understand trends, work out technology strategies to both innovate and protect the business from technology-led market disruptions, evolve technology roadmaps and strategies to ensure the organization keeps up with changes and benefits from them. This means changes in the way how engineers are hired, trained and retained. 

This will also mean continuous changes to the organization structures to take better advantage of agile methodologies, product-led development and of the availability of full stack engineers. This also means evolving corporate technology strategy to move away from vendor specific policies and offshore strategies to leverage Open Source technologies to build home grown solutions at a rapid pace and lesser cost. Most importantly, given the impact and criticality of technology for nearly all the businesses, senior level technology leaders are expected to contribute to innovative business ideas and concepts and bring them closer to reality with efficient execution. 

Several years ago, many senior level technology leaders outside of core technology companies specialized primarily in vendor management, contract negotiations and program management. Now senior level technology leaders are expected to have hands-on understanding of various technologies, be in-tune with tech trends, inspire and build large teams of technologists, conceive, and build solutions with organic teams without outsourcing. This welcome change, I believe, will have a long-lasting effect in making several industries more competitive by helping them rapidly adopt technology to deliver value added innovation to customers. 

2. How do you source your skill specific talent requirements? Do you think platforms like hackathons or coding contests help create a talent pipeline or source the right talent?

We have realized that one size does not fit all and not all models work effectively. An effective strategy in this highly competitive world for talent needs to leverage all avenues we have to reach out to talent. At Tesco’s technology team, we leverage academic collaboration to attract Masters and PhD students from premier institutions such as Indian Institute of Science for research roles, hire from IITs and NITs with competitive packages and quickly make them productive with an effective training and onboarding process. Our experience is that hackathons and coding contests work better for internal colleagues even more than as a recruitment strategy, though we also leverage them for external recruitment where it is appropriate. 

3. What are the 5 best programming languages for beginners? 

Computer Science has evolved into a multi-specialty discipline with different languages and frameworks suited for each specialty. Instead of giving you 5 best programming languages, let me break it down into different areas of specialization for the benefit of TechGig readers. 

Mobile App development: 

  • i.Android: Kotlin, Java
  • ii.iOS: Swift (multi paradigm, functional lang)
  • iii.Both: JavaScript with React native & HTML5. (may not be best suited for graphics intense apps)

UI languages: 

  • i.TypeScript (from MS – typed language and hence avoids a lot of errors during compile time itself. Helps with performance also in case of typed arrays.
  • ii.JavaScript/ES6 with Babel – has async/await, template literals (avoid string concatenation or need for a template lib)
  • iii.Elm – functional language with strong type inference and error-free code which translates to JS. Easy to learn for functional programmers.

Web frameworks: 

  • i.React – MVVM (Supports Model-View-View Model pattern), virtual DOM based composable framework, lightweight and fast. With react native, can build Android or iOS apps also with the same code.
  • ii.Vue – More lightweight and easier to get performance right than React but not yet widely adopted as React is.
  • iii.Angular – MVVM with the full framework of features including model, view model, routing, two way binding etc

Server side language: 

  • i.Java - Default and most widely used language for enterprise apps, good performance, decent functional programming capabilities, statically typed, supports threaded vs evented model as well
  • ii.Node.js - Evented, easy to prototype, scales for io-driven workloads due to evented nature.
  • iii.Python/Ruby - Useful for internal or lightweight low TPS services, quick to prototype and leads to crisper/functional code. May not be suited for very large internet scale solutions.
  • iv.Scala - Functional language, crisp/succinct code, less boilerplate, strong type inference, has actor libraries like Akka, good integration with map/reduce and analytics engines like Spark, etc., but can have high learning curve for those used to object oriented languages.
  • v.Golang - Fast compiler, designed for composing applications on cloud. Can compile 10M+ lines of code in under 10 seconds, concurrent, single executable to deploy, code formatter comes with the language in-built so code structure is unambiguous but doesn’t have the rich generics and libraries that established language like Java can provide.

Data Science: 

  • i.Python - When used with modules such as num.py, sci.py, pandas modules
  • ii.R - More oriented for statisticians hence the widest ecosystem of problems and libs, slowest compared to Julia and Python, best visualization or reporting of the results, not trivial to make a R model back an API, steep learning curve)
  • iii.Julia - Fastest for statistics, compiled language with executable, relatively easy to understand the model output. Takes 5-10 seconds to compile even for trivial problems, hence good for larger problems, not so for trivial ones.

Data Analytics / Data Processing: (Choice may be dictated by type of data store used in the company) 

  • i.SQL,
  • ii.Map/Reduce,
  • iii.Pig,
  • iv.Hive

4. One advice or message for the coding community or technology enthusiasts. 

My advice would be stick to fundamentals or basics. To elaborate, in recent years, with the rapid pace of technology evolution and high remuneration for those skilled in certain technologies, many engineers are not paying attention to understanding the domain or designing an appropriate solution for the problem. This makes them less valuable to the company over the medium and long term. Often such engineers end up creating unnecessarily complex solutions leading to time and cost overruns and high cost of maintenance. 

This, I believe is very hurtful to their overall competence and value in the long run. Engineers are fundamentally problem-solvers and builders. Good engineers have mastery of understanding of fundamental computer science and programming principles, know multiple languages and can apply the right framework or language for a given problem. This would enable them to develop the ability to learn and grasp new technology or concepts quickly and build simple, elegant solutions to the problem at hand, making them much valuable to the business.