How do you build an app for farmers? 

How do you communicate with a set of users whose relationship with their phone is scant?
Our solution, which will be available as a mobile application can tell them how much and what pesticide needs to be sprayed.

It is a tricky question to answer. How do you communicate with a set of users whose relationship with their phone is scant? Let’s take a step back. The Wadhwani Institute for Artificial Intelligence uses AI to tackle difficult problems. Most of these problems have not been solved efficiently. One of these problems is pest management in cotton farming. Cotton farmers suffer every year as pests destroy major portions of their crop. Our solution, which will be available as a mobile application can tell them how much and what pesticide needs to be sprayed. This will save them costs and help them preserve the soil as well. Our app gives actionable recommendations (spray or not to spray) to farmers based on pictures of pests on a trap. Our recommendations also include what pesticide to spray.

A few weeks ago we spoke about how we conducted a pilot of our solution remotely. The organising of this pilot is a verified success. Behind the scenes, it was user-centred design that went into it when it comes to building an app for farmers, most of whom are not digitally literate. 

Designing an app for the top 10% of the pyramid is easier. Those users understand technology and are used to some level of complexity. But our users are not. Most use WhatsApp and Youtube and nothing else. 

Before we started our process we asked ourselves a series of questions that helped us guide the design of our app. I want to warn you, while we write this, it is still a work in progress. A living organism evolving with each day of input and feedback. But our basic, defining questions stay the same. So, let’s walk you through our process. 

How can we make a useful solution? 

A useful solution can only be made if we have a good sense of the user and their needs. That is the first principle of the design process. We conducted interviews, observed behaviour on ground and use tools such as Firebase to mould our thinking. 

What is our role?

Our solution is the bridge. Our expertise on their farms, which would help make faster, informed decisions. We thought of each set of our recommendation as one transaction at a time. We were on one side, the farmer on the other. 

How do we speak their language?

Language doesn’t just mean Kannada (in this case). We also relied on visual cues, which were brought in by introducing familiarities such as the use of camera and the gallery icons. Realistic images were used instead of abstract illustrations to help resonate with our users. 

What is the best way to give a recommendation?

For digital natives, recommendations are given through choices. Use option A or option B to solve your problem. When it comes to non-natives, this becomes tricky. In our previous blog, we described how farmers didn’t understand the concept of choice. We had to find ways to make that choice obvious.

How might we design to context? 

Our app will be used by farmers when they are on their farms. For an app to be used outdoors in broad daylight, we explored aspects that helped us understand what works best in terms of colour, contrast and font size. We also had to understand how we can draw attention to action and highlight what is important.  

And then our thinking evolved. Because we started noticing small details. The farmers were taking screenshots of the recommendations and took them to the pesticide retailer. It meant there was a time difference between taking a picture and going to the store. Farmers were afraid that the recommendations would “disappear”. So, we gave them an option to save the recommendation as an image.

All of this is an iterative process. But we need to be sure to not send too many updates. The reason loops back with the kind of user we are dealing with it. I can give you an example, when Gmail changed its Android UX, with email and the new video chat function at the bottom of the screen, people were surprised, but they adjusted. Our users can’t be surprised. The adjustment needs to be a slow process otherwise they may feel lost and stop using the app altogether. This will continue to be a challenge going forward. 

Our pilot was in Karnataka and our next step will be to reach out to farmers in Maharashtra, Gujarat and Telangana. And as we reach more farmers, our feedback loop will become stronger and we will have to make changes to the app. We will have to find a delicate compromise which will not change the app functionality, rather make it easier to use.

There is one more feature that we have held back on—the ability of our model to deliver recommendations offline. It is something we know we can roll out, but we need to wait. It is not just that the model needs to be error-proof but we need to test for some ground truths like soil composition and water along with the last recommendation provided to guide our next set of recommendations. 

It’s an iterative process with a continuous feedback loop. We think of ourselves as a band of musicians listening to music on vinyl. We pay attention to every little detail. Each groove on the vinyl and each twang of the guitar guides our next steps. When we’re ready, we’ll get that album out. Watch out for it.

It looks exciting.

ML Engineer

ROLES AND RESPONSIBILITIES

An ML Engineer at Wadhwani AI will be responsible for building robust machine learning solutions to problems of societal importance; usually under the guidance of senior ML scientists, and in collaboration with dedicated software engineers. To our partners, a Wadhwani AI solution is generally a decision making tool that requires some piece of data to engage. It will be your responsibility to ensure that the information provided using that piece of data is sound. This not only requires robust learned models, but pipelines over which those models can be built, tweaked, tested, and monitored. The following subsections provide details from the perspective of solution design:

Early stage of proof of concept (PoC)

  • Setup and structure code bases that support an interactive ML experimentation process, as well as quick initial deployments
  • Develop and maintain toolsets and processes for ensuring the reproducibility of results
  • Code reviews with other technical team members at various stages of the PoC
  • Develop, extend, adopt a reliable, colab-like environment for ML

Late PoC

This is early to mid-stage of AI product development

  • Develop ETL pipelines. These can also be shared and/or owned by data engineers
  • Setup and maintain feature stores, databases, and data catalogs. Ensuring data veracity and lineage of on-demand pulls
  • Develop and support model health metrics

Post PoC

Responsibilities during production deployment

  • Develop and support A/B testing. Setup continuous integration and development (CI/CD) processes and pipelines for models
  • Develop and support continuous model monitoring
  • Define and publish service-level agreements (SLAs) for model serving. Such agreements include model latency, throughput, and reliability
  • L1/L2/L3 support for model debugging
  • Develop and support model serving environments
  • Model compression and distillation

We realize this list is broad and extensive. While the ideal candidate has some exposure to each of these topics, we also envision great candidates being experts at some subset. If either of those cases happens to be you, please apply.

DESIRED QUALIFICATIONS

Master’s degree or above in a STEM field. Several years of experience getting their hands dirty applying their craft.

Programming

  • Expert level Python programmer
  • Hands-on experience with Python libraries
    • Popular neural network libraries
    • Popular data science libraries (Pandas, numpy)
  • Knowledge of systems-level programming. Under the hood knowledge of C or C++
  • Experience and knowledge of various tools that fit into the model building pipeline. There are several – you should be able to speak to the pluses and minuses of a variety of tools given some challenge within the ML development pipeline
  • Database concepts; SQL
  • Experience with cloud platforms is a plus
mle

ML Scientist

ROLES AND RESPONSIBILITIES

As an ML Scientist at Wadhwani AI, you will be responsible for building robust machine learning solutions to problems of societal importance, usually under the guidance of senior ML scientists. You will participate in translating a problem in the social sector to a well-defined AI problem, in the development and execution of algorithms and solutions to the problem, in the successful and scaled deployment of the AI solution, and in defining appropriate metrics to evaluate the effectiveness of the deployed solution.

In order to apply machine learning for social good, you will need to understand user challenges and their context, curate and transform data, train and validate models, run simulations, and broadly derive insights from data. In doing so, you will work in cross-functional teams spanning ML modeling, engineering, product, and domain experts. You will also interface with social sector organizations as appropriate.  

REQUIREMENTS

Associate ML scientists will have a strong academic background in a quantitative field (see below) at the Bachelor’s or Master’s level, with project experience in applied machine learning. They will possess demonstrable skills in coding, data mining and analysis, and building and implementing ML or statistical models. Where needed, they will have to learn and adapt to the requirements imposed by real-life, scaled deployments. 

Candidates should have excellent communication skills and a willingness to adapt to the challenges of doing applied work for social good. 

DESIRED QUALIFICATIONS

  • B.Tech./B.E./B.S./M.Tech./M.E./M.S./M.Sc. or equivalent in Computer Science, Electrical Engineering, Statistics, Applied Mathematics, Physics, Economics, or a relevant quantitative field. Work experience beyond the terminal degree will determine the appropriate seniority level.
  • Solid software engineering skills across one or multiple languages including Python, C++, Java.
  • Interest in applying software engineering practices to ML projects.
  • Track record of project work in applied machine learning. Experience in applying AI models to concrete real-world problems is a plus.
  • Strong verbal and written communication skills in English.
mls