March 12, 2019
Stalking a Celery Salad. The Best Celery Salad.
GreatSalad0152

This is not tossing. This is assembling, fashioning, architecting. With the help of chef Ignacio Mattos.

Salads were obligatory when I was young. Always attendant, never principal. I or my brother would be tasked with throwing one together in the final moments before dinner was set on the table. We would chop a head of iceberg, rip open a bag of packaged croutons, and throw both into a large bowl. Then grab a few bottles of dressing from the refrigerator door under our arms and walk the lot to the table. Salad: the mandatory afterthought.

In the early 2000s, I started working in restaurants. At my first job, at Absinthe, a brasserie in the heart of San Francisco, a Caesar salad was ordered by most tables. This was salad presented as an event. Whole romaine-leaf canoes, bathed in an eggy vinaigrette muscular with pounded preserved anchovies. Toasted hunks of levain soaked with the emphatic dressing. Absinthe’s Caesar was a swerve from the Caesars I knew, with their grimy, prechopped romaine chunks and gloppy bottled dressing. This was salad with resolve.

Since that Caesar encounter I insist on salads as happenings. I want to send my fork—or fingers—spelunking for a nub of Parmesan, a shard of toasted walnut, a frill of radicchio, a tickle of pickled radish. One of my favorite places for a salad gamble is Estela in New York City. There are many excellent salads rotating through its smart menu. The finest of all is the celery salad.

The version I ate at the restaurant a few years ago, and a number of times since, featured softened golden raisins, cracked pieces of pistachio and long strips of Bayley Hazen blue cheese, laid on top like a thatch of leaves brought to earth after an autumnal breeze. I tried to replicate the salad at home. I plumped the raisins in Champagne vinegar. I dressed the celery half-moons with lemon juice, a hit of the raisin-soaking vinegar and a deluge of olive oil. I toasted the pistachios, then smacked them with the flat side of a chef’s knife. I tossed the blue cheese in the freezer for a few hours before shaving it with a Y-peeler. The result was near. The sweet and tang and crunch and richness was there. A quiet pluck was missing.

Chef Ignacio Mattos’s recent cookbook, Estela, documents a version of a similar celery salad. This one with mint and the potential solution to my anemic facsimile: the liquid from pickled Thai chiles.

I called Mattos to help me connect the celery salad from the book with the one I adored at the restaurant. I asked him if the pickling liquid, the fruit of a quickfire mix of white vinegar, sugar, and tiny, fiery bird’s-eye chiles, was key. He confirmed. “The Thai chile vinegar is an interesting and much more efficient way to distribute heat,” he says. “When you add red chile flakes or fresh chile, it’s overwhelming for people. Myself included.”

His chile technique was an about-face. The way in which it was employed was also a shock: spoonfuls of the pickled chile liquid are added to the base of the plate on which the salad is served. This approach melted my brain. I thought dressings were only ever added to the salad itself. No, in Mattos’s world, you add lemon juice and the raisin-soaking liquid to the celery and mint, tossing well. Both the pickled chile liquid and the olive oil are strewn across a bare plate, then the raisins and pistachios are scattered over, and the celery is set on them. This is not tossing. This is assembling, fashioning, architecting. The pickling liquid and olive oil comprise a kind of footbath for the salad’s core ingredients. Then the lot is blanketed in shaved cheese.

There is agency in this hunt. The spark and crunch are there, as I push my fork through and around. A bite of plump raisin and a melting of dank Bayley Hazen. A chew of celery and mint. A crackle of pistachios. I am also dressing the salad as I eat, its own uncommon pleasure. Each bite tilts in a new direction. This is salad standing center stage.

A Kitchen in New Orleans. Many years of eating, cooking, and writing about food have left Scott Hocker with many stories to tell. In this occasional column, he re-creates a dish tied to a distant, or sometimes recent, food memory.

RECIPE: Celery Salad With Raisins, Pistachios, and Blue Cheese

Scott Hocker

Scott Hocker is a writer, editor, recipe developer, cookbook author, and content and editorial consultant. He is currently the editor in chief of liquor.com and was previously the editor in chief of Tasting Table.

[email_signup id="3"]
<div class="email-subscribe exp-subscribe subscribe"> <div class="alert alert-success exp-success ga-etembed-success" style="display:none;"> Great! You've signed up successfully! </div> <div class="alert alert-danger exp-error" style="display:none;"> We are experiencing an error, please try again. </div> <form name="subscribe" id="email-signup" class="email-signup-form" action="https://tastecooking.com/wp-admin/admin-ajax.php" method="POST" target="_top" data-event-assigned="false"> <fieldset class="form-group form-inline email-submit-group"> <label for="email-address" class="sr-only">Email Address</label> <input id="email-newsletter" type="email" placeholder="your@email.com" class="email-newsletter text email form-control" name="email" value=""> <button type="submit" value="Subscribe" name="subscribe" class="btn btn-primary email-submit-btn ga-etembed-success"> <i class="fa fa-envelope"></i> Subscribe </button> </fieldset> <small class="exp-small terms" style=""> By clicking Subscribe, I acknowledge that I have read and agree to the Penguin Random House <a href="http://www.penguinrandomhouse.com/privacy/" target="_blank">Privacy Policy</a> and <a href="http://www.penguinrandomhouse.com/terms/" target="_blank">Terms of Use</a> and agree to receive news and updates from TASTE and Penguin Random House. </small> <fieldset class="field-group checkboxes" style="display:none"> <div class="checkbox"> <label> <input type="checkbox" name="programs[]" value="505,50501,1" class="exp-checkbox" checked="checked"> <span><strong>Tastebook General</strong></span> </label> </div> <div class="checkbox"> <label> <input type="checkbox" name="programs[]" value="505,50502,1" class="exp-checkbox" checked="checked"> <span><strong>Tastebook Promo</strong></span> </label> </div> </fieldset><!-- /.checkboxes --> <input type="hidden" name="data_acq_code" value="TASTE_POPUP_STATIC_ONGOING" /> <input type="hidden" name="data_programs" value="50501|505,50502|505" /> <input type="hidden" name="form_id" value="3" /> <input type="hidden" name="partner" value="" /> <input type="hidden" name="action" value="crown_email_signup_submit" /> <input type="hidden" name="ref_url" value="" /> </form> </div> <script> jQuery(document).ready(function () { var unassigned_forms; setInterval( function() { //Check for unassigned forms var forms = jQuery( '.email-signup-form' ); unassigned_forms = false; forms.each( function( index ) { if ( jQuery( this ).attr( 'data-event-assigned' ) === 'false' ) { unassigned_forms = true; } }); if ( unassigned_forms ) { forms.off( 'submit' ).on( 'submit', function ( e ) { forms.attr( 'data-event-assigned', 'true' ); e.preventDefault(); // Basic email validation var email = jQuery(e.target).find('.email-newsletter').val(), valid_email = false, groupEl = jQuery(e.target).closest('.email-subscribe'); if ( !!email && typeof(email) === "string" ) { var email_array = email.split('@'); if ( email_array.length === 2 ) { if ( email_array[1].split('.').length > 1 ) { valid_email = true; } } } if ( valid_email ) { jQuery('.alert-danger').hide(); // Show loading gif groupEl.find('.email-signup-form').hide(); groupEl.find('.email-submit-loading').show(); // Populate ref_url jQuery(this).find('input[name="ref_url"]').val(window.location.href); // Generate Payload var payload = jQuery(this).serializeArray(); jQuery.ajax({ url: jQuery(this).attr('action'), type: 'POST', data: payload, success: function (data) { // Hide loading spinner groupEl.find('.email-signup-form').show(); groupEl.find('.email-submit-loading').hide(); // Display success msg var target = jQuery(e.target); jQuery(e.target).hide(); jQuery(e.target).parent().find('.alert-success').show(); jQuery(e.target).parent().find('#downloadbtn').show(); }, fail: function (err) { // Hide loading spinner groupEl.find('.email-signup-form').show(); groupEl.find('.email-submit-loading').hide(); // Display failure msg var target = jQuery(e.target); jQuery(e.target).hide(); jQuery(e.target).parent().find('.alert-danger').show(); } }); } else { groupEl.find('.alert-danger').html('Please enter a valid email address.').show(); } }); forms.off( 'keypress' ).on( 'keypress', function ( e ) { if ( e.which === 13 ) { e.preventDefault(); jQuery( this ).submit(); } }); } }, 100); }); </script>
[email_signup id="3"]
<div class="email-subscribe exp-subscribe subscribe"> <div class="alert alert-success exp-success ga-etembed-success" style="display:none;"> Great! You've signed up successfully! </div> <div class="alert alert-danger exp-error" style="display:none;"> We are experiencing an error, please try again. </div> <form name="subscribe" id="email-signup" class="email-signup-form" action="https://tastecooking.com/wp-admin/admin-ajax.php" method="POST" target="_top" data-event-assigned="false"> <fieldset class="form-group form-inline email-submit-group"> <label for="email-address" class="sr-only">Email Address</label> <input id="email-newsletter" type="email" placeholder="your@email.com" class="email-newsletter text email form-control" name="email" value=""> <button type="submit" value="Subscribe" name="subscribe" class="btn btn-primary email-submit-btn ga-etembed-success"> <i class="fa fa-envelope"></i> Subscribe </button> </fieldset> <small class="exp-small terms" style=""> By clicking Subscribe, I acknowledge that I have read and agree to the Penguin Random House <a href="http://www.penguinrandomhouse.com/privacy/" target="_blank">Privacy Policy</a> and <a href="http://www.penguinrandomhouse.com/terms/" target="_blank">Terms of Use</a> and agree to receive news and updates from TASTE and Penguin Random House. </small> <fieldset class="field-group checkboxes" style="display:none"> <div class="checkbox"> <label> <input type="checkbox" name="programs[]" value="505,50501,1" class="exp-checkbox" checked="checked"> <span><strong>Tastebook General</strong></span> </label> </div> <div class="checkbox"> <label> <input type="checkbox" name="programs[]" value="505,50502,1" class="exp-checkbox" checked="checked"> <span><strong>Tastebook Promo</strong></span> </label> </div> </fieldset><!-- /.checkboxes --> <input type="hidden" name="data_acq_code" value="TASTE_POPUP_STATIC_ONGOING" /> <input type="hidden" name="data_programs" value="50501|505,50502|505" /> <input type="hidden" name="form_id" value="3" /> <input type="hidden" name="partner" value="" /> <input type="hidden" name="action" value="crown_email_signup_submit" /> <input type="hidden" name="ref_url" value="" /> </form> </div> <script> jQuery(document).ready(function () { var unassigned_forms; setInterval( function() { //Check for unassigned forms var forms = jQuery( '.email-signup-form' ); unassigned_forms = false; forms.each( function( index ) { if ( jQuery( this ).attr( 'data-event-assigned' ) === 'false' ) { unassigned_forms = true; } }); if ( unassigned_forms ) { forms.off( 'submit' ).on( 'submit', function ( e ) { forms.attr( 'data-event-assigned', 'true' ); e.preventDefault(); // Basic email validation var email = jQuery(e.target).find('.email-newsletter').val(), valid_email = false, groupEl = jQuery(e.target).closest('.email-subscribe'); if ( !!email && typeof(email) === "string" ) { var email_array = email.split('@'); if ( email_array.length === 2 ) { if ( email_array[1].split('.').length > 1 ) { valid_email = true; } } } if ( valid_email ) { jQuery('.alert-danger').hide(); // Show loading gif groupEl.find('.email-signup-form').hide(); groupEl.find('.email-submit-loading').show(); // Populate ref_url jQuery(this).find('input[name="ref_url"]').val(window.location.href); // Generate Payload var payload = jQuery(this).serializeArray(); jQuery.ajax({ url: jQuery(this).attr('action'), type: 'POST', data: payload, success: function (data) { // Hide loading spinner groupEl.find('.email-signup-form').show(); groupEl.find('.email-submit-loading').hide(); // Display success msg var target = jQuery(e.target); jQuery(e.target).hide(); jQuery(e.target).parent().find('.alert-success').show(); jQuery(e.target).parent().find('#downloadbtn').show(); }, fail: function (err) { // Hide loading spinner groupEl.find('.email-signup-form').show(); groupEl.find('.email-submit-loading').hide(); // Display failure msg var target = jQuery(e.target); jQuery(e.target).hide(); jQuery(e.target).parent().find('.alert-danger').show(); } }); } else { groupEl.find('.alert-danger').html('Please enter a valid email address.').show(); } }); forms.off( 'keypress' ).on( 'keypress', function ( e ) { if ( e.which === 13 ) { e.preventDefault(); jQuery( this ).submit(); } }); } }, 100); }); </script>