Cook Your Vegetables Like They Do in Malaysia—With Plenty of Coconut Milk

Loved by Malaysians the world over, “masak lemak” is one of the most popular styles of cooking in Peninsular Malaysia and refers to cooking in coconut milk. You can prepare almost any ingredient in this style—and I especially love cooking spring vegetables like fiddleheads and fresh fava beans this way.

Fiddleheads and fresh fava beans in coconut milk.
Serious Eats / Michelle Yip

When you Google “Malaysian recipes” or “Malay recipes,” the search results tend to show dishes reserved for special occasions or eaten outside the home: nasi lemak, char kuey tiao, roti canai, satay, etc. Those are foods that restaurants and street vendors often offer, and thus what foreigners who only experience the cuisine at those places come to associate with it. What often gets excluded are the humble, home-style recipes that so many of us locals know and love. This creates a feedback loop in which a multitude of recipes rarely find their way to an English-speaking audience—not enough people in the United States know about them, the search volume is low, and so publications have little incentive to invest in the creation of them.

This makes me think of the staggering amount of not just everyday Malay home cooking, but home cooking from around the world that slips through international best-of lists on the internet, simply because the information isn’t available in English. There’s a lot to unpack there, and while I can’t turn the problem around overnight, I can tell you right now about a category of home-cooked dishes that is loved by Malaysians the world over: masak lemak.

“Masak lemak” is one of the most popular styles of cooking among the Malay communities of Peninsular Malaysia. It literally translates to “cooked in fat,” but specifically it means to cook in coconut milk. You can cook almost any ingredient in this style, from various proteins to a whole host of vegetables.

Fiddleheads and fava beans in coconut milk in a bowl.
Serious Eats / Michelle Yip

To bolster the flavors of the main protein or vegetables, aromatics are added; which ones, exactly, depend on the featured ingredient. Turmeric leaves, fresh turmeric, and lemongrass are commonly added to masak lemak that contain red meat, poultry, and wild vegetables that are foraged from the jungle, especially in the southern states. The interior of the peninsula tends towards freshwater fish and is often enhanced with fermented durian (known locally as tempoyak). Leafy vegetables like bok choy are often cooked masak lemak–style without any turmeric, leaving the soup a pale milky white, and served with another dish that has more heft, like chicken or squid cooked with sambal tumis. Clearly, masak lemak is very much a choose-your-own-adventure dish.

The following recipe features hearty fiddlehead ferns (known as pucuk paku) and fresh shelled fava beans. The fiddlehead ferns in Malaysia tend to be on the leafier side, but this recipe will work just the same with fiddlehead ferns available in the United States. As for the beans, here I'm calling for fresh shelled fava beans, which make for a good substitute for the bitter beans (also known as stink beans, or petai) that are common in Malaysia. Bitter beans are without a doubt an acquired taste, but most who try them love their slightly bitter juiciness, a fantastic foil for spicy chiles and gravies. (Be warned: The stink stays in your system for one to two days, so don’t eat this before a first date!) Favas won't have the same aroma, but they play the textural role of the bitter beans well.

If neither of these vegetables are available, any hearty, leafy vegetable should do. Masak lemak is usually served as part of a family-style meal with fried or grilled proteins, or seafood cooked in sambal tumis.

Fiddleheads and favas on rice with grilled fish and sambal.
Serious Eats / Michelle Yip

Trim the fiddleheads to remove any woody stem. (If using the more leafy Southeast Asian variety, trim and reserve the leaves, removing any woody steam, and chop the leaves into bite-size lengths.) Rinse under running water and set aside.

Cleaning and trimming fiddlehead ferns.
Serious Eats / Michelle Yip

Using a mortar and pestle, pound bird’s eye chiles, Asian shallots, and fresh turmeric into a coarse paste, 2 to 3 minutes. Add dried anchovies and pound until crushed slightly, 10 to 15 seconds (you’re only looking to crush them slightly, not pulverize them). Place lemongrass stalk in the mortar and pound 1 or 2 times with the pestle to bruise.

Pounding chiles, shallots, lemongrass, and turmeric with a mortar and pestle.
Serious Eats / Michelle Yip

In a medium saucepan, stir together the contents of the mortar and pestle with the coconut milk and water. Bring to a boil over medium heat.

Adding coconut milk and spice paste to a pot.
Serious Eats / Michelle Yip

When the liquid begins to bubble, add trimmed fiddleheads to saucepan. Stir, then cover, reduce heat to low, and cook until leaves are just wilted, about 5 minutes.

Adding fiddleheads to pot of coconut milk.
Serious Eats / Michelle Yip

Meanwhile, prepare the turmeric leaf, if using: Using a sharp knife, trim the turmeric leaf away from the spine. Stack the 2 pieces of leaf together, roll them up tightly, then slice into very thin strips.

Trimming turmeric leaf on cutting board.
Serious Eats / Michelle Yip

Stir in fava beans, sliced turmeric leaf (if using), salt, and sugar. Cover the saucepan and cook until the beans are just tender, another 3 to 5 minutes. Serve with cooked white rice.

Adding fava beans to pot of fiddleheads in coconut milk.
Serious Eats / Michelle Yip

Special Equipment

Mortar and pestle

Notes

The fiddleheads in Malaysia are leafier than the ones sold in US markets. Either will work here, though the US fiddleheads will remain in more distinct whole pieces.

This recipe was tested with boxed coconut milk, which comes in a variety of sizes. If using canned, stir the coconut cream and coconut milk together before measuring.

Dried anchovies (called ikan bilis in Malay) can be found at any good Asian grocery store, especially those specializing in Southeast Asian imports. They are sometimes sold already cleaned and gutted, but those will be more expensive; if yours aren't cleaned, you'll need to prep them by removing the heads, then splitting the fish lengthwise so you can gut and debone them.  The bigger varieties tend to be quite salty, so seek out the smaller varieties. If using whole anchovies, you’ll need about ten 3-inch anchovies.

Turmeric leaves are the young, tender leaves of fresh turmeric rhizomes. The leaves are available in Malaysian and Indonesian grocery stores under the name “daun kunyit.” 

Fresh turmeric is available at Southeast Asian and South Asian grocery stores.

Make-Ahead and Storage

In the unlikely event that there are leftovers, store them in an airtight container in the fridge for up to three days.

Grilled fish on white rice with fiddleheads and favas and a dollop of sambal on the side.
Serious Eats / Michelle Yip

Transform Underripe Bananas Into a Sweet, Tropical Coconut Dessert

Lightly sweetened with palm sugar, pengat pisang—a delightful Malaysian dessert with pleasantly chewy sago pearls, bananas, and rich coconut milk—is the best kind of afternoon pick-me-up.

Overhead view of Pengat Pisang
Serious Eats / Michelle Yip

In Malaysia, we’re happy to reach for a sweet bite any time of day. Quick snacks abound at roadside stalls in both cities and rural areas, and due to the abundance of local tropical fruit and palm sugar, offerings typically land on the sweeter side. When there’s time to sit and enjoy an extended break during the day, pengat—a category of Malaysian dessert soups made with coconut milk starring a starchy fruit like banana or tuber like cassava—are a favorite at home and at roadside stalls. 

A spoon lifting Pengat Pisang
Serious Eats / Michelle Yip

The name “pengat” is a portmanteau of the words “penganan,” which means “sweet food items,” and “hangat,” meaning “warm.” Over the years, “pengat” has come to specifically refer to warm, sweet soups that contain coconut milk. “If one is familiar with the concept of ‘kuih,’ then think of pengat as kuih with gravy,” says Ahmad Najib “Nadge” Ariffin, a Malaysian cultural historian. Kuih (like onde-onde) are sweet and savory snacks with origins in Nyonya culture, and are typically small enough to be eaten in one or two bites. In the case of this particular pengat, sago pearls—pleasantly chewy balls made from the starch of the pith of palm tree stems—and banana pieces are the kuih, swimming in a gravy of sweetened coconut milk.

While pengat was originally made with leftover bananas and cassava from a harvest glut, its easy preparation and accessible flavors have helped it evolve into a sought-after dessert. Today, many folks—no longer constrained by having to wait for a surplus of fruit—will buy ingredients specifically to make pengat.

Overhead view of pengat pisang with blue linen
Serious Eats / Michelle Yip

The flavor of pengat should be whatever the star ingredient is. “If there are bananas in it, it should taste like bananas,” says Nadge. “If jackfruit, then of jackfruit.” The sweetness isn’t the point; rather, the titular ingredient is. The recipe below is for a popular pengat variety made with bananas, or (“pisang” in Malay), hence “pengat pisang.” For this particular recipe, many cooks, including myself, prefer green bananas, as they hold their shape better after cooking. If you use riper yellow bananas with black spots, consider reducing the sugar so the pengat isn’t too sweet. 

You don’t need to fuss too much about the specific variety of bananas. I developed this particular recipe with Cavendish bananas in mind, since they’re widely available around the world, but if you are in Malaysia or another location that has numerous varieties of bananas, feel free to play around with different varieties Choose ones that are on the smaller, sweeter side; my favorite to use in Malaysia is any good eating banana like pisang mas or pisang rastali.

Overhead view of ingredients in pot
Serious Eats / Michelle Yip

Once you’ve mastered the basic concept of pengat, substitute or supplement the banana with sweet potato, cassava, jackfruit, or even durian for more flavor and textural variety. With this simple, flexible recipe, you may find yourself making pengat pisang whenever you crave something sweet—even if there’s no harvest glut near you. 

In a medium bowl, cover dried sago pearls with about 1 inch of cold or room-temperature water. (Using hot water will cause the sago pearls to expand too quickly.) Set aside.

Overhead view of pearls in water
Serious Eats / Michelle Yip

In a medium saucepan, cover sliced bananas, palm sugar, salt, and pandan leaves with the 3 cups (720ml) water. Bring to a boil over high heat, then reduce heat to medium-low and continue cooking, stirring occasionally, until the bananas begin to soften, about 10 minutes.

Two image collage of bananas and pandam leaves before and after being cooked
Serious Eats / Michelle Yip

Using a fine-mesh strainer, strain soaked sago pearls and add them to the saucepan. Using a wooden spoon or rubber spatula, gently stir, breaking up any lumps of sugar or sago as needed, until the sago is mostly translucent, about 2 minutes.

Two image collage of adding tapioca pearls
Serious Eats / Michelle Yip

Add the coconut milk and cook, stirring, until bubbles begin to appear around the edges, about 2 minutes. Turn off the heat and allow pengat to sit until it has cooled slightly, about 5 minutes. Ladle into small bowls and serve.

Two image collage of adding coconut milk and finsihed pengat pisang
Serious Eats / Michelle Yip

Special Equipment

Medium saucepan, fine-mesh strainer, wooden spoon or rubber spatula

Notes

Look for sago pearls online or at Asian grocery stores; if you can’t find them, small pearl tapioca offers a similar chew and can be substituted.

Look for slightly green bananas that are just beginning to yellow. If using ripe bananas instead of green bananas, reduce sugar to 1/4 cup (50g) to accommodate the increased sweetness of the bananas. Season to taste with additional sugar as needed.

Fresh and frozen pandan leaves can be found in well-stocked Asian grocery stores that specialize in Southeast Asian ingredients.

Make-Ahead and Storage

Leftovers can be stored in an airtight container and refrigerated for up to 3 days if using canned coconut milk or 1 day if using fresh coconut milk.

To reheat leftovers in the microwave or on the stove, stir in about 1/2 cup (120ml) water to loosen pengat before heating—or simply eat it cold for a different but equally delightful experience.

This Coconut Jam Is Great in Sandwiches… And Drizzled Over Everything Else

Layer kaya—a rich, velvety coconut jam with deep butterscotch notes—with thick slabs of butter for a sweet, tropical breakfast sandwich.

Side view of stack of kaya toast
Serious Eats / Michelle Yip

Toast slathered with butter and jam is a quick, delicious breakfast for many around the world. In Malaysia, where I live, as well as in Singapore, Indonesia, and Thailand, one of the most popular jams is a little more tropical: a coconut-based spread known locally as kaya, a rich condiment made from cooking eggs, sugar, and coconut cream until caramelized. To make a sturdy breakfast called kaya toast, people spread the jam onto white bread, top it with generous pats of butter, and sandwich it with another slice of bread.

Overhead view of dipping kaya toast
Serious Eats / Michelle Yip

In many Southeast Asian towns and cities with a significant Chinese population, breakfast typically takes place in unassuming shoplots dubbed ”kopitiam,” a portmanteau of the word ”kop’i” (Bahasa Indonesian for ”coffee”) and ”tiam” (Hokkien Chinese, a dialect spoken in southern China and in Southeast Asia, for ”shop”). Since the mid-17th century, there have been several waves of Chinese migration into Southeast Asia. The Hainanese were one of the last ethnic Chinese groups—after the Hokkiens, Hakkas, Teochews, Cantonese, among many others—to make their way over. By the time the Hainanese arrived in the region in the 1920s, the other Chinese communities had already established themselves as business merchants or workers in mining and construction. The Hainanese turned to the service industry, filling the roles of cooks for British colonists and opening coffee shops at trading posts, such as the legendary Yut Kee Restaurant in Kuala Lumpur. Opened in 1928, the restaurant is known for their Hainanese-western menu, and is especially famous for their chicken chop, roti babi (mince pork-stuffed bread) and kaya toast. 

“Kaya toast has always been on the menu, right from the beginning when my grandfather opened Yut Kee in 1928,” says Mervyn Lee, who runs the restaurant today. Traditionally, cooks grilled slices of white bread over charcoal, which is still how it’s done today. Today, diners with a sweet tooth continue to delight in kaya toast with cold slabs of butter, while those who prefer a savory breakfast enjoy their toast with soft-boiled eggs seasoned with soy sauce and white pepper. Some folks even enjoy a combination of both, dipping their kaya sandwich into the runny eggs.

Overhead view of kaya toast
Serious Eats/ Michelle Yip

Asked about the chilled slabs of butter that are so essential to kaya toast and why the dairy’s temperature is so crucial, Mervyn says that it is simply more practical. “Butter at room temperature would melt, plus spreading butter on the bread would add to the assembly process,” he tells me. “It was easier to just have slices of butter cold in the fridge, ready to go when orders came in.” The fat of the dairy also helps to balance the sweetness of the kaya.

Overhead view of putting butter on kaya bread
Serious Eats / Kaya Toast

All About Kaya

Kaya has many origin stories. Some, like Nyonya cookbook author Sharon Wee, suspect that kaya  descended from sericaia, a sweet egg custard Portuguese colonizers brought over in the 16th century.  Others, however, speculate that it’s the other way around: that it was Malaysian serikaya—which was already being served in royal Malay households when the Portuguese arrived—that inspired sericaia.

Jar of kaya
Serious Eats / Michelle Yip

Regardless of how kaya came about, the National Library of Singapore credits Hainanese cooks and kopitiam with popularizing the condiment. Besides kaya toast, the spread is popular as a filling or topping for many desserts like kaya puffs (flaky pastry filled with kaya), pulut tekan (a Nyonya kuih made with cooked glutinous rice), and even drizzled on waffles or as an ice cream flavor. It also makes for a thoughtful, delicious homemade gift.

Though the word ”kaya” is often translated to ”coconut jam,” it is closer to a curd or custard, both in its texture and how it’s made. To make kaya, you whisk eggs, sugar, and coconut milk and/or cream together, then cook it low and slow over a double-boiler to achieve a smooth, spreadable consistency. As with any type of custard, it’s important to cook the mixture over very low heat so the egg proteins coagulate just enough and create a velvety, thick mixture instead of becoming sweet scrambled eggs.

Overhead view of kaya on vack of spoon
Serious Eats / Michelle Yip

Pandan leaves are a popular addition to kaya and are frequently used in the popular Nyonya version of the jam, which is sweetened with palm sugar instead of regular sugar. The leaves lend a pleasantly grassy, floral scent that complements the coconut’s richness, but purists often say the leaf’s verdant aroma detracts from the real star of kaya: the coconut itself.

Creating the Perfect Kaya

I set out to see how much I could play with the ratios of eggs to sugar to coconut to achieve a kaya with a runny but stable texture, wasn’t tooth-achingly sweet, and would highlight the coconut’s flavor as much as possible. Many recipes call for proportions that are closer to equal parts of eggs, sugar, and coconut, and that’s what I started with. I knew, however, that I wanted to focus on the coconut flavor instead of the egg. I opted for whole eggs instead of just yolks; while kaya is traditionally made with just yolks, I wanted to give the spread more structure, and the additional protein from the egg whites helps the custard further set.

over head view od whisking eggs
Serious Eats / Michelle Yip

The texture of these initial batches were satisfyingly smooth, but still much too eggy and sweet. With that in mind, I gradually decreased the amount of eggs until it was half the weight of the coconut cream, which  lent the kaya a loose but supple texture and allowed the coconut’s flavor to shine through. Using slightly less sugar meant that the jam wasn’t cloying—just sweet enough to lend deep butterscotch notes to complement the coconut’s richness. Some of kaya’s deep flavor and color comes from a caramel that’s incorporated towards the end, and I found that caramelizing just 20% of the sugar was the sweet spot for me. Some kaya makers, though, opt for caramelizing higher percentages of the sugar for a darker and smokier kaya.

This recipe is inspired by the beloved kaya toasts made across Southeast Asia. A local white bread called “roti benggali,” a tall loaf with a fluffy interior, is commonly used to make the sandwich. But if you can’t find roti benggali, regular sandwich bread—think Wonder Bread and the like—works just fine. As for the butter, I recommend using salted butter or sprinkling a pinch of flaky salt over the kaya before closing your sandwich. This helps counter the sweetness of the kaya and adds a touch of complexity to the flavor.

Side view of Kaya toast
Serious Eats / Michelle Yip

While you could get yourself a perfectly nice jar of kaya from the nearest Southeast Asian supermarket, it’s very doable and satisfying to make at home. In less than an hour, you could have a whole batch of kaya made, ready to see you through several weeks—or several days, if your household is like mine—of breakfasts and snacks. You’ll run out of kaya before you know it, which is just fine, because now you can just make another batch.

In a medium bowl, whisk eggs. Strain eggs through a fine-mesh sieve into a large metal heat-proof bowl, and whisk in 1 cup 3 tablespoons (240g) granulated sugar until well incorporated.

Two image collage of straining eggs and whisking in sugar
Serious Eats / Michelle Yip

Set the bowl over a pot of simmering water; cook, and, using a whisk or flexible spatula, stir gently and constantly, until the mixture reaches 176ºF (80ºC) and begins to set and resemble a thick pancake batter, 12 to 18 minutes.

Whisking eggs
Serious Eats / Michelle Yip

Stir in coconut milk and continue to cook, stirring gently, until the mixture reaches at least 176ºF (80°C), 10 to 12 minutes longer. Remove from heat and stir occasionally to prevent kaya from overcooking.

Overhead view of adding coconut milk
Serious Eats / Michelle Yip

In a small saucepan set over low heat, sprinkle remaining 1/4 cup plus 2 teaspoons (60g) sugar in an even layer and cook, undisturbed, until sugar has melted and is a dark amber color, about 6 minutes. Add coconut oil and, using a clean, dry whisk, stir continuously until smooth.

Two image collage of overhead view sugar cooking and adding oil
Serious Eats / Michelle Yip

Pour coconut oil syrup into the kaya mixture and stir well to combine, making sure to quickly and constantly whisk to prevent the caramel from scrambling the eggs in the custard. Continue cooking kaya until it reaches 176ºF (80ºC). Remove kaya from heat and, using a fine-mesh sieve, strain cooked kaya into heat-proof jars, let cool, and refrigerate.

Four image collage of adding coconut oil syrup to kaya mixture, cooking, straining and placing into jar
Serious Eats / Michelle Yip

For the Kaya Toast: Using a butter knife or offset spatula, spread about 1 tablespoon of kaya over each slice of toast. Place 2 thin slabs of cold salted butter on one of the slices, and close the sandwich. Slice the toast sandwich lengthways and serve immediately with strong hot coffee or milk tea.

Four image collage of assembling kaya toast
Serious Eats / Michelle Yip

Special Equipment

Fine-mesh sieve, metal heat-proof bowl, instant-read thermometer, whisk, butter knife or offset spatula

Make-Ahead and Storage

The kaya can be refrigerated for about 2 weeks. We do not recommend freezing kaya jam. Kaya toast sandwiches should be eaten immediately.

The Most Comforting Chicken Soup Is As Easy As ABC

This no ho-hum chicken soup is deeply flavorful and satisfying, with an ease to deliciousness ratio that’s hard to beat.

Overhead view of ABC soup
Serious Eats / Michelle Yip

At first glance, one might assume Malaysian ABC soup has alphabet letters in it. So why’s it called ABC? There are various explanations, including one endearing dad joke about how the soup’s name could refer to the “anions, botatoes, and carrots.” But I think the most likely explanation is that the ABC here is all about how easy it is to make—almost as easy as opening a can of soup.

This simple chicken and vegetable soup is often the first recipe parents teach their children when they move out as young adults, and it’s what families make when they’re exhausted or unwell and in desperate need of a hearty meal they can almost prepare with their eyes closed. Each cook has their own spin on this comforting dish, but the recipe below is much like many versions made in Malaysian homes. One constant is how simple the soup is, which is what I and many people I’ve talked to love about it. You'd have to try really hard to screw it up, making it a super low-pressure soup for beginner cooks.

What makes this soup so easy and comforting—and a go-to meal for many—is that you don’t need much to make it. It requires the barest minimum of kitchen tools: a cutting board, a knife, and a pot. There’s no deboning and no sautéing of aromatics. The key ingredients—a whole chicken carcass, chicken thighs, onions, potatoes, and carrots—are accessible and affordable. Just place all the ingredients in a pot, cover them with water, and then simmer the whole thing for two hours or so. 

Side view of ABC Soup in a bowl
Serious Eats / Michelle Yip

But this is no ho-hum chicken soup—a few key ingredients make for a soup that’s deeply flavorful and satisfying, with an ease to deliciousness ratio that's hard to beat. In Malaysia, the soup is typically made not just with meaty bone-in chicken, but also with a whole raw chicken carcass, which lends rich oomph to the broth. It's very common to find carcasses for sale at Malaysian markets, but since they’re not as easy to come by in the U.S., this recipe calls for using a variety of bone-in chicken parts depending on what you have available. You could also use a picked carcass from a cooked chicken or add some necks and backs to the mix. At least two thirds of the chicken parts you use should be meaty, while the rest can be mostly bones.

Along with the chicken, the soup contains onions, potatoes, and carrots, along with a whole head of garlic, which gives the soup a deep and savory flavor. Tomatoes add a little tang and sweetness, whole white peppercorns provide an earthy funk, and Chinese celery lends a heady, herbaceous aroma that’s significantly stronger than regular celery.

The most common benchmark for what makes something ABC soup is that all the ingredients go into the pot at the same time and it isn’t fussed with until the very end. There should be no more than four or five main ingredients besides the chicken, and while I’ve opted for onions, potatoes, carrots, and tomatoes here, you could easily make the soup with whatever you have on hand, such as tofu, broccoli, or cauliflower. (I’ve made my recipe extra simple by using equal amounts of the onions, carrots, tomatoes, and potatoes.)

Overhead view of ABC soup
Serious Eats / Michelle Yip

In a 6- or 8-quart soup pot or Dutch oven, combine chicken carcass, chicken thighs, onions, carrots, tomatoes, potatoes, Chinese celery, garlic, white peppercorns, and salt. Pour in enough water to cover the ingredients by about 1 inch. Bring to a boil over high heat, then reduce to a simmer and cook, adding water as needed to keep ingredients covered, until chicken is cooked through and very tender and broth has developed a rich chicken flavor, about 2 hours. (If desired, you can cook the soup even longer—up to 2 more hours—for an even deeper flavor.)

Four image collage of cooking soup and serving soup
Serious Eats / Michelle Yip

To serve, remove any chicken bones or carcass, if using, along with the celery, then season to taste with salt or soy sauce. Serve with the meaty bone-in chicken pieces left whole (or pick the meat and discard those bones, if desired, though this isn't typically done in Malaysia).

Special Equipment

6- to 8-quart soup pot

Notes

Chinese celery can be found at Asian grocery stores; if you can’t find it, substitute with cilantro or scallions.

Make-Ahead and Storage

The soup can be kept refrigerated in an airtight container for up to 4 days. We do not recommend freezing, as the potatoes break apart when the soup is defrosted.

My Family Has Been Serving This Rich and Vibrant Fish Curry for 3 Generations

South Indian and Malaysian cuisines come together in this spicy vermillion curry that’s simmered with fish heads, eggplant, and okra.

Overhead view of fish head curry
Serious Eats / Michelle Yip

In the early 1900s, my paternal grandfather sailed from Tamil Nadu to then-Malaya as a 12-year-old orphan. He was a part of one of many immigration waves from India, which mostly consisted of men and boys from the southern Indian regions of Tamil Nadu and Kerala who were brought by British colonizers to Malaya as indentured laborers to work on rubber plantations in an abusive and exploitative system that existed alongside and then eventually replaced enslavement. Beyond my grandfather’s brave and harsh journey, I don’t know much about him, though I’m told he opened what was possibly the first Indian restaurant in the sleepy port town of Pontian, Johor. My dad grew up eating many meals at his father’s restaurant, which trickled down to my own childhood, in which there was always curry on our dining table.

Overhead view of spooning curry onto fish
Serious Eats / Michelle Yip

Malaysian-style curry, typically a brilliant red-orange gravy with different vegetables and proteins, tends to be on the spicier side. The most famous version is fish head curry, which likely began as a poor man’s meal but has since risen in popularity to become one of the most expensive items on Indian restaurant menus. For many, sharing a decadent fish head curry as part of a banana leaf–rice meal with family and friends is still a special treat.

Picture this: A large tureen filled with steaming curry is brought to the table, in which several large fish heads are submerged, surrounded by bobbing vegetables. Popular fish varieties in restaurants are whitefish like snapper and seabass, though I personally prefer oily fish like large mackerel and salmon, as they stand up well to the spice of the curry sauce. Diners spoon the curry sauce onto their plates of rice, and communally pick at the fish heads over the course of the meal. Many will call dibs on their favorite parts: the little scallops of cheek meat, the tender flesh in the crevices of the collar, the gooey eyeballs saturated with spice. When the fish heads are seemingly picked clean, some folks will place what remains of the skull on their plate, and tunnel through every hollow and crevice, triumphant whenever they discover a piece of flesh that someone else overlooked. It’s a feast, one best enjoyed with a large group of loved ones on a weekend afternoon.

Overhead view of eating curry
Serious Eats / Michelle Yip

While the curry sauce is what contributes the bulk of the flavor, most restaurants don’t make their own spice blend for the curry; many instead opt to use ready-made packets of ground spices labeled “fish curry powder,” or order their own custom mixes to be ground at local spice mills. While the use of pre-ground spice mixes is convenient, they tend to lean quite heavily on chile powder, which gives the curries their vivid reddish-orange color. I personally love heat, but too much chile powder makes the curry rather one-note. On top of that, I prefer to grind my own spices, which, because they are fresh and more potent, produce an overall hotter blend without having to go heavy on the chile powder. While this does result in a curry with a less vibrant color, it makes for more balanced flavors all around, which is a tradeoff I'm happy to make.

A technique often used when preparing Malaysian curries—dubbed the “reverse tadka” by Serious Eats contributor Nik Sharma—is to toast a selection of spices at the start of the cooking process. These spices remain whole, separate from the ones that are ground into a powder. For fish curries, the mix usually contains mustard seeds, cumin seeds, fennel seeds, fenugreek seeds, and sometimes nigella seeds. It's a combination that can also be bought ready-made at shops, often called “panch phoron.”

Overhead view of toasting spices
Serious Eats / Michelle Yip

It's a technique I use in this recipe, in which eggplant are first fried in oil until golden, then the whole spices are bloomed in the hot oil before diced onion and a paste of garlic and ginger and fried until sweet and fragrant. The curry is built on top of that with tomato, tamarind, coconut milk, curry leaves, and a homemade mix of ground spices. After that the fish heads go in with okra and the fried eggplant and simmered until the fish is cooked and the vegetables are tender.

The soft textures of the fish and vegetables married with the boldness of the curry and the occasional crunch of whole spice make for a sensorial, lick-your-fingers meal that you won’t soon forget.

Side view of fish head curry
Serious Eats / Michelle Yip

For the Curry Powder: In a dry skillet, toast coriander seeds, cumin seeds, fennel seeds, black peppercorns, and white peppercorns over medium heat until they darken slightly and become fragrant, about 1 minute. Remove from heat and transfer the toasted spices to a mortar or spice grinder. Allow spices to cool for 1 minute, then grind spices until finely ground. Transfer to a small bowl and stir in the chile powder and turmeric. Set aside.

Two image collage of toasting and then grinding spices
Serious Eats / Michelle Yip

For the Curry: Using the same mortar (no need to wipe it out), pound the garlic and ginger into a smooth paste.

Overhead view of grinding garlic and ginger in mortar
Serious Eats / Michelle Yip

In a large sauté pan or medium Dutch oven, heat 1 tablespoon vegetable oil over medium-high until shimmering. Add the eggplant in a single layer and cook until first side is lightly browned, about 2 minutes. Flip the eggplant and cook until second side is lightly browned, about 2 minutes (we’re not looking to fully cook the eggplant; we just want to get some color on them). Transfer to a plate and set aside.

Two image collage of cooking eggplant
Serious Eats / Michelle Yip

Add the remaining 2 tablespoons vegetable oil to the same sauté pan or Dutch oven and reduce heat to medium-low. Add the mustard seeds, fenugreek seeds, cumin seeds, and fennel seeds  and cook, stirring occasionally, until the spices are fragrant and the mustard seeds begin to sputter, 30 seconds.

Overhead view of tossing seeds
Serious Eats / Michelle Yip

Stir in the sliced onions, season with salt, and cook, stirring often, until the onion begins to soften, 6 to 7 minutes. Stir in the garlic and ginger paste along with the diced tomatoes, and cook until the tomatoes begin to break down into a sauce, about 10 minutes.

Overhead view of cooking onions in pan
Serious Eats / Michelle Yip

Meanwhile, slowly add 1/2 cup (120ml) water to the curry powder while whisking to form a paste. Stir the curry paste into the broken-down tomatoes and cook until thickened, about 5 minutes.

Four image collage of adding mixture to onion mixture in pna
Serious Eats / Michelle Yip

Add the curry leaves to the skillet and cook until fragrant, about 1 minute. Add tamarind paste and 2 cups (475ml) water, then stir well, making sure to scrape up any bits stuck to the bottom of the skillet.

Two image collage of adding curry leaves and tamarind paste
Serious Eats / Michelle Yip

Add the fish head halves, reserved eggplant, sliced okra, and sliced green chiles, making sure the liquid in the skillet comes at least 2/3 of the way up the sides of the fish heads; add more water if necessary. Add a large pinch of salt and bring to a boil over medium-high heat, then cover with a lid, reduce heat to low, and simmer until the fish heads and okra are fully cooked, about 20 minutes.

Overhead view of adding fishhead and covering with lid
Serious Eats / Michelle Yip

Stir in the sugar and coconut milk and season with salt. Simmer for another 5 minutes, then remove from heat. Serve warm with rice or flatbread.

Overhead view of fish head curry cooking after coconut milk has been added
Serious Eats / Michelle Yip

Special Equipment

Mortar and pestle

Notes

I recommend using the heads of oily fish like mackerel and salmon, but feel free to use the fish heads of your choice. Have your fishmonger remove the gills and split the heads in half lengthwise for you.

Make-Ahead and Storage

The curry can be refrigerated in an airtight container for up to 5 days. Freezing is not recommended.

For Noodle Soup That Packs a Punch, Use Teeny, Tiny Fish

A strong spicy, sour, and savory fish soup served with thick rice noodles and a medley of aromatic herbs.

Overhead view of Asam Laska S
Serious Eats / Michelle Yip

Usually, when people hear the word “laksa,” they imagine a big bowl of noodles topped with a thick, coconutty curry soup. While curry laksa is indeed one of the more well-known dishes from Southeast Asia, there’s actually a whole wealth of laksas to discover. In Malaysia, “laksa” essentially means “noodle soup,” as there isn’t really anything that ties the different kinds of laksas together other than them all being noodles in soup. The variety of laksas from state to state is almost staggering, from the spice-rich prawn-based gravy and thin rice noodles of Sarawak laksa to the fish-based Johor laksa served with spaghetti (yes!), to the soft rolled rice noodles in creamy fish gravy of Kelantanese laksam. The laksa I'm writing about here though, is my personal favorite and probably the most aromatic of them all, the Penang asam laksa.

Side view of Asam Laska
Serious Eats / Michelle Yip

Penang, an island off the west coast of Malaysia has some of the best street food this side of the globe, and is deservedly world-famous as a destination for gastronomes. One of its most famous dishes is asam laksa, a strongly spicy, sour (“asam” means “sour”), and savory fish soup served with thick rice noodles and various aromatic herbs. The use of small, oily fish such as chub mackerel or sardines is necessary for the making of the stock: Their high ratio of bone to meat means that the flavor of the stock will be much stronger, providing the depth necessary to highlight the bright herbs that are cooked in the stock and served raw as garnish.

Overhead view of cleaning the fish
Serious Eats / Michelle Yip

I’ve tried experimenting with larger oily fish like tuna and Spanish mackerel, but the stock just did not have enough punch. Deboning the fish can be a bit of a pain even for me, but I roll up my sleeves and get on with it while catching up with podcasts, and before I know it, I’ve deboned a whole kilo's worth. If you’re considering white fish, don’t, as it doesn’t have the fatty mouthfeel necessary for the soup stock, and the flesh disintegrates too easily when boiled in soup. Garnish-wise, it’s almost like a who’s who of Southeast Asian flavors. From different kinds of mint to thin chunks of pineapple, each bowl can (and should) be customized to the preference of the eater. If you don’t feel like hunting down every single aromatic item, make sure you at least have torch ginger flowers and Vietnamese mint—asam laksa simply won’t taste or smell the same without them. More easily available vegetables like julienned cucumbers and shredded lettuce will do just fine to add a fresh crunch to the dish.

Overhead view of torch ginger flowers and Vietnamese mint
Serious Eats / Michelle Yip

Because of their labor-intensive prep, laksas are usually eaten outside the home during office lunch breaks or weekend brunches with the family. When they’re made at home, especially with recipes like asam laksa that use small fish, it’s very much for a special occasion. This particular recipe is heavily based on a recipe by one of my favorite fellow Malaysian cooks, Dinesh Rao, one of the owners of beloved (though now-closed) restaurant Tray Cafe in Kuala Lumpur, which in turn is based on his own tinkering with his mother’s recipe and others he’s come across. It comes pretty darn close to what you can find at hawker stalls—deeply, pleasantly fishy, with a heady aroma of fresh herbs that you’ll dream about for days. Make the trip to your local Asian grocery stores for the ingredients; I promise you it is well worth it.

Side view of lifting noodles
Serious Eats / Michelle Yip

For the Soup: In a medium stock pot, bring the water to a boil over high heat. Add fish and cook for 5 minutes. Remove from heat. Using wire skimmer, transfer fish to a bowl and let cool for 10 minutes. Using a measuring cup, measure out 2 cups fish stock and set aside; leave remaining stock in pot. Debone fish, reserving heads and bones separate from fish meat. 

Four image collage of cooking fish and then separating broth and cleaning fillets
Serious Eats / Michelle Yip

In a food processor, combine fish heads and bones with 1 cup reserved stock. Process until it becomes a thick slurry, about 1 minute. Stir slurry back into stock, bring to a boil over medium-high heat, and cook, adjusting heat as needed to maintain simmer, for 30 minutes.

Overhead view of spooning processed fish into broth
Serious Eats / Michelle Yip

If using dried rice noodles, soak them in hot water and set aside while preparing spice paste and soup.

Overhead view of noodles soaking in water
Serious Eats / Michelle Yip

While fish stock is cooking, in a clean food processor, add shallots, soaked dried chiles, red chiles, torch ginger flower buds, lemongrass, galangal, fresh turmeric, garlic, shrimp paste, and remaining 1 cup measured fish stock. Process, scraping down sides as necessary, until the mixture becomes a smooth paste, about 1 minute.

Two image collage of ingredients in the food processor bowl before and after being processed
Serious Eats / Michelle Yip

Strain fish-bone stock through a fine-mesh strainer into a large non-reactive bowl; discard crushed fish bones. Rinse stock pot clean, then pour strained stock back into pot. Add processed spice paste along with tamarind concentrate, asam gelugur (if using), Vietnamese mint leaves, and deboned fish meat. Stir. Bring to a simmer over medium heat and simmer, stirring occasionally, until broth is slightly viscous and intensely flavored, for 1 hour. Stir in 2 1/2 tablespoons sugar and 1 tablespoon kosher salt then adjust seasoning to taste.

Two image collage of adding chili paste and fish into soup and bringing to a boil
Serious Eats / Michelle Yip

While broth is cooking, finish preparing the rice noodles. If using dried rice noodles: Drain soaked noodles, place in a large saucepan, add water to cover by about 1 inch, then bring to boil over high heat. Cook until the noodles are cooked through, about 20 minutes. Immediately plunge into ice water to stop the cooking process, then drain again. Toss with 1 teaspoon neutral oil to prevent the noodles from clumping and set aside. If using fresh rice noodles: Blanch in boiling water for about 30 seconds, then drain. Toss with 1 teaspoon neutral oil to prevent the noodles from clumping and set aside.

Overhead view of cooked noodles in a bowl
Serious Eats / Michelle Yip

For Serving: Divide noodles among serving bowls. Pour 2 to 3 ladles of soup straight over noodles, making sure to include chunks of fish. Garnish each serving with any combination of spearmint leaves, pineapple, shallots, chiles, and torch ginger flower buds. Squeeze half a calamansi lime and drizzle 1 tablespoon of petis udang over each bowl. Serve.

Four image collage of assembling bowls of asam laska
Serious Eats / Michelle Yip

Special Equipment

Food processor, fine-mesh strainer

Notes

Torch ginger flower buds are available at Southeast Asian grocery stores under the names “bunga kantan” or “kecombrang,” and usually still on the stem. Choose buds that are bright pink and firm. Remove the thick stem from right underneath the bud before using. If you can't find torch ginger flower buds, you can use additional galangal in its place in the stock and omit it as a garnish.

Fresh turmeric can be found in South Asian and Southeast Asian grocery stores. It gives an almost medicinal scent when fresh, and keeps well in the freezer for up to 3 months. If unavailable, omit entirely (do not use dried turmeric powder).

Asam gelugur is the dried slices of the Garcinia atroviridis fruit, native to Peninsular Malaysia. This is available in Southeast Asian grocery stores, also under the name “asam keping.” If asam gelugur is unavailable, substitute with the same amount of kokum (a fruit distantly related to asam gelugur, available at South Asian grocers), or 1 more tablespoon of tamarind concentrate.

Vietnamese mint is available at Southeast Asian grocery stores, and is also (confusingly) called “Vietnamese coriander,” “Cambodian mint,” “phak phai,” or “laksa leaf.” It wilts relatively quickly on the counter, so put it in the fridge as soon as you get it home from the market.

Rice noodles are available dried or fresh in East Asian and Southeast Asian grocery stores. Look for a high percentage of rice flour (at least 80 percent) with no wheat fillers. 

Petis udang is available at Southeast Asian grocery stores or online. It’s also referred to as “shrimp paste” but is not the same thing as belacan or Filipino patis; petis udang is much sweeter in flavor, darker in color, and almost molasses-like in texture.

Make-Ahead and Storage

Store the prepared noodles and fish soup in airtight containers in the fridge for no longer than 1 week.

You Could Bake This Gorgeous, Gingery Bornean Chicken and Rice……

Imbued with the fragrance of ginger, lemongrass, and pandan, this Bornean rice dish is hearty and satisfying.

Overhead view of As-am
Serious Eats / Michelle Yip

When open flames hit fresh, green bamboo, a distinct grassy fragrance emerges—one that reminds me of Borneo, an island in the southwestern Pacific Ocean that is split into Malaysian and Indonesian territories and home to the Bidayuh people, one of many indigenous groups in Borneo that are collective referred to as Dayak. Cooking in bamboo is the key to as-sam, a rustic, hearty Bidayuh dish made of rice and chicken, and spiced with garlic, ginger, lemongrass, and black pepper. The whole mixture is packed into a tube of bamboo, sealed with pandan leaves, and slowly roasted over open flames. The chicken juice infuses the rice, making them plump, moist, and fragrant, and the open flames lends each bite a hint of smokiness. 

Side view of bamboo calum cooking against flames
Serious Eats / Michelle Yip

As-sam is above all else sustaining, filling the belly and warming the heart with simple flavors and ingredients from the land. My grandmother, a no-nonsense personality quick with a sharp word yet soft with her hands, would stuff the chicken and rice mixture deftly into the bamboo and loudly clamor for someone to light the fire. In the traditional rural household of my mother’s childhood, there was always something to do, and my mother was often saddled with the task of assisting my grandmother with making as-sam.

Dayak Cuisine

Traditionally, Dayak communities—the indigenous inhabitants of Borneo—depend heavily on foraging and farming. In many rural villages, it is still a very big part of life in a land that, while fertile, can be merciless. Carbohydrates like rice, cassava, and sago, along with proteins like freshwater fish, feature heavily in Dayak cuisine, while meat like chicken and pork is considered a luxury reserved for special occasions and festivals.

Overhead view of eating as-am with hands
Serious Eats / Michelle Yip

Because meat is seldom used and highly valued, starches and vegetables often help to stretch meaty dishes further. As-sam is very much an example of this: Hearty bits of savory chicken meat and pungent spices enrich plain rice, and it’s all packed in bamboo, a convenient receptacle that doubles as both cooking vessel and storage container. It can be carried on long treks, for example, then split open and the food within served when desired.

Getting Bamboo-zled

For first timers, it may be—might I say—bamboozling to find that you can cook with bamboo, but nothing says indigenous Bornean cooking like it. Bamboo is a grass that grows like giant weeds all across the island. For as long as fire has been used to cook food here, the bamboo has been its partner, and over time, has become ubiquitous with so much of Dayak cooking, culture, architecture, and history.

If you’ve ever seen bamboo, you may have noticed that the hollow stalk—or "culm" in botanical terminology—is divided into segments by solid joints called nodes, each of which seals one segment from another. To harvest a bamboo culm for cooking, one cuts out a section with only one node still attached on one end to yield a tube that is closed on one end (where the node is) and open on the other. The result is a ready-made vessel that's green and cylindrical.

Overhead view of stuffed bamboo
Serious Eats / Michelle Yip

In Borneo, a type of bamboo called buru' is used for cooking, though many kinds of bamboo can work. Different dimensions and sizes of bamboo are selected depending on the type of food being cooked. What makes buru perfect for cooking is its relatively thin walls, which allow heat to penetrate quickly. The perfect buru is neither too young nor too old, fresh enough not to burn when it is licked by flames, and mature enough not to rupture when heated. If seeking bamboo to try this cooking method on your own, look for plants that are a dark green shade with about a half-centimeter wall thickness and seven-centimeter diameter.

Scraping as-am out of bamboo calum
Serious Eats / Michelle Yip

Beware though, some bamboo is covered in fine white hairs that will cause you to itch like crazy if they come into contact with your skin. To remove the hairs, vigorously wipe the culm with the bamboo's own leaves. It's also important to rinse the inside of the culm to remove any dust. If not used immediately, fill the culms with water up to the rim to keep them fresh for about five days.

In a rice cooker or saucepan, cook rice according to package instructions. Once cooked, set aside to cool to room temperature with the lid off, about 30 minutes, then fluff with a spatula or spoon.

Overhead view of fluffy rice in bowl
Serious Eats / Michelle Yip

Meanwhile, in a large bowl, thoroughly mix together chicken, lemongrass, ginger, and garlic with 1 1/2 teaspoons salt.

Overhead view of mixing chicken with lemongrass
Serious Eats / Michelle Yip

Add the fluffed rice, black pepper, and the remaining 1 1/2 teaspoon kosher salt to the chicken and rice mixture, stirring the filling well with a spatula or your hands to make sure everything is well incorporated and the rice is no longer in clumps.

Two image collage of adding and mixing rice with chicken
Serious Eats / Michelle Yip

To Cook in Bamboo: Build a live wood fire. Rinse the bamboo culm. Using your hands, gently stuff the bamboo culm with the filling until either the bamboo is filled almost to the brim or no more filling remains.

Two image collage of filling bamboo with chicken and rice mixture
Serious Eats / Michelle Yip

Roll the pandan leaves into a tight ball and stuff them into the bamboo culm opening to plug it (it won't be an airtight plug, but will help trap some heat).

Overhead view of pandan leaf rolled into stuffed bamboo shoot
Serious Eats / Michelle Yip

Carefully set the filled bamboo over the live fire, leaning it at an angle so that the open (pandan-leaf-stuffed) end is on top, the closed end is on the bottom, and the flames are licking the central section of the bamboo. Cook, rotating bamboo every 5 to 10 minutes for even heating and to prevent any section from burning, and shifting the bamboo as needed to also expose each end to the flames, until a steady steam escapes from the bamboo's opening, about 1 hour; feed fire as needed to maintain a live flame. Remove the bamboo culm from the fire until cool enough to handle.

Two image collage of bamboo culms cooking over fire
Serious Eats / Michelle Yip

Using a heavy-duty knife or cleaver and tapping its spine with a heavy object, carefully split the bamboo vertically from the open end, then pry open the bamboo and scoop out the filling into a large bowl. Serve warm.

Four image collage of opening calum and scraping chicken rice mixture into bowl
Serious Eats / Michelle Yip

To Cooking in a Baking Dish: Preheat oven to 325°F (160°C). Spread rice mixture into a 9- by 13-inch baking dish, smoothing the surface without packing the rice too tightly. Tie 1 pandan leaf into a knot and place on top of the rice mixture. Cover baking dish tightly with foil. Cook until chicken is fully cooked through, 30 to 45 minutes.

Four image collage of baking chicken and rice mixture with pandan leaf
Serious Eats / Michelle Yip

Special Equipment

One or more bamboo culms large enough to hold filling (see headnote for more details) or one 9- by -13-inch baking dish

Notes

Feel free to use half of a roughly 4-pound chicken, or bone-in, skin on chicken legs or thighs. Use a cleaver or pair of quality kitchen shears to cut through the bones when cutting the chicken into smaller pieces, or ask the butcher to do it for you.

If desired, you can marinate the chicken and seasonings for 2 to 3 hours before mixing with the cooked rice to allow the flavors to meld.

Make-Ahead and Storage

This rice dish is best when freshly made.

These Sweet Emerald Nuggets Are the Perfect One-Bite Dessert

These palm-sugar-filled Malaysian dumplings are satisfyingly chewy—and worth keeping in your freezer for an easy anytime snack.

Overhead view of a hand picking up an onde-onde from a platter full with one cut open to see the inside
Serious Eats / Michelle Yip

A favorite teatime treat for many Malaysians is onde-onde, a fluffy, chewy ball filled with melted palm sugar, the dough tinged green with pandan and covered with freshly grated coconut. I say “a” but it’s hard to stop at just one, as these emerald nuggets are extremely snackable. Onde-onde is one of dozens of types of kuih, lovingly and laboriously prepared snack items that have their roots in Nyonya culture. There are two things to define here now: What is Nyonya, and what is kuih? Let’s talk about Nyonya first.

Overhead view of two plates of onde-onde with two drinks
Serious Eats / Michelle Yip

Nyonya is a shortened form of the term Baba-Nyonya, which refers to the Peranakan Chinese, one of the most well known of Malaysia's many ethnic groups. The Peranakan Chinese are descended from Chinese settlers who integrated into local Malay communities and adopted many of their cultural practices. There are other Peranakan groups around the region, including the Peranakan Chitty and Peranakan Jawa (“Peranakan” means “mixed parentage,” more or less), but the Peranakan Chinese have arguably gone to the greatest lengths to preserve their culture and heritage, especially food.
 
As for the definition of kuih, in the most general sense it refers to snack foods both sweet and savory. Kuih means different things to different people, but according to Debbie Teoh, a renowned Nyonya chef from Malaysia, kuih is any snack item that very specifically can be eaten in “one—maximum two—bites.”

Kuih: Symbolism in Every Bite

The small size of kuih is significant, their daintiness reflecting the importance placed on refinement in Nyonya culture. This kind of symbolism is woven throughout Nyonya culture, from furniture to fashion to food, each item signifying something particular. Food is where this symbolism shows itself the most: Show up to a Nyonya wedding dinner and each dish will be curated to represent prosperity, fertility, and the like. 

Side angle view of an onde-onde cut in half to show inside
Serious Eats / Michelle Yip

These days, though, a lot of kuih offered outside the home tends to be larger in size, lacking the traditional symbolism of these snacks. When I spoke to Debbie Teoh about kuih, I asked her about the super-sizing that was becoming more and more common. “People are not so careful about symbolism and significance these days,” Debbie lamented. “More than two bites is not kuih—Nyonya would say kasar.” “Kasar” in this context means “rude” or “uncouth.” Small bites are necessary because traditional Nyonya etiquette dictates that you’re to be dainty and not open your mouth too wide when eating.

Beyond their size, kuih can function on multiple other symbolic levels. Different shapes, colors, and ways of presenting kuih are selected depending on the occasion. Happy celebrations like birthdays involve brightly colored kuih in red, orange, and yellow hues. Somber gatherings like funerals use the colors black, blue, and white. 

Overhead view of a hand holding a single onde-onde
Serious Eats / Michelle Yip

Onde-onde is specifically meant to be served at weddings. As for why, well, one might be able to guess based on the visuals of the fluffy balls. “The Nyonya are very crude! They’re actually very loud; they just don’t use their mouths to talk,” Debbie says, laughing, of the way these Nyonya symbols can simultaneously enforce good manners while indulging in some good, old-fashioned sexual innuendo. “I didn’t come up with these things. These symbols came about way before I was born.

The Building Blocks of Onde-Onde

If there was a cheat sheet of common Malaysian kuih ingredients, it would include some kind of rice flour (either regular or glutinous), palm sugar, fresh grated coconut, and pandan leaves. Onde-onde has them all. These sweets are made by wrapping pandan-scented glutinous rice flour dough around a filling of Malaysian palm sugar called gula melaka, boiling the filled dough balls, and then rolling them in coconut.

According to Debbie Teoh, the true Nyona way of preparing onde-onde uses gula melaka syrup. But since filling the dough balls with syrup can be tricky even for seasoned cooks, Debbie suggests using very finely shaved gula melaka instead. To ensure that the sugar melts into gooey, pops-in-your-mouth sweetness, it’s important to use the right ratio of dough to filling. If the skin is too thick, the gula melaka shavings will not melt while boiling, resulting in an unpleasant grainy texture. Many Nyonya aunties insist as well on using mashed cooked sweet potato in the dough (as does this recipe), as it helps keep the onde-onde tender after they cool down. 

Overhead view of forming onde-onde
Serious Eats / Michelle Yip

When we chatted about the substitutions that diaspora Malaysians use when making Malaysian recipes, Debbie was supportive, saying, “Recipes will always evolve. You have to accept it.” For those without easy access to freshly grated coconut, she offered an ingenious tip she heard from Malaysians living overseas: microwaving desiccated coconut in a small amount of water. I tried this technique, and it rehydrated perfectly, producing an excellent stand-in for freshly grated shavings.

Of course we’d all like to make a dish with its "original" and "correct" ingredients in the "proper" way. But the further you get from the place and time a dish originates, the more it adapts. The Nyonya probably understand this as well as anyone, themselves being a diasporic community. So when you’re hankering for a taste for home, you do the best you can with what you have, even if it means microwaving dried coconut.

In a large microwave-safe bowl, stir together desiccated coconut, kosher salt, and 1/4 cup (60ml) water. Microwave on high power for 1 minute. Fluff the rehydrated coconut flakes with a fork, then set aside.

Overhead view of fluffing coconut flakes
Serious Eats / Michelle Yip

Using a fork, prick skin of sweet potato all over. Place sweet potato on microwave-safe plate and microwave on high for 5 minutes. Sweet potato is ready when it can be pierced easily with a paring knife; if it isn't ready, continue to microwave in 30-second increments until soft. Let stand until cool enough to handle. Peel the sweet potato and measure 3 1/2 ounces (100g) and mash it with a fork; reserve remaining sweet potato for another use.

Overhead view of smashing the sweet potatoes
Serious Eats / Michelle Yip

In a blender or food processor, combine pandan leaf pieces and 1 cup (240ml) water. Blend or process until the leaves are as pulverized as your machine allows, 1 to 2 minutes. Strain pandan juice through a fine-mesh strainer set over a medium bowl; discard pulp.

Two image collage of processed pandan leaves and straining mixture
Serious Eats / Michelle Yip

In a medium mixing bowl, combine mashed sweet potato and rice flour, using your fingers to break up any sweet potato chunks (like working butter into pie dough). Add pandan juice and work mixture into a dough. If needed, add water to the dough, 1 tablespoon at a time, until it becomes the texture of wet sand (it might still be a little crumbly but you should be able to squeeze the dough together into a cohesive whole).

Four image collage of mixing sweet potatoes, adding pandan leaf juice, adding water, and crumbling flour
Serious Eats / Michelle Yip

Using your palms, roll dough into 1-inch balls and arrange them on a baking sheet. While you work, keep both the bowl and the baking sheet covered with damp kitchen towels to prevent the dough and dough balls from drying out.

Two image collage of rolling onde-onde dough between hands and finished dough balls on a platter
Serious Eats / Michelle Yip

On a cutting board and using a sharp knife, very thinly slice palm sugar into shavings, then transfer to a bowl and break up any lumps with your fingers as finely as possible (if using gula melaka, this should be easy as it tends to be quite moist; if using a more dry and firm palm sugar, you may want to try grating it finely instead of using a knife).

Overhead view of shaving sugar
Serious Eats / Michelle Yip

Make a deep indentation in 1 dough ball with your thumb. Lightly pack about 1 teaspoon of shaved palm sugar into the indentation, then pinch the dough so that it completely covers the filling. Gently roll the dough back into a smooth ball, then return it to the baking sheet and cover with a damp kitchen towel. Continue filling and rolling the balls until all of the palm sugar is used up, making sure to keep all the dough balls covered with a damp kitchen towel to prevent drying out.

Four image collage of making indents and placing filling in dough balls
Serious Eats / Michelle Yip

In a large saucepan, boil about 3 inches of water over high heat. Working with about a dozen at a time, transfer the balls to the boiling water. Cook until they float, about 2 minutes. Using a wire skimmer, lift the onde-onde from the water, gently shake to rid of excess water, and transfer to the bowl of coconut. Roll in coconut until completely coated, then transfer to serving plate. Repeat with remaining dough balls. Serve immediately.

Two step collage of boiling onde-onde and coating cooked one in coconut
Serious Eats / Michelle Yip

Special Equipment

Microwave, blender or food processor, wire skimmer/spider

Notes

  • The recipe can easily be scaled up or down as required.
  • If you don’t have a microwave oven, use a bamboo steamer and wok combo or a tiered steamer to steam the desiccated coconut and sweet potato. Boil water in the wok or bottom tier of the steamer over high heat, then place the steamer basket over the boiling water. The desiccated coconut will take about 1 minute, and the sweet potato will take 20 to 30 minutes. 
  • Step 7 is the most time-consuming part, so get some pals together or put a TV show on. Everything else goes by quite quickly.
  • Make-Ahead and Storage

    Onde-onde, like many other kuih, is best eaten immediately once cooked as it does not keep well.

    To freeze onde-onde, set uncooked dumplings on a 9- by 13- inch baking sheet lined with parchment paper and transfer to freezer. Once frozen, dumplings may be consolidated into a zip-top bag.

    To cook from frozen: In a large saucepan, boil about 3 inches of water over high heat. Working with about a dozen at a time, drop the filled balls into the boiling water. Cook until they float and the sugar in the center has melted, about 6 minutes. Using a wire skimmer, lift the onde-onde and gently shake off excess water, then transfer to the bowl of coconut. Roll in coconut until completely coated, then transfer to serving plate. Repeat with remaining dough balls. Serve immediately.

    The Easy, Spicy Fish Supper Our Culinary Editors Are Racing Home to Make

    Bake your fish the Malaysian Portuguese way—with a spice paste and plenty of banana leaves.

    Overhead view of sambal stingray
    Serious Eats / Michelle Yip

    Malaysia, like much of the world, has a long history of being colonized by European countries. Its historical port city Malacca was conquered in turn by the Portuguese, the Dutch, and the British (who then made their way throughout the country), leaving indelible marks all over the cultural landscape. You can see it in the architecture of many older government buildings in our state capitals, the pervasive segregation of society by ethnicities, and, of course, in our food.

    Overhead view of a single serving of sambal stingray
    Serious Eats / Michelle Yip

    The Malaysian Portuguese (also called the Kristang) is by far one of the most resilient communities in the country, with their own festivals, music, and cuisine that have survived until today. If you’re traveling through the state of Malacca, you’re sure to get recommendations from tourists and locals alike to try the locally prepared Portuguese baked fish, an extremely popular menu item that has made its way around the country to home kitchens and even shopping-mall food courts. It’s essentially fish smothered in a rich and spicy paste, wrapped in banana leaves, and either grilled or baked. When it’s cooked with skate, it’s also referred to as sambal stingray, though any kind of fish (such as snapper) will do.

    Interestingly, this archetypical dish of the Portuguese community only came about in the 20th century. Martin Theseira, Portuguese community leader and activist from Malacca, states confidently that Portuguese baked fish as it is served now was not in existence before the mid-1960s when he was a teenager. “There’s a spice paste combination popular in Kristang kitchens called rempah sayur (meaning ‘spice paste for vegetables’), which traditionally consists of candlenuts, fresh chiles, fermented shrimp paste, and Asian shallots,” he explains. His friend and part-time fisherman Charlie Overee is the first person he knows who experimented with pairing rempah sayur with fish and grilling it. It became a favorite party dish, the recipe spreading from family to family, and eventually became part of the menu in Kristang restaurants around Malacca. 

    A fish spatula lifting up a bite of sambal stingray
    Serious Eats / Michelle Yip

    These days, each family has their own version of spice paste for Portuguese baked fish. One of my personal favorite versions of it is served at De Lisbon Restaurant. Julie Rodrigues, head cook and owner of the restaurant, tells me that her recipe includes lemongrass (which is not a traditional component of rempah sayur), and uses dried chiles instead of fresh chiles. Perfumed even further with makrut lime leaves, the baked fish is served with a small squeeze of calamansi juice to perk up the flavors, and served with white rice.

    The fish of choice used at her restaurant and many other eateries are red snapper and sea bass, as they’re easier to procure fresh, but I love it cooked with skate. The recipe shared below is my own approximation of the version served at De Lisbon, prepared with skate, and baked in the oven for convenience.

    Adjust oven rack to middle position and preheat oven to 350℉ (180℃). Line a quarter- or half-sheet pan or 10-inch cast-iron skillet with parchment paper or aluminum foil.

    Overhead view of lining a pan with aluminum foil
    Serious Eats / Michelle Yip

    In the bowl of a food processor, add onions, soaked chiles, candlenuts, and lemongrass. Process until fairly smooth, 2 to 3 minutes, scraping down sides of food processor bowl if necessary.

    Two image collage of sambal ingredients in a food processor before and after being processed
    Serious Eats / Michelle Yip

    In a wok or 10-inch skillet, heat vegetable oil over medium-high heat. Once oil begins to shimmer (but not smoke), scrape contents of food processor bowl into oil along with the makrut lime leaves. Bring to a bubble, then reduce heat to medium-low and cook the spice paste, stirring and scraping occasionally, until it takes on a deep brown color and begins to look ever so slightly shiny, about 30 minutes. Stir in 2 teaspoons (6g) salt and cook for 1 minute longer.

    Two image collage of cooking sambal and lime leaves in wok
    Serious Eats / Michelle Yip

    Place the banana leaves on the prepared baking sheet, darker side up, overlapping the leaves to fully cover the pan and overhang the sides. Sprinkle lightly with salt, then set the on top in a single even layer. Spoon cooked spice paste directly onto fish, spreading it to cover fish completely. Fold banana leaves over fish, then fold parchment or aluminum foil over all the ingredients, sealing edges into an airtight parcel (see notes).

    Four image collage of stingray being placed on banana leaves, sambal mixture being spooned over and leaves being folded over
    Serious Eats / Michelle Yip

    Bake fish for 15-20 minutes if pieces are thinner than 1 inch, or 20-25 minutes if pieces are thicker than 1 inch (an instant-read thermometer inserted through the banana leaves into the center of the thickest part of a piece of fish within should register 140 to 150°F (60-65°C). Let rest in packet for about 5 minutes, then gently unwrap the foil and banana leaves. Transfer banana leaves and fish to a platter, squeeze calamansi or lime juice over the fish and serve immediately with warm rice on the side.

    Two image collage of banana leaf envelope wrapped in aluminum foil and then squeezing lime over cooked stingrays
    Serious Eats / Michelle Yip

    Special Equipment

    Food processor, aluminum foil, half-sheet pan or 10-inch cast-iron pan

    Notes

    If skate is unavailable, a similar weight of red snapper or sea bass can be used instead. In this case, the freshness of the fish is more important than the species, so use your judgment.

    Candlenuts are also known as kukui in Hawai’i, and are relatively common in Polynesian islands and Southeast Asia. They are macadamia-like in color and texture, though should be cooked before consumption as they are mildly toxic when raw.

    It's also possible to cook the fish in the banana-leaf package without having to seal it with foil or parchment. To do so, line the baking sheet as directed with banana leaves, then spread the cooked spice paste in an even layer on the banana leaves. Set the fish on to, lightly season with salt, and fold the overhanging banana leaves in to close the package. Carefully flip the package so that the folded-over side is now on the bottom (the package will now remain closed without the assistance of parchment or foil). Cook as directed.

    Make-Ahead and Storage

    The cooked fish keeps in an airtight container in the fridge for up to 5 days; reheat gently in the microwave.

    This 5-Ingredient Malaysian Salad Is Dressed to Impress

    Toss toasted coconut, slivers of shallot, and greens of your choice with chile sauce and lime juice for a sweet, smoky salad that pairs well with any simple protein or rice.

    Angled view of multiple bowls of kerabu
    Serious Eats / Michelle Yip

    A significant part of Malay culinary tradition is “ulam,” which refers to wild or cultivated vegetables that are eaten raw or briefly blanched as an accompaniment to the rest of the dishes of a meal. Almost any vegetable can be used as an ulam as long as it is edible raw. An extension of the ulam concept is “kerabu,” which is basically the Malay word for “salad.” The aforementioned ulam are combined and dressed with sambal (usually sambal belacan, which includes shrimp paste along with red chiles and lime juice) and toasted grated coconut, and then perked up with lime juice to make a fresh and spicy salad. Kerabu can be seen as one part of a larger vegetable-focused theme across Southeast Asia, from the fresh som tam, or "pounded salads," of Thailand to the cooked urap salads of Indonesia, all of them no doubt influencing each other in taste and texture.

    Overhead view of three different stylings of kerabu
    Serious Eats /Michelle Yip

    Much like Western-style salads, kerabu tends to be based on a star ingredient. While you can find kerabu featuring meat like beef lungs, chicken feet, or jellyfish throughout Malaysia, it’s much more common to see kerabu based on vegetables, both raw and blanched. Multiple vegetables are sometimes found in one kerabu, but it's more common for each kerabu to feature a single main ingredient. Popular choices for the main component of vegetable kerabu include crunchy green pods like long beans, green beans, or, my personal favorite, winged beans (kacang botor). Leafy vegetables are common, too, particularly hardy and mild-flavored greens like water celery (daun selom or, in Korean, minari, as featured in the eponymous 2020 film) or edible varieties of pennywort. These leafy greens tend to be wild weeds, gathered as part of a delicious, cheap, and nutritious meal.

    An important ingredient in kerabu is kerisik, or toasted grated coconut; it adds a smoky-sweet flavor and pleasant chew to the salad. To make it, you dry-fry the coconut in a pan for roughly an hour until it reaches the desired level of toastiness: Blond kerisik is the shade a piece of lightly toasted bread and retains some fresh coconut flavor; dark kerisik is more deeply smoky and caramelized. While fresh grated coconut is preferable, as it has more of its flavorful essential oils intact, I’ve discovered in the process of developing this recipe that using shelf-stable desiccated coconut can cut the cooking time for kerisik by half. That, plus the availability of desiccated coconut over fresh grated coconut, makes it a worthy option.

    Overhead view of toasted coconut
    Serious Eats / Michelle Yip

    Blonde kerisik is faster to make and plays well with leafy versions of kerabu. When kerisik gets to a very dark stage, it's dried out enough that it can last for up to a month in the fridge. Folks usually make kerisik like this in bulk, so it’s ready to add to kerabu, gulai, rendang, and other dishes that benefit from a smoky coconutty hit. In a well-stocked Malay kitchen, sambal belacan and kerisik are almost always on hand in the fridge. This means that kerabu can be pulled together in as little as 10 minutes, making it an easy weeknight win.

    A new favorite dinner party idea of mine is to set up a kerabu bar, where guests can choose what goes into their individual kerabu. I like to set out different fresh and blanched greens, along with kerisik and sambal belacan, plus a mixing bowl at the table for folks to mix their individual kerabu. Fried or grilled proteins like fish and tofu are great to serve with the kerabu, as is a pot of cooked rice to eat with it.

    For the Kerisik: In a dry skillet or wok, add the grated or desiccated coconut and set over medium heat. Toast coconut, stirring continuously, until it reaches the desired color, anywhere between light tan to chocolate brown; it will take between 40-60 minutes to toast fresh grated coconut, or 10-40 minutes for desiccated coconut. Remove from heat and set aside to cool. If making a darker kerisik: Transfer the cooled toasted coconut to a mortar and pestle, spice grinder, or food processor, and pound or process until it becomes a powder.

    Four image collage of toasted keshirk
    Serious Eats / Michelle Yip

    For the Kerabu: Heartier vegetables like beans or water celery are best if blanched, while leafy vegetables are often better left raw. If blanching the vegetables: In a large saucepan, bring 4 cups (1 quart/1L) water to a boil over high heat. Add chopped vegetables and cook until crisp-tender, about 30 seconds (time will vary depending on the vegetable being cooked). Strain vegetables and set aside to cool.

    Two image collage of winged beans
    Serious Eats / Michelle Yip

    In a large mixing bowl, add the vegetables (blanched or raw), sliced shallots, sambal belacan, lime juice, and 1 tablespoon kerisik and stir to combine. Taste for balance: It should have the crunch of the vegetables, the astringency of the shallots, the spice and savoriness of the sambal belacan, the smoky sweetness of the kerisik, and the bright acidity of the lime. Add more sambal belacan, kerisik, or lime if needed and mix well. Serve.

    Two image collage of vegetables, sambal balcan and seasoning in a metal bowl
    Serious Eats / Michelle Yip

    Special Equipment

    Mortar and pestle or spice grinder or food processor 

    Notes

    Water celery or minari is available at Korean marts. Fresh grated coconut and winged bean (also called goa bean) can be found in specialty Asian markets. Desiccated coconut is usually available at baking supply stores.

    Make-Ahead and Storage

    Dark toasted kerisik can last up to a month in the fridge if stored carefully. It also freezes well for up to 6 months. Prepared kerabu, depending on the vegetable used, can last up to 2 days in the fridge.