Fu Pei-Mei’s Chinese Cook Book

Fu Pei-Mei’s (“the Julia Child of Taiwan”) 1969 cook book is a gem. Written in Traditional Chinese and English, it’s fun as a culinary rosetta stone but it is also an exhaustive treatment of traditional Chinese cooking. It’s out of print now but is available on the Internet Archive for free. Thank you Internet Archive!

Pei Mei’s Chinese Cook Book (300 pages)


  • Beef Stew Sze-Chuan Style (this is as good or better than what you can find in Taipei)
  • Ma-Po’s Bean Curd (this is better than any preparation I’ve ever had in a U.S. restaurant)

Sodium Citrate Macaroni and Cheese

Recipes abound for sodium citrate based mac and cheese, but the ratios of cheese/water/sodium citrate are all different. Having tried several recipes with several different types of cheeses it’s been a bit perplexing that I always end up tweaking the recipe somehow, either by adding more cheese or adding more sodium citrate to help it go into emulsion. I believe the fat content of the cheese is a huge variable that you need to adjust for. Because Tillamook Medium Cheddar is plentiful here on the west coast, here’s a combination that works well it. No guarantee it works with other cheeses!

  • 1lb noodles
  • 1.5 lbs Tillamook Medium Cheddar, diced/sliced
  • 3 tsp sodium citrate
  • 2 cups water

Cook noodles and set aside.

Bring water to a boil, add sodium citrate and stir until it goes into solution. Reduce to medium high heat and slowly add cheese to water, stirring vigorously, until cheese reaches a smooth consistency. Remove from heat, add noodles and continue stirring to prevent it from burning.

Some recipes recommend you use an emulsion blender to mix the cheese sauce. BAD IDEA. You’ll be removing cheese bits from your blender for months and you’ll never want to make this again. A normal spoon works fine.

PROTIP: This recipe makes a mess! Melt the cheese and combine the noodles in the same pot to reduce cleanup. To quickly clean the pot combine more water and more sodium citrate and return it to a boil. It’s not quite self-cleaning but saves a lot of effort.

See also my old Macaroni and Cheese recipe.

Bread machine hamburger buns

In the spirit of Bread Machine Baguette, here is a simple shortcut recipe that automates most of the work with making hamburger buns from scratch. The extended poolish time isn’t required here (with the milk you don’t want it anyways), so the recipe only takes about 3 hours and requires very little preparation other than shaping the dough.

The first time I ate one of these I wondered if I would ever be able to go to a store and buy a hamburger bun again. Three months later, I still have not been able to buy hamburger buns from the store. I’m not even able to see them in the store anymore–I am almost completely blind to the entire grocery store bread section now. Because the bread machine cuts out so much of the preparation work (and cleanup) and the end product is just next-level better than anything you can buy (even at a top-end bakery) you will probably wonder the same thing after you try this. You have been warned.

Place in the bread maker, in roughly this order:

  • 1/2 cup water
  • 1/2 cup milk
  • 1 egg
  • 2 tbsp sugar
  • 2 tbsp vegetable oil
  • 1 tsp salt
  • 1 tsp dry yeast
  • 1 lb (450g) all purpose flour

Using the same programming as Bread Machine Baguette, set the bread machine up to do at least two, preferably three, rise cycles but no baking cycle.

When the rise cycles are complete, fariner your work surface, roll the dough and cut into eight equal portions. Shape into discs and place on a well greased baking pan (or silicone baking surface). In a separate bowl, whisk together:

  • 3 tbsp milk
  • 1 egg

and apply to the top of the dough. Optionally apply sesame seeds to the top (protip: “everything seasoning”) and bake at 375°F until golden brown.

Shaping the dough might take some practice. Treat it like making cookies or biscuits, except you’re shaping the cookie by hand. Don’t stress out “over working” the dough–having done this a few times with my kids I concluded it’s pretty hard to screw up. However if you would like guidance on how to shape the buns there are a number of youtubers that go through the technique.

If you want to go “full brioche” replace all of the water with milk and the vegetable oil with unsalted butter, and perhaps also add a second egg. You can’t go wrong by doubling the butter either, but the further you go down this path the more delicate (and weaker) the bun will be. It depends upon your objective: if you want a hearty bun that can hold up a 1/2 lb burger I would leave the recipe as it stands, but if you’re looking for something to pair with prosciutto, light mozzarella and arugula by all means crank the brioche to 11.

Quick Camping Beef Stew

An umami-rich beef stew, ready in about 30 minutes.

  • 3 russet potatoes, diced
  • 4 large carrots, sliced
  • 1/2 large yellow onion, diced
  • 1 C portobello mushroom, diced
  • 1 1/4 lb ground beef 85% lean
  • 2 C chicken stock
  • 1/4 C soy sauce
  • 1/3 C tomato paste
  • 2 tsp anchovy paste
  • Salt

You can prep the vegetables ahead of time, packing them lightly in salt to help keep them preserved.

Sear ground beef on high heat in dutch oven. (Optional, to cut time: In a separate pot, combine potato and chicken stock and bring to a boil).

Add tomato paste, anchovy paste and soy sauce to beef, mix thoroughly. Add all vegetables and chicken stock to beef. Bring to a boil then reduce heat to a simmer and cover. After 20 minutes the potatoes and carrots should be soft. Add salt to taste.

Spaghetti with Veal and Bacon

For the last year I’ve been subjecting my family to spaghetti sauce experiments just about every weekend. It’s been an interesting challenge striking a balance between something that is rich enough to be paired with a robust wine, simple enough that my kids will eat it, and quick enough to make that it doesn’t take me all afternoon (or day).

Through this process I’ve come to believe a few ingredients are essential:

  • Caramelized yellow onions add a richness, authentic sweetness and texture that you can’t leave out.
  • Two strips of bacon, finely chopped, added towards the end of the onions caramelizing, takes the sauce to a whole other dimension. You only need two. Three is too many, and one is not enough for you to pick up on it. Pancetta also works here, but it imparts different flavors based on the spices used during curing. I’ve tried a whole bunch and there is one “applewood smoked” bacon at one grocery store in our area that I think works the best. This bacon really is the secret ingredient.
  • Veal, finely ground, has the perfect texture and flavor for spaghetti sauce but not so much texture to overwhelm you. I typically use a 1/2 lb.
  • Anchovy paste. 1-2 tsp. Absolute must have. I can’t make spaghetti without this now. Once you pick up on the little umami boost anchovy imparts you can’t go without it. I’ve tried replicating it with other ingredients but it just doesn’t work. You need anchovy paste.
  • Thoroughly salt the water for the spaghetti, and carefully watch the timer so you can stop it al dente. The salt is critical to get the spaghetti to the proper firmness and bring out the flavor. Opinions vary on how much salt to add (and it depends on the noodle); for the noodles we’ve been buying about 2-3 tsp table salt works for 500g noodles.
  • Fresh basil, thinly sliced, sprinkled on top before serving.

I’ve also concluded there are a few classic ingredients you can do without:

  • Celery and carrot aren’t worth it. Although these are classic bolognese ingredients, they are so fibrous you’ll need to cook them down for an additional 2-3 hours. The flavor gain is pretty minimal, and in that time you’ll have over-boiled and cooked down your other ingredients! I’ve found I prefer a sauce that has pockets of texture and flavor rather than one consistent flavor.
  • Extra meat. Again, a classic bolognese will have more ground beef or ground pork, but I’ve found you really don’t need to add it. It makes for a heartier plate but it distracts from other flavors. Sometimes I’ll add another 1/2-1 lb of ground beef or ground pork but it’s really not necessary.
  • Parmesan cheese (Parmigiano-Reggiano). I feel crazy writing this down but if you nail the sauce you will completely forget about sprinkling cheese on top. And if you do, you’ll regret it because it will mask the flavors of the sauce and just taste like you sprinkled salt on top.
  • Fresh tomatoes or tomato paste. Unless you have 3-4 lbs of fresh ripe tomatoes, a quizinart, 7-8 hours and a desire to clean splattered tomato off your backsplash, it’s much easier to use pre-made tomato sauce and canned tomatoes. The results will also be much more consistent. You can substitute a jar of marinara sauce but there’s only one brand I’ve found that I like; most are pretty bland.
  • Fresh garlic. I’m almost ashamed to admit it, but the sauce doesn’t need fresh garlic. Even a minute amount of fresh garlic will impart a biting zing to the sauce that overwhelms all the other spices. Fresh garlic only makes sense if you’re going to cook the sauce down for 3+ hours. If you like garlic (I love garlic) save it for the crostini on the side. Use only a small amount of garlic powder for the sauce.

Here are the rough steps I follow:

  1. Dice a large yellow onion and sauté over high heat with 2-3 tbsp olive oil, 1 tsp salt. When the onion starts to darken, but before it starts to burn, turn the heat to low, cover, and let simmer for 30-45 minutes. It should slowly turn dark brown and translucent.
  2. About 15-20 minutes into the caramelization you can throw the chopped bacon in with it. If you time it right you’ll have caramelized onions mixed with crispy bacon–you can just stop here. You have won the day.
  3. Add the other meat (veal, pork, beef), turn the heat up to medium and cook it until right before it starts to brown.
  4. Add 1-2 tsp anchovy paste and spices (I’m partial to thyme, coriander, oregano, fennel, garlic powder and red pepper flakes), mix in thoroughly.
  5. Add either 2 cans tomato sauce and 1 can diced tomatoes OR 1 jar of a pre-made marinara sauce.
  6. Simmer for 10+ minutes. Usually by this time the water for the noodles is boiling so I throw the noodles in, wait for them to cook and then serve.
  7. Serve with thinly sliced fresh basil on top.

This becomes an incredible dish if you serve it with crostini, a hot Italian sausage link cooked to 160°F, and a fine red wine.

Oatmeal banana pancakes

Out of flour? Want gluten-free pancakes? Want to change things up? A few simple modifications to a banana bread recipe will get you wheat-free pancakes.

In a blender, combine:

  • 3 eggs
  • 1/2 cup water
  • 2 bananas
  • 3 tsp baking powder
  • 1 tsp baking soda
  • 114g melted butter OR 100g olive oil
  • 100g sugar OR 100g honey
  • 1 tsp vanilla extract

Once this is thoroughly blended, add (a little bit at a time) 260g oats and continue to blend until oats are completely pulverized in the liquid. It will take a few minutes.

Bread machine baguette

Baguettes are a wonderful thing, but making a proper baguette requires multiple touch-points over an extended length of time. It’s not difficult by any means, just time intensive.

Since I own a bread machine I thought there must be a way to automate the dough. However the Internet does not appear to have (yet!) any recipes for that:

  • Have sufficient rise time. In order to develop the yeast for a baguette you need to let the dough work for a minimum of 9 hours.
  • Utilize a poolish. This is key to developing the yeast.
  • Bake at the right temperature. This type of bread needs to be baked at 470°F, which you can’t do in a bread maker, so you need to remove the dough before the bake cycle and finish it in the oven.
  • Use the right ingredients. A baguette is made from only flour, water, salt (2% by weight), and yeast (only a pinch).

I set our to change this. After some experimentation I discovered a very quick and easy way to make an excellent baguette at home with very little effort utilizing a Zojirushi BB-PAC20BA in “HOME MADE” mode. The first “trick” is to assemble the dry ingredients on the bottom of the bread maker (the opposite of what you would normally do).

Place in the bread maker, in this order:

  • A pinch of yeast on one side
  • 1 tsp (10g) salt on the opposite side
  • 300g bread flour*

Mix a poolish by combining:

  • A pinch of yeast
  • 1 and 1/4 cup water
  • 180g bread flour*

Carefully pour the poolish over the dry ingredients, being careful to not to mix them.

Program the bread machine (on my Zojirushi this is done in “HOME MADE” mode):

  • 0 minutes rest
  • 20 minutes knead
  • 60 minutes rise 1
  • 60 minutes rise 2
  • 60 minutes rise 3
  • 0 minutes bake
  • 0 minutes keep warm

The second “trick” is to execute this custom program on a timer. Set the bread machine to finish in 9 hours*. This will allow the poolish to develop for 6 hours, and the dough to rise over another 3 hours. Go to sleep, or get on with your day!

When the cycle is complete, pull the dough out onto a floured surface, divide in half and roll into two loaves. Bake at 470°F for about 10-12 minutes. For a crispy, crackly exterior, throw about a half cup of water into the bottom of the oven in the final minutes–the steam will crisp up bread.

*I’ve tried this recipe with several flours, and I prefer it with Gold Medal Bread Flour. For King Arthur Bread Flour (which has higher protein content ) increase the water to 1 3/8 cups and allow at least 11 hours total time.

The simplest BBQ brisket recipe on the Internet

I recently got a new BBQ smoker, after a 10+ year hiatus from BBQ. Temperature controlled, pellet fed.

I had to try a brisket first. But since I was rusty at smoking meats, I read a few articles online about making the “ultimate brisket” and was a little surprised by what I found. In summary, there are a lot of recipes out there that will keep you busy by your smoker rubbing, basting, spraying, turning and poking for 16+ hours. It sounded like a lot of work, and much of it sounded unnecessary.
Humans have been smoking meat for thousands of years. The recipe has always been salt+smoke. How hard can this be? After a few texts and calls to a good friend and avid barbecuer, I decided to try something simpler. Much simpler. For science.
The results turned out great. Not <your favorite BBQ joint> great, but pretty darn great given I put basically zero effort into this.
BBQ people of the Internet, I present the world’s simplest BBQ brisket recipe.
  1. Pat dry your brisket.
  2. Trim some fat off, but leave at least 1/4″ fat where you can. The fat makes a good moisture insulator. Or don’t. A dry crust tastes great too! For this experiment I trimmed the fat off one half of mine and left the fat on the other half; I liked both!
  3. Make a dry rub of 2 parts rock salt to about 1 part ground black pepper. Eyeball it. Rub it into the meat and let the brisket sit out for an hour.
  4. Set your smoker to 150°F and wait for it to stabilize at 150.
  5. Place the brisket in the smoker and cook for at least 1 hour per pound.
  6. DO NOT OPEN YOUR SMOKER. “If you’re looking, you’re not cooking.” Go look at something else: Look up at the sky, your significant other, whatever. There’s plenty of interesting things to look at. Don’t risk fiddling with the internal temp of your smoker.
  7. Shut the smoker off, wrap in foil and let rest for 60+ minutes before serving.
That’s it! Brisket, salt, pepper, smoke.. This is not complicated. My brisket came out with a perfect bark, a 3/8″ smoke ring and was oozing liquid when I cut into it. Tasted amazing. I noted that the internal temp of the fat side was 154°F, so my smoker–even though it was set to 150–was overshooting a little.
If you want the “ultimate brisket” keep scouring the Internet, but you should try this first 🙂
Update (a few weeks later): I’ve cooked about 4 more briskets since writing this and have learned a bit more about how to achieve the “ultimate brisket”. 160°F is the temperature at which the connective tissue collagen begins to break down (Link). If you want falls-apart-under-a-plastic-fork-tender brisket, you need to get the brisket above this temperature. The problem is this higher temp also comes with higher moisture loss.

The solution is a trick called the “Texas Crutch”: after slow-smoking the brisket at 150°F for 10+ hours, tightly wrap it in foil and then throw it in the oven at 175°F and let it go for another 6+ hours. You’ll lose the crispy bark but the trade is a super-moist melt-in-your-mouth brisket.

This isn’t quite as simple as I initially advertised but it’s worth the effort. I’ve been doing this as an 16 hour recipe: Start smoking at 8PM, at 8AM wrap it in foil and stick it in the oven and you’ve got great BBQ for lunch. The same technique works great with chicken legs. For pork butt, instead of wrapping in foil, stick it in a dutch oven and it’s ready to pull right away!

Ultimate omelet


The trick to the perfect omelet is to borrow a technique from frittatas: broil the omelet under high heat before you flip it. Broiling causes the egg to rapidly expand, yielding a fluffier, moister omelet. And it has the added benefit of decreasing the overall cook time.
Since we’re placing the omelet pan in an oven under a 500°F broiler, you’ll want to use a carbon steel or cast iron pan for this recipe. A 9″ pan with a 45° edge is ideal if you plan to flip the omelet like a pro.
  1. Pre-heat your broiler to 500°F.
  2. Pre-heat your omelet pan to about 275°F (medium).
  3. Sauté your diced veggies (onion, bell pepper, etc.) in a little oil until desired texture. (If you’re making a batch of omelets you may want to do this ahead of time).
  4. Add your meats (bacon, ham, sausage, etc.) and sauté for another minute. Shake pan to make sure nothing is sticking–if its sticking add a little more oil.
  5. Whip 2 eggs with a splash of water until frothy and pour over sautéd meats and veggies.
  6. Cook for one minute on stove (should be bubbling very slowly).
  7. Move pan to oven and place under broiler for 1-2 minutes.
  8. Watch omelet carefully, remove from oven when sides begin to curl up and top is a very light golden brown.
  9. Flip omelet over and place pan back on hob.
  10. Add shredded cheese to one side of omelet and fold omelet over. Cook for another 30 seconds.
  11. Flip folded omelet again and place back on hob for another 30 seconds.
  12. Serve.

Cheater chashu ramen

I’ve been on a quest this last year to find a home ramen recipe that’s easy, fast, and tastes somewhat authentic. So far my conclusion is such a thing doesn’t exist! Really good chashu takes 12+ hours (and requires a cut of pork belly–not always easy to find) and a rich broth takes 12-24+ hours. You can speed the process with a pressure cooker but it needs to be carefully monitored and thus loses on the easy criteria.

But I continue to keep trying. Here’s a technique that I think is worth sharing: This hardly tastes authentic at all but it’s relatively fast and very simple. I’ve made ramen this way a few times and it’s always been a big hit with the family. The trick is using a regular pork loin or pork chops (which we usually have in the freezer) in a slow cooker. Cooking time is 8-10 hours with about 15 minutes of prep time in the morning and another 30 minutes of activity towards the end before you serve it.
  • 1.5-2 lb pork loin (cut into 1″ sections) or pork chops
  • 1 cup soy sauce
  • 1″ fresh ginger, sliced
  • 5-10 cloves fresh garlic
  • 1/2 lb fresh mushrooms
  • 1 lb baby bok choy
  • 2 things of dry ramen noodles
Place the pork, ginger and garlic in a small slow cooker and cover with 1 cup soy sauce and ~1 cup water, set on low. Cook for 8+ hours.
Pull the pork out of the slow cooker and cut into thin slices (or just separate it like pulled pork if you don’t care about the texture).
Take the broth from the slow cooker and pour into a large pot. Dilute the broth with 1-2 cups water (to taste), add the mushrooms and bring to a boil. Reduce heat to low, add the baby bok choy and simmer for 30+ minutes.
15 minutes before service, bring another pot of water to a boil and cook the ramen noodles. Drain and rinse.
Serve the pork, noodles and broth together in a bowl. Enjoy!
** What about the soft-boiled egg?? You can prepare eggs anytime and have them ready to go in the fridge. Bring eggs to a boil then set a timer for 5 minutes. When the timer goes off quickly rinse them in cold water. Peel, then cover with a mixture of 50/50 soy sauce and water with a splash of rice vinegar, then marinade in the fridge.