Code Like a Chef

Earlier this year, I came back to programming after a long hiatus as Table XI’s sales guy. Though I have been a coder most of my life, this is the first time I’ve had the job title “software developer.” As I try to discover what it means to be a professional programmer, I’ve found myself taking cues from a seemingly unlikely place: the kitchen.

For four years, I lived with a chef from the sixth best restaurant in the world. Rene De Leon moved to Chicago in 2005 with no job, no place to stay, and two suitcases—one full of clothes, one full of cookbooks—in hopes of working for Chef Grant Achatz at Alinea. I had just moved to Chicago myself two weeks earlier, and we serendipitously became roommates in an apartment friendly to those with dubious employment status and questionable credit history.

Today, Achatz and Alinea have won just about every culinary award possible, and Rene has been with the company for the better part of six years. After stints at Noma and Cellar Can Roca, currently the number one and two restaurants in the world, he now serves as the Sous Chef at Next, which won the 2012 James Beard Award for best new restaurant in America.

Shortly after we met, I said to Rene, “I’ll buy some groceries if you teach me how to cook.” Thus started my apprenticeship with a world-class chef, and my friendship with the guy who would be the best man at my wedding. My culinary instruction consisted of private lessons over our kitchen island, hundreds of home cooked meals, 2am conversations about Rene’s workday, and visits to Alinea and Next as a guest in the front and back of the house. For seven years, I’ve had a front-row seat to culinary excellence.

The lessons Rene taught me transcend the kitchen. Grant Achatz, Thomas Keller, Feran Adria—these men have more in common with Michael Jordan or Steve Jobs than with the chef at your local Applebees. And though it’s not immediately obvious, coders have more in common with chefs than with desk jockeys like accountants or attorneys.

Coders and chefs are creators. We are craftsmen, drawn to this profession at an early age because we like building things. We thrive on instantaneous feedback and a clear path toward mastery. We work because of passion, not a paycheck, and we’re often found pursuing our craft in the hours off the clock.

We work in industries that are, for better or worse, male dominated, inhabited by strong-willed personalities that would likely wither in a traditional office environment. We operate under tight deadlines to serve finicky customers who have little understanding of our creative process. We go home having seen a tangible product of our labor, and come back the next day to do it a little faster, a little better, a little cleaner.

In the kitchen, I learned how to work clean. I learned the necessity of a prep list, the importance of tool mastery, and the dangers of multitasking. I learned that the best way to build complexity is by layering simplicity. Above all, I learned how to pursue excellence and what it means to be a professional. Over the next several weeks I’ll dive deeper on some of these strategies that I have adopted from the kitchen into my coding practice. As I mature as a software developer, I’ll continue to apply these lessons so that that one day I can say, “I learned how to code like a chef.”