Farmer’s Fridge is one of the first companies to actually pull off fresh food vending machines at scale, a dream come true for busy travelers and 9-to-5ers in search for healthy alternatives to candy vending and fast food.
Today, it operates in more than 400 IoT-connected refrigerators throughout Indiana, Illinois, Milwaukee, New York City, New Jersey and Philadelphia and earned a spot on Time Magazine’s 2019 top innovator’s list.
The Chicago-based company says its success has much to do with its proprietary end-to-end technology that powers the fridges. But, in order to maintain Farmer’s Fridge scaling initiatives that include hundreds of more machines in additional cities, the company has issued two major technical upgrades to its systems: an IoT infrastructure migration and a brand new, from-scratch mobile app.
“These projects will help us better manage and analyze data as we grow, communicate data updates to our fridges, provide new user experiences, track product inventory and fridge health, and build self-service tools for the organization,” said Vismaya Panchasheelan, one of Farmer’s Fridge’s IoT software engineers.
The redesign of Farmer’s Fridge technology is inspiring significant changes across its platform and engineering team, said Director of Engineering Arne Saupe, while also building a better customer experience and improving productivity across the organization.
While working on the IoT infrastructure project, Panchasheelan has worked more closely with senior engineers on her team. The experience has helped her think about writing code differently. Before, she’d look at how her code might be used a year later. Now, she thinks of how it will scale.
Liszkiewicz joined Farmer’s Fridge about seven months ago. He’s played an imperative role in getting the company’s IoT engineering arm excited to buy into the extensive infrastructure changes that required many of the engineers to step outside their comfort zone.
Farmer’s Fridge recruited Schneider specifically to help rewrite their app. The initial phases of the project are close to completion, but more work is on the way as they continuously evaluate how to further engage users via mobile.
Fridges in the sky
In its current state, Farmer’s Fridge said its IoT infrastructure is not using cloud technologies to its advantage. As the fleet of fridges grows, the maintenance of things like menu and inventory updates becomes harder. The current state causes lag in troubleshooting and bottlenecking communication between HQ and Farmer’s Fridge on-the-ground fleet.
When updating fridge inventory failed or fridges needed servicing under the legacy architecture, engineers would manually send Slack messages to drivers and service techs directing them where to go and actively work with them to resolve the problem.
“Supporting the fleet of our fridges created a lot of extra overhead from our team,” said Senior IoT Engineering Manager Dawid Liszkiewicz.
By moving away from legacy architecture, Farmer’s Fridge said it will be able to provide everyone on their team with immediate access and insight to real-time stock levels in one place while giving engineers and service techs the ability to troubleshoot issues faster.
“The first step we took was identifying how much of our fridge architecture can be simplified by identifying components that we could rewrite and move to the cloud,” Panchasheelan said. Some of those components included menu changes, inventory levels and planogram changes.
Our teams worked together to identify what we could improve so that our engineers could make it happen.”
Before the move to the cloud, much of the operational information about fridges was stored on the fridges. Engineers were spending significant portions of their days managing the fridges, Saupe said, and system-wide updates were slow and difficult to manage.
The infrastructure remodel ignited a stream of team brainstorms, with sessions held at least twice a week for the first month of the project.
“The most important thing for the whole engineering group was to get everybody excited about the platform and what it will do for the whole company,” Liszkiewicz said. “The team has transformed tremendously in terms of collaboratively working together.”
Panchasheelan, alongside her team, authored tech briefs and drew up architectural diagrams to share with other departments for feedback so that they could begin dividing and assigning tasks to engineers.
“We had people from operations, product and design involved. We had engineers joining drivers on ride alongs at night during their stocking trips,” Saupe said. “Our teams worked together to identify what we could improve so that our engineers could focus on making it happen.”
The teams’ efforts have resulted in a centralized hub of data that collects information like supply levels and inventory expiration statuses from all of the machines, Panchasheelan said, making it easier to maintain and scale.
“This will give us better insights into where our product is going, what we are selling, and what we are wasting,” Panchasheelan said.
Reimagining the app
Changes to the Farmer’s Fridge app will also lead to a more unified customer experience between the app and the fridges built for personalization, the company said.
Soon, client data will be leveraged to make recommendations based on purchase history. The app and the interfaces on the fridges will suggest new menu items that correlate to previous user orders that are location-specific.
So, if someone regularly frequents the fridge at Revival Food Hall for Farmer’s Fridge’s North Napa Salad, and a new salad is released at that location, this user will receive an update to check it out.
It’s good to put yourself in a vulnerable position because it helps you grow as an engineer.”
Additionally, the new app will allow users to reserve and pay directly over the app regardless of location, a feature that is currently limited to certain fridges.
“Whether you’re using the app or the fridge, users will have a consistent and reliable experience,” Panchasheelan said.
To sync the two channels and pull data from both, the engineering team had to rewrite the app entirely. But before any decisions were made around languages and changes to their API, Farmer’s Fridge first invested in senior leadership to help guide the process.
“We were missing leaders with experience who have dealt with these sorts of changes in the past, who could make decisions that the whole team could unite behind,” said iOS Software Engineer Katie Schneider.
Director of Engineering Arne Saupe and CTO Candice Savino — who had previously worked together at Trunk Club — joined Farmer’s Fridge in June. Liszkiewicz, to support the IoT side, joined in August, and Senior Engineering Manager Jovana Florus came aboard in December.
When Liszkiewicz started, he said there were instances of engineers working in silos with few instances of knowledge sharing between teams.
“That’s changed 180 degrees now,” Liszkiewicz said.
Today, Saupe said the engineering team has invested more time into creating a stable testing environment, clear roadmaps, more focused team meetings and refined sprint ceremonies to better meet the needs of the team.
“Now, we’ve stabilized these processes and are much more agile,” Schneider said. “We’re working together and we’re moving faster, individually and as a team.”
Once new leaders stepped into place, the team chose to implement the open-source data query language, GraphQL, with Farmer’s Fridge’s API. Saupe said this would allow the engineers to indicate exactly what data they needed and unlock the ability to aggregate data from multiple sources, like the app and fridges.
It also created an opportunity for many of the engineers, from both IoT and the mobile app side, to learn new technologies.
“Our senior engineers provided a lot of mentorship during this time, as a lot of us were unfamiliar with working GraphQL,” Panchasheelan said. “We started holding regular code reviews as a team to review and look up best practices together.”
The introduction of a new solution didn’t stop there. After the decision to move forward with GraphQL, Farmer’s Fridge mobile engineering team re-architected their iOS and Google Play apps in Swift and Kotlin and rewrote the back end using a third-party authentication tool and AWS AppSync for their GraphQL implementation.
Schneider said that although she and her teammates weren’t accustomed to these technologies, they embraced the challenge.
“We all had to learn these together,” Schneider said. “It’s good to learn new things, and it’s good to put yourself in a vulnerable position because it helps you grow as an engineer.”