ADVERTISEMENT

Something like our sinangag

Leftover rice gets a new life in this curried skillet meal

Published Jun 21, 2024 08:40 am

by CHRISTOPHER KIMBALL

Freshly cooked rice is delightfully tender and fragrant, but not the best choice for fried rice due to its soft, moist texture. In this Nigerian-inspired curried meal-in-a-skillet, we use plain, chilled cooked rice so the grains “fry” up light and fluffy.

The recipe, from our newest cookbook Milk Street 365: The All-Purpose Cookbook for Every Day of the Year, seasons the rice with curry powder, dried thyme, and a handful of aromatics. Beef liver and an assortment of vegetables are classic ingredients, but we opted for chicken thighs and green beans.

We start by seasoning the chicken thighs with salt, pepper, and curry powder, then sauté them in hot oil until evenly browned. The chicken then is pushed to the side, and an aromatic mixture of scallion whites and fresh ginger is added, along with green beans, jalapeño chilies, thyme, and more curry powder.

Once the green beans are bright green, the cooked, chilled rice is added and the pan is deglazed with chicken broth. Don’t be afraid to really scrape up the browned bits from the surface of the skillet after you’ve added the broth. The caramelization gives the rice great depth. Fragrant basmati is especially good, but any type of long-grain white rice works.

MB (3).jpg
WHAT  A DISH. Curried  chicken  fried rice  (Photo Milk  Street | AP)

Curried chicken fried rice with chilis

Start to finish: 40 minutes
Servings: Four

Ingredients

Three tablespoons neutral oil or refined coconut oil, divided
One pound boneless, skinless chicken thighs, trimmed, and cut into one-inch pieces
Two teaspoons curry powder, divided
Kosher salt and ground black pepper
Four scallions, thinly sliced, whites and greens reserved separately
Two tablespoons minced fresh ginger
Four ounces green beans, trimmed and cut into one-inch pieces
One teaspoon dried thyme
One Fresno or jalapeño chili, stemmed, seeded, and thinly sliced
Four cups cooked and chilled long-grain white rice, preferably basmati
One cup low-sodium chicken broth

Directions

In a 12-inch skillet over medium-high, heat two tablespoons of the oil until barely smoking. Add the chicken and sprinkle with half a teaspoon of the curry powder and one-fourth teaspoon of salt and pepper. Cook, stirring occasionally, until evenly browned, four to six minutes.

Push the chicken to the perimeter of the pan. To the center, add the remaining one tablespoon oil, scallion whites, and ginger. Cook, stirring, until lightly browned, about a minute and a half. Into the scallion mixture, stir the beans, thyme, half of the chili, the remaining one and half teaspoons of curry powder, and one-fourth teaspoon each salt and pepper. Stir the chicken into the bean mixture. Cook, stirring occasionally, until the beans are bright green, about two minutes. Stir in the rice, then add the broth and scrape up any browned bits. Cook, stirring, until the liquid is absorbed, three to five minutes.

Off heat, taste and season with salt and pepper. Serve sprinkled with the scallion greens and remaining chili. 177milkstreet.com/ap (AP)

Related Tags

MB Lifestyle Online Food and Travel
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.