How and why we’re adding Machine Learning to our services

Code Runners has always been a data-driven company, and our customers have always been data-aware. Not always did they, however, extract, distill and employ data insights to reach business decisions – and that’s precisely what we helped them streamline.

Initially, analytics were done hand-in-hand by statisticians, data scientists and developers – but machine learning has outgrown that approach as of late. These days, you can set up an unsupervised algorithm and in four hours it just may have learned all there is about the millennial game of chess.

Welcome to the age of machine learning, where insights are extracted from the very fabric of the dataset, and even data scientists are sometimes unable to explain what makes an answer the correct one. Data-driven organizations have widely adopted this approach too – as indicated by the countless chatbots and segmentation / recommendation engines out there, learning every aspect of our consumer life. The role and job description of data scientists has also evolved – instead of looking for trends in large datasets, they are now tasked with explaining them and the related causality.

Also, please note there’s a specific difference between data science, machine learning and AI:

  • Data science produces insights
  • Machine learning produces predictions
  • Artificial intelligence produces actions

Imagine what transformative potential machine learning has: to widen data-driven insights to the point where they form predictions for the future of the business!

It is only natural for us to adopt this new trend and offer significantly higher value solutions to our customers. While a new offering offers multiple opportunities, however, we are also concerned with its impact on our existing business. Impact minimisation is on the radar of any organisation, whose focus is product quality and customer trust. So here is how we improved our offering, combined research and development efforts and minimised customer impact:

Part 1. The approach

Our team is always looking to innovate and improve customer satisfaction. Part of everyone’s annual goals – from developers to project and account managers – is to suggest improvements to existing processes and potential solutions to identified shortcomings. As a matter of fact, machine learning has been simultaneously looked at from different angles:

  • what are some quick learnings and small experiments we can conduct?
  • how could we exchange knowledge efficiently and at scale?
  • what would be the best way to introduce customers to our new offering?

Part 2. Reaching the next level

The first thing we felt was necessary was to amass theoretical knowledge and bridge the gap to what we knew from traditional data science.

Our approach was by both learning from popular platforms like Pluralsight and Udemy – and explore learnings and reference architectures by peers. As an example, Kiril Eremenko’s A to Z course was a good theoretical base, while Microsoft Azure’s use cases provided architectural considerations at our fingertips. We also took active part in university-backed trainings locally – which we used for in-depth discussions with industry leaders.

The next step was clearing communication channels and providing a framework for knowledge exchange between team members. While chat platforms like Slack are a popular choice in the industry, we needed a tool that could accommodate 30 team members, and promote collaboration beyond simply sharing links. We also needed to promote in-depth analysis of shared content instead of the single-line comments that chat-like platforms provide. Our solution? A three-way process, where content is first shared in chat, then hand-picked for inclusion in our internal newsletter – and some of that content gets promoted to the internal wiki – the pivotal point of discussion and knowledge exchange.

Of course, the topic of machine learning was the centrepiece of our bi-weekly one-hour-long Knowledge Transfer meetings – and we also started an internal ML club.

Part 3. Customer promotion

Once we were confident enough, that our competence in the topic was sufficient, we started building PoCs (proof-of-concepts, that is) with datasets our customers and partners used in their daily operations.

The toolchain that we used is another important factor, contributing to our agility in the MVP phase and beyond. We’ve used cloud technologies like Microsoft Azure ML bundled with Python and R libraries. The robustness and flexibility of the cloud proved critical for our velocity – especially considering one-click exports to web services and the ability to customize scripts on the fly. While adaptability to change is important for pure software development, it is really a dealbreaker when considering ML. Lastly, this cloud-based machine learning approach allowed us to scale on-demand just like in all other “big data”-related cases.

Sure enough, insights poured like a spring shower – mostly minor ones, but for a few that needed more attention. With our partner’s blessing and support, the outlook is promising: one of our customers would achieve performance optimizations to the tune of 35%, while another partner company just added a service to their portfolio.

 

Stay tuned for those success stories – subscribe to our newsletter 🙂