The first time I tried to make lo mai fan at home I ended up with a wok full of cement. The grains on the bottom had welded into a single brown sheet; the grains in the middle were chalky and raw. I had done what every shortcut video tells you to do: soak the rice for an hour, then boil it like regular rice and stir in the sauce. It tasted fine, in the way that a hockey puck would taste fine if you added enough soy sauce.
Sticky rice stir-fry, the Cantonese one-pan dish called lo mai fan (糯米飯), is not regular rice. It is glutinous rice, which carries almost no amylose and is held together by amylopectin, a starch that gelatinizes into the glossy, slightly bouncy texture we are after. That same starch is the reason it welds itself to a wok if you rush it. The traditional dim-sum method, where the rice is pre-cooked by steaming, makes it forgiving. The stir-fry-in-the-wok method I use here is faster and produces a more aromatic result because the grains absorb the rendered sausage fat and the reduced soaking liquid directly. It is also the method most likely to fail. So let's talk about how to not fail.
Soak the glutinous rice at least 6 hours, cook it in three additions of warm liquid with the lid on, and stop when the center of each grain still has a faint bite. One cup of dry rice (225 g) serves one hungry person or two as part of a meal.
What this dish actually is
Lo mai fan is a Hong Kong and Guangdong street-and-dim-sum staple, the savory cousin of the sweet eight treasure rice pudding served at banquets. You find it scooped into takeaway boxes at dai pai dongs, steamed in lotus leaf as lo mai gai for dim sum, and rolled into the breakfast fan tuan logs you grab from a Shanghai street cart. The stir-fried version is the home-style one: soaked raw glutinous rice cooked down in a wok with Chinese sausage, dried shrimp, rehydrated shiitake, scallion, and a glossy soy-and-oyster sauce. It is rich, so a bowl of it usually arrives with a small bowl of congee or a clear soup alongside, and a plate of plain greens to cut the fat.
The flavor is built from three pantry armies working together. The cured meats donate sweet fat (Chinese sausage, sometimes char siu or cured pork belly). The dried goods donate umami depth (dried shrimp, dried shiitake). And the soaking water from those dried goods becomes the cooking liquor, so none of that flavor walks out the door. If you have ever wondered why homemade fried rice tastes flat next to a restaurant's, it is usually because the cook poured the dried-shrimp soaking water down the drain.
The ingredients, and where I am opinionated
Ingredients at a glance

| Ingredient | Amount | Notes / substitute |
|---|---|---|
| Glutinous rice (sticky / sweet rice) | 450 g (about 2 cups) | Long-grain Thai sweet rice (the opaque white kind, not the translucent jasmine). Do not substitute regular jasmine or short-grain sushi rice; they lack the amylopectin that gives the chew. |
| Dried shiitake mushrooms | 6 medium | See my full shiitake mushroom guide for sourcing. Save the soaking liquid. |
| Dried shrimp | 2 tablespoons | Medium grade. Tiny salad-grade ones taste dusty. More in the dried shrimp guide. |
| Chinese sausage (lap cheong) | 3 links | Cured pork belly (lap yuk) works and is fattier. A Chinese grocery will carry both. |
| Light soy sauce | 1 tablespoon | For salt and freshness. Light vs dark explained in the soy sauce guide. |
| Dark soy sauce | 1 tablespoon | For color. Molasses-thick; a little goes far. |
| Oyster sauce | 1 tablespoon | Premium vegetarian mushroom sauce is a fine substitute. |
| Shaoxing rice wine | ½ tablespoon | Read the Shaoxing wine notes; avoid "cooking wine" with added salt if you can. |
| Toasted sesame oil | 1 teaspoon | Finishing only; heat kills the aroma. Sourcing in the sesame oil guide. |
| Sugar | 1 teaspoon | Rock sugar dissolved is more mellow; granulated is fine. |
| Ground white pepper | ¼ teaspoon | White, not black. Black pepper reads as Western here. |
| Salt | ⅛ teaspoon | Adjust at the end; the sausages and soy are already salty. |
| Neutral oil | 2 tablespoons | Grapeseed, canola, or peanut. Not olive. |
| Garlic | 3 cloves, coarsely minced | Coarse, not paste. Paste burns. |
| Scallions | 3 stalks, chopped | Split whites from greens; they go in at different times. |
| Roasted peanuts | 50 g (⅓ cup) | Skinless, unsalted. Crushed cashews are a decent swap. |
Step 1: Soak everything, and keep the liquid

Soak the glutinous rice for at least 6 hours or overnight, then drain it thoroughly before it reaches the hot wok.
This is the step people cut and the dish dies. Glutinous rice needs a long, cold soak so the grain hydrates all the way to its center. Six hours minimum, overnight is better. If you skip this and try to hydrate the rice with hot wok liquid alone, the outside turns to paste before the inside is cooked, which is exactly the cement problem I made on attempt one. Soak in cold water, in the fridge if your kitchen is warm. Drain it thoroughly before it goes anywhere near heat; surface water is what makes grains clump on contact with oil.
Rehydrate the dried shiitake in cold water overnight, or in just-boiled water for 30 minutes if you forgot. Squeeze them hard, then dice small. The dried shrimp gets ten minutes in hot water, then a coarse chop. The Chinese sausage just needs three minutes in hot water to soften the casing so it slices cleanly; quarter each link lengthwise and cut into small cubes. Pour both soaking waters through a fine sieve to catch grit, combine them in a measuring jug, and top up with hot water to about 1½ cups (360 ml) total. That dark, savory liquid is gold. Do not throw it out.
Step 2: Build the sauce separately

Mix all eight sauce ingredients in a small bowl before starting the stir-fry.
Whisk the two soy sauces, oyster sauce, Shaoxing wine, sesame oil, sugar, white pepper, and salt in a small bowl. Mixing it ahead means you can pour it all at once over the rice instead of fumbling with bottles while your sausage burns. The dark soy does the heavy lifting on color; the light soy carries salt; the oyster sauce and dried goods carry the savory weight. This is roughly the same seasoning logic behind clay pot rice and Chinese sausage rice, which is why those dishes feel like cousins of this one.
Step 3: Render the sausage before the rice

Sizzle the garlic, scallion whites and lap cheong over medium-high heat until fragrant and the sausage begins to render.
Heat a wok or a wide non-stick skillet over medium-high and add the neutral oil. If your wok is seasoned carbon steel, this dish will test it; the amylopectin is sticky and will find any bare patch. A non-stick pan is the honest recommendation for home cooks here, even though it pains me to say it. Drop in the garlic and the white and pale-green scallion parts, then the diced sausage. Cook until the aromatics smell sweet and the sausage turns slightly translucent and its edges release fat into the oil, about one minute. That rendered fat is what later coats each grain and gives the dish its sheen.
Add the diced shiitake and chopped dried shrimp and toss for another minute to toast them. Now add the drained glutinous rice and stir to coat every grain in the flavored oil. Pour in the sauce mixture and stir until the rice is evenly tinted. The kitchen should smell aggressively good right now.
Step 4: The three-addition steam

Add the soaking liquid about half a cup at a time, cover for 3 minutes, and wait until the surface looks dry before repeating.
Turn the heat to low. Pour in about ½ cup (120 ml) of the warm soaking liquid, stir well, and cover with a tight lid. Let it steam for roughly three minutes, until the liquid has been absorbed and the surface looks dry again. Uncover, stir thoroughly, scraping the bottom, add another ½ cup, cover, and steam three more minutes. Repeat a third time.
Why three small additions instead of one big pour? Glutinous rice cooked in too much water at once goes mushy on the outside while the center stays raw. Small, covered additions let steam do most of the work and let you watch the texture change between rounds. You are essentially mimicking the risotto method, except you are not stirring constantly, you are steaming between stirs. After the third addition, taste a grain. It should be tender through most of the way with a faint firm core, the way good al dente pasta yields but still has structure. If the center is still chalky, do one more small addition and three more minutes. Err on the side of slightly firm; the rice keeps softening off the heat.
Step 5: Finish hot

Taste for a slight al dente firmness, then fold in the roasted peanuts and scallion greens and serve immediately.
Off the heat, fold in the roasted peanuts and the dark-green scallion tops. The residual heat is enough to wake the scallion without cooking the green out of it. Serve immediately, in shallow bowls. Left to sit covered, the dish steams itself past the point of no return and turns from distinct grains into one starchy mass. This is a cook-and-eat dish.
When it goes wrong, and how to fix it
Rice welded to the wok, burnt bottom, raw top. Your heat was too high, your additions were too big, or you skipped the lid. The lid traps steam, which cooks the top layer; without it the bottom burns before the top is done. Scrape off what you can, turn the heat down, and switch to smaller liquid additions.
Mushy, paste-like texture. Either the soak was too short and you compensated with too much cooking liquid, or you used a sticky-rice variety meant for desserts (the short, round sweet rice is even stickier than the long-grain kind and turns to glue in a stir-fry). Next time soak longer and trust the three-addition method instead of eyeballing water.
Grains chalky and hard in the center. Under-soaked rice. A six-hour cold soak is the floor. You can rescue a current batch with one more small addition of hot water and three more covered minutes, but the texture will never be as clean as a properly soaked batch.
Dish tastes flat despite all the ingredients. You poured the soaking water away. The dried shrimp and mushroom liquids are carrying most of the umami. Top up with hot water next time and use that as your cooking liquor.
Too salty. The sausages and soy sauces are already loaded with salt; resist the urge to add more during cooking, and season only at the very end if needed.
Variations and pairings
The base is a template. Swap the sausage for diced red-cooked pork belly or leftover roast duck and the dish moves toward a richer, banquet-style plate. Add a handful of dried scallops alongside the shrimp for a cleaner, more seafood-forward version, the kind you see at wedding banquets. For a vegetarian take, drop the meat and dried shrimp, double the mushroom, and add diced carrot and water chestnut for sweetness and crunch; season with vegetarian oyster sauce and a little mushroom soaking liquid enriched with a teaspoon of light soy.
This is a heavy dish, so serve it with something sharp or green. A quick bowl of wok-blistered greens with oyster sauce, a vinegar-dressed cucumber salad, or a clear soup with tofu all reset the palate between bites. The sweet, starchy cousin on the dessert side is lotus root stuffed with sticky rice, and if you want to see glutinous rice pushed to its most ceremonial, the leaf-wrapped zongzi is the masterclass.
For a wider tour of where glutinous rice shows up across the cuisine, the round-up of Chinese rice recipes by cooking method is a good map.
Storage and reheating
Leftovers keep two days in the fridge, tightly covered, and they will be drier and firmer than fresh. The microwave makes them gummy. The better path is to reheat in a covered pan over low heat with a tablespoon of water, steaming gently until warmed through and loosened. You can also shape cold leftovers into patties and pan-fry them crisp on both sides, which is arguably better than the original dish and a trick I now make on purpose. I do not recommend freezing; the texture breaks down into something unpleasantly pasty on thaw.
Frequently asked questions
Can I use a rice cooker instead of the wok method?
You can cook soaked glutinous rice on the regular white-rice cycle, then fold in the pre-stir-fried meats and sauce at the end. It is more forgiving and less aromatic, and the grains will not pick up the rendered-fat sheen. Good for a weeknight, not the same dish.
Is there a faster soak?
Hot water for two hours works in a pinch, but the grain hydrates unevenly and you will get a few chalky centers. If you are short on time, the steamed-then-stir-fried route (steam soaked rice 25 minutes, then fold through the wok) is more reliable than cutting the soak.
Why three liquid additions instead of one?
One big pour overcooks the outside before the inside catches up. Small covered rounds let steam carry the heat evenly and let you check texture between each, so you stop at the right moment.
Can I make it ahead for a crowd?
Partially. Soak the rice, rehydrate the dried goods, and mix the sauce the day before. Do the actual wok cooking right before serving; it loses its grain definition fast once it sits.



