How It's Made
Building an on-demand fulfillment engine is hard
A Q&A with Kevin Henrikson & JJ Zhuang, our VPs of Fulfillment Engineering
Kevin Henrikson and JJ Zhuang go together like PB&J — they’re the engineering “odd couple” that leads Instacart’s fulfillment engineering organization. Before they joined us, they cofounded Acompli, the email productivity app that was acquired by Microsoft in 2014. Acompli’s mobile app was relaunched as Outlook Mobile six weeks after the acquisition.
Now at Instacart, they’re building another type of productivity product. As VPs of Engineering, they lead the engineering infrastructure, mobile, machine learning, data science, and operations research engineers that build our Shopper app (iOS and Android) and our last mile logistics technologies.
That’s a lot of bases to cover, so we sat down with Kevin and JJ to chat about their long history working together as technologists, the challenges unique to on-demand fulfillment models, and (of course) what’s in their cart.
Why the jump to Instacart?
JJ: We always look for ways to create value in our work, and there’s no other creation more valuable than “creating time”. We built enterprise software because we could make people more productive with their work. But Instacart just brings time-saving to a whole new level, as grocery shopping is a constant in our lives.
Kevin: We wanted to make a large impact…and with the growth Instacart’s currently going through, we knew it would provide the size of the opportunity we could really dig into. Millions of people depend on Instacart to bring them fresh groceries in as fast as an hour. Before I interviewed, I signed up to be a shopper, and the delight my customers had when I made my first few deliveries as a shopper let me see firsthand the impact we can have.
Why have you two worked together for so long?
JJ: We met each other at our first jobs in Silicon Valley almost two decades ago.
Kevin: By chance, we shared an office together. Over time we found we had very different working styles and grew up in very different environments (JJ in Shanghai and me on a pig farm in Galt, CA). Both Mechanical Engineers by training, we both stumbled into software a couple of years before we met.
JJ: To people who don’t know us, we are the odd couple who are the exact opposite of each other in almost every way and have literally nothing in common; to people who have been working with us, they see our collaboration as the most natural thing. It takes many skill sets to build and lead an effective technical team, and each of us gets to develop our own strengths and play to those strengths.
What hard challenges are you tackling on the fulfillment end?
Kevin: I always like to pose it as a souped-up version of the classic traveling salesman problem we all learned in school. How do Instacart shoppers get a hot rotisserie chicken and a cold pint of strawberry ice cream from a store to a customer’s door in a couple of hours? Better yet — How do you get a hot roast chicken and a cold pint of strawberry ice cream from a store to a customer’s door that’s 5 miles away in 103-degree heat in an hour?
JJ: Instacart doesn’t maintain our own inventory or warehouses—we act as a layer on top of retailer systems. Our Fulfillment Team develops the iOS and Android shopper apps that shoppers rely on in-store, and maintains the logistical system that batches orders together and routes them to your door. But there are complexities: car problems, bad weather, outside events…all of these complexities add up…so we’re building out a system that predicts demand, re-computes order batches every minute and makes dispatching decisions *just in time* to meet our SLAs.
Kevin: We’re also building the tools to recommend better item replacements. We have a sophisticated algorithm and seven years worth of data that helps us understand customers’ food preferences and offer up high-quality replacements based on those preferences. If a store is out of fresh dill, does a customer prefer dried dill? Or maybe fresh fennel stalks? When shoppers mark an item as out-of-stock during their shop, our ML-powered item replacement algorithm kicks in, looking at historical data to suggest an in-stock replacement. These are gnarly problems to solve — I’m never bored.
How important is it to understand your user community?
Kevin: Knowing your user is critical. Prior to Instacart, we had spent over ten years building email software. Luckily we were already heavy email users, so we had a decent understanding of the pain points to help get us started. Instacart was different—while I had used the product as a customer (over 700 orders when I joined), I knew I needed to learn more about the tool shoppers rely on every day. Before my first meeting with Instacart, I signed up as a shopper (iOS or Android) to learn more about the business and had over 75 screenshots with questions and ideas. I shopped 12 hours a day some days to see what it’s like to work longer shifts. All in all, I logged more than 100 hours as a shopper before I officially joined. And I’m still shopping. Since joining, we’ve been laser-focused on incorporating features that offer more flexibility to our dedicated network of over 70,000 shoppers.
JJ: Shopping is hard. Period. Every single engineer who works on the fulfillment team shops as part of their onboarding, and now, the team must log hours every quarter as an Instacart shopper. Understanding the shopper experience in depth was critical for our organization as we kicked off new engineering initiatives to improve the experience — initiatives like instant cashout, integrating in-app support, and offering an on-demand shopping product feature.
What’s surprised you since you joined?
JJ: The team culture is just amazing. The founders and early employees built a solid foundation for the culture — the sense of urgency in everything we do, always having each other’s back, and always putting customers and shoppers first. We are pleasantly surprised that with so much team and business growth, the culture endures. It’s a high-growth company, but still scrappy.
Kevin: The difficulty, complexity, and number of super interesting problems to solve.
What’s always in your cart?
JJ: Organic Carrots, Fuji Apples, Mini Watermelons, Kettle Chips, Baguette, Triple Creme Cheese, Pellegrino, Mint Chocolate Chip Ice Cream
Kevin: Kirkland Signature Rotisserie Chicken, Bel Mini Babybel Original Cheese, Organic Hass Avocado, LaCroix Sparkling Water, Outshine Mango Fruit Bars
Want to build fulfillment chains with Kevin and JJ? Instacart engineering is hiring! Check out our current openings.
Most Recent in How It's Made
How It's Made
One Model to Serve Them All: How Instacart deployed a single Deep Learning pCTR model for multiple surfaces with improved operations and performance along the way
Authors: Cheng Jia, Peng Qi, Joseph Haraldson, Adway Dhillon, Qiao Jiang, Sharath Rao Introduction Instacart Ads and Ranking Models At Instacart Ads, our focus lies in delivering the utmost relevance in advertisements to our customers, facilitating novel product discovery and enhancing…...
Dec 19, 2023How It's Made
Monte Carlo, Puppetry and Laughter: The Unexpected Joys of Prompt Engineering
Author: Ben Bader The universe of the current Large Language Models (LLMs) engineering is electrifying, to say the least. The industry has been on fire with change since the launch of ChatGPT in November of…...
Dec 19, 2023How It's Made
Unveiling the Core of Instacart’s Griffin 2.0: A Deep Dive into the Machine Learning Training Platform
Authors: Han Li, Sahil Khanna, Jocelyn De La Rosa, Moping Dou, Sharad Gupta, Chenyang Yu and Rajpal Paryani Background About a year ago, we introduced the first version of Griffin, Instacart’s first ML Platform, detailing its development and support for end-to-end ML in…...
Nov 22, 2023