Spanish Potato Omelet With Roasted Peppers
Ingredients
Directions
Ingredients
1 lb
(about 6 medium) hot green peppers for roasting, such as poblano or NuMex peppers
Jump
2 lb
(5 large) russet potatoes, peeled and cut into 1⁄4-inch/6 mm slices
Jump
1 lb
(2 medium) yellow onions, cut into 1⁄2-inch/12 mm rings
Jump
1 ½ tsp
salt
Jump
2 c
light olive oil, or a mixture of 1 cup/240 ml corn or sunflower oil and 1 cupl extra-virgin olive oil
Jump
8 lg
eggs, lightly beaten
Jump
Spanish Potato Omelet With Roasted Peppers

When I first went to live in Spain in the 1970s, I ate eggs almost every night for supper. I wasn’t alone. Rain or shine, in every season, as night fell, the clatter of forks beating eggs for tortilla de patata (potato omelet) would ring through my neighborhood. As soon as the clanging began to fade, I could hear the hiss of onions and potatoes being sautéed in olive oil, followed by waves of delicious aroma wafting through the air.

Spaniards eat tortilla de patatas at all hours of the day, hot from the pan for supper or lunch, at room temperature as a midmorning snack, or washed down with a glass of wine at a tapas bar. For long car trips and picnics, this is the food they are most likely to bring along—something portable and filling that they can eat without fuss. To this day I think of it as comfort food for all seasons.

There is nothing quaint or fluffy about a tortilla de patatas. Shaped like a round cake because it takes the form of the frying pan it is cooked in, the Spanish tortilla is a sturdy and substantial egg, onion, and potato dish—a type of frittata. In my student days at Valladolid, I would go to a small bar not far from the university for a slice of the largest tortilla I had ever seen. What I loved the most was its spiciness because it was flavored with guindillas, Spain’s favorite hot pepper.

Making a great tortilla de patatas takes a bit of practice, as you need to flip the tortilla to cook it on both sides. It also requires a grassy olive oil and the freshest, most flavorful eggs you can find. I always look for free-range, organic eggs with bright golden-orange yolks. (You can always tell when an egg is fresh because the yolk is dome-shaped, never flat.) Don’t be stingy with the oil when sautéing the onions and potatoes. Once the potatoes are tender and the onion has cooked down to the consistency of a confit, you drain off the oil and reserve it to flavor and cook the eggs. Some Spanish cooks I know claim that extra-virgin olive oil darkens the tortilla. They prefer to use sunflower oil, but I can’t do without olive oil. Use a heavy-bottomed, well-cured or nonstick skillet and a gentle heat as high heat can result in a burnt crust and a runny interior.

My recipe is heavy on potatoes and roasted peppers, but you can reduce the amount for an eggier omelet. Bring it to the table on a platter with warm crusty bread, Romesco Sauce, and a crisp red wine from La Rioja or Ribero del Duero region for a rustic supper or lunch. To serve the omelet as tapas, cut into small squares and serve with romesco as a dipping sauce.

6-8 servings

  1. Roast the peppers, according to the directions below. Stem, seed, devein, and cut into 1-inch/2.5 cm squares.
  2. Place the potatoes and onions in a medium bowl. Add the salt and toss well to coat. Warm the oil in a an 11-inch/28 cm nonstick or well-seasoned skillet over medium-high heat. When the oil is rippling but not smoking, add the potatoes and onions. Lower the heat to medium, cover, and cook, stirring occasionally, until the potatoes are fork-tender and the onions are soft and translucent, about 20 minutes. Add the roasted peppers and cook for about 5 minutes. Drain, reserving 2 Tbsp of the oil.
  3. Transfer the vegetables to a large bowl. Pour in the eggs and stir gently with a rubber spatula to combine, being careful not to break up the potatoes. Return the reserved oil to the skillet over medium-high heat. Add the egg mixture and cook until the egg sets and separates completely from the sides of the pan, about 3 minutes. Using a spatula, lift the tortilla and check the bottom; it should be golden. To cook the other side, remove the skillet from the heat, cover with a plate that is slightly larger in diameter than the skillet, and, holding both the skillet and the plate firmly with oven mitts, flip the tortilla onto the plate. Return the skillet to the heat and very gently slide the tortilla back into the skillet. Cook until completely set and golden, about 5 minutes more.
  4. Using the spatula, gently slide the tortilla onto a serving plate. Serve warm or at room temperature, ideally the day it is made, though it can be eaten cold from the refrigerator or brought to room temperature. Store, tightly covered, in the refrigerator for up to 2 days.

Reprinted with permission from Peppers of the Americas: The Remarkable Capsicums That Forever Changed Flavor by Maricel E. Presilla, copyright © 2017. Published by Lorena Jones Books/Ten Speed Press, an imprint of Penguin Random House LLC.

Peppers of the Americas

Maricel E. Presilla

Book Cover
[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>