Recipes by Matthew James Duffy. Follow him on Instagram, TikTok, or Youtube.

Cranberry, Walnut & Orange Soda Bread
Makes 2 loaves
Ingredients
Dry Mix
- 258 g bread flour
- 258 g red fife flour
- 103 g oatmeal
- 57 g sugar
- 10 g baking soda
- 11 g baking powder
- 6 g cinnamon
- 9 g salt
Inclusions
- 115 g walnuts, roughly chopped
- 115 g raisins
- 57 g dried cranberries
- 26 g orange zest (freshly grated if possible)
Liquid
- 574 g buttermilk
Directions
- Mix the dry ingredients. In a large stainless steel bowl, whisk together the flours, oatmeal, sugar, baking soda, baking powder, cinnamon, and salt.(I always double-check this step — soda bread can get weird if you miss an ingredient. Been there.)
- Add the inclusions. Fold in the walnuts, raisins, cranberries, and orange zest. Make sure everything is evenly distributed so you don’t end up with a “sad half” of the loaf.
- Add the buttermilk. Pour in the buttermilk and mix gently by hand until a soft, shaggy dough forms.Don’t overwork it — soda bread likes to stay relaxed, kind of like me after a long bake day.
- Rest the dough (30 minutes). Cover the bowl with a towel and let the dough sit. This helps hydrate the oatmeal and makes shaping easier.
- Divide & pre-shape. Split the dough into two equal pieces. Gently round each into a loose boule.
- Rest again (30 minutes). This second little nap helps prevent cracks from getting out of control in the oven.
- Final shape. Round each piece more tightly into a smooth boule and place on parchment.
- Bake. Bake in a rotating deck oven at 190°C (375°F) for about 35 minutes, or until the loaves are deeply golden and sound hollow when tapped.
- Cool. Let cool on racks before slicing — soda bread can feel gummy when cut too warm.
Notes
- This dough is intentionally soft and rustic — don’t expect smooth sourdough vibes.
- You can swap inclusions (chocolate + orange, hazelnut + cranberry, etc.).
- If you want taller loaves, bake them closer together on the tray so they support each other.

Whole Wheat Tangzhong Milk Buns with Seeds
| Portion Size | Prep Time | Cook Time |
|---|---|---|
| 9 buns | 20 minutes | 25 minutes |
Ingredients
For the Tangzhong
- 26g bread flour
- 129g water
For the Final Dough
- 256g bread flour
- 64g whole wheat flour
- 128g whole milk (3.25%)
- 42g egg – about 1 egg(s)
- 5g milk powder
- 32g white sugar
- 6g salt
- 6g instant yeast
- 29g butter (room temperature)
- 64g seed mix (sunflower seeds, yellow flax seeds, black flax seeds, sesame seeds)
- 132g Tangzhong (all of the Tangzhong)
For the Egg Wash
- 1 whole egg beaten
- Seeds for garnish
Directions
For the Tangzhong
- Whisk the flour and water together in a saucepan until there are no lumps, then transfer to the stovetop cook at low-medium heat and stir continuously. Some of the water will evaporate and the final weight will be less than the starting weight of the ingredients.
- Cool to room temperature.
For the Final Dough
- Mix all ingredients except the seeds in a bowl until a soft dough forms about 3 minutes on first speed followed by 6 minutes on 2nd speed.
- Add the seeds and mix in on first speed for about 3-4 minutes.
- Bulk ferment for 50-60 minutes; DDT 25°C (78°F).
- Divide the dough into 9 pieces.
- Flatten each piece and roll up. The buns need to have a tight surface after the final shape. Place your hand over the dough and use the surface of the table to tighten the dough into a taut ball. This helps the buns hold their shape and will help to increase their volume during baking. Pinch the seams at the bottom to create a smooth, tight surface on top.
- Place all the pieces in a pan.
- Proof for 70-90 minutes.
- Brush with egg wash and sprinkle with seeds if desired.
- Bake at 400°F for 25 minutes.

Pecan Pie Babka
Excerpted from Bread Etc. Recipes + Techniques for Baking with Sourdough, Yeasted Dough, Pizza Dough + More by Matthew James Duffy. Copyright © 2025 Matthew James Duffy. Photographs by Alex Nirta. Published by Appetite by Random House®, a division of Penguin Random House Canada Limited. Reproduced by arrangement with the Publisher. All rights reserved.
| Portion Size | Equipment Needed |
|---|---|
| One 10-inch (25 cm) round babka | Rimmed sheet pan; 10-inch round cake pan |
Dough Schedule
MIXING: 6 minutes (stand mixer) or 8-10 minutes (by hand)
BULK FERMENTATION: 1 hour
FILLING & SHAPING: 20 minutes
FINAL FERMENTATION: 2 to 3 hours
BAKING: 40 to 45 minutes
Ingredients
For the Dough
- 1/2 batch Challah dough, prepared to the end of the bulk fermentation stage
For the Filling
- 343 g pecan halves
- 125 g butter, room temperature
- 87 g maple syrup
- 250 g brown sugar
- 15 g ground cinnamon
- 7 g vanilla paste or extract
- Egg wash
For the Simple Syrup
- 88 g white sugar
- 74 g water
Directions
For the Filling
- TOAST THE NUTS: Preheat the oven to 350°F (175°C). Toast the pecans on a lined sheet pan for 15 to 18 minutes, stirring halfway through, until evenly toasted. Let cool to room temperature, then roughly chop.
- MAKE THE FILLING: To a large mixing bowl, add the butter, maple syrup, brown sugar and cinnamon. Mix until fully combined.
For the Babka
- FILLING & SHAPING: Roll the dough into a 20 × 12-inch (50 × 30 cm) rectangle, ½ inch (1.25 cm) thick. Spread the filling in an even layer over the dough, leaving a ¾-inch (2 cm) border on one of the long sides. Evenly distribute the toasted pecans over the filling.
- Starting at the long side where the filling goes right to the edge, roll the rectangle into a cylinder. As you roll, tuck and push toward the middle of the dough, keeping the roll taut.
- Using a bread knife, cut the cylinder in half lengthwise, so the filling and layers are visible. Attach the two pieces at the ends farthest from you by pinching them together with your fingers, then begin crossing them over each other to make a twist.
- Once the strands are fully twisted, starting with the thinner end, spiral the twist inward, forming it into a round. Carefully transfer it to a lightly oiled 10- inch (25 cm) cake pan. The dough won’t quite fill out the pan.
- FINAL FERMENTATION: For the Final Fermentation Proof, covered with a plastic bag or kitchen towel, at room temperature for at least 2 and up to 3 hours. The dough is ready to bake when it has roughly doubled in size and is light to the touch. To check, gently press a finger into the dough; it should spring back but leave a slight indent.
- PREPARE TO BAKE: Preheat the oven to 350°F (175°C). Make the egg wash by whisking together the egg, water and salt until combined and no egg white remains.
- BAKING: Brush the babka with the egg wash. Bake for 40 to 45 minutes, or until risen and golden brown.
- MAKE THE SIMPLE SYRUP: In a small saucepan over high heat, combine the sugar and water and bring to a boil, stirring to dissolve the sugar. Remove from the heat and set aside.
- COOLING: Place a wire rack inside a rimmed sheet pan. When the babka is done, transfer the pan to the rack and let cool for 2 minutes, then carefully transfer the babka to a serving dish. You can use a spatula or spoon to help lift it out of the pan, but be careful: the caramel will be very hot. Spoon any sauce left in the pan over the babka, then brush the simple syrup over top. Let cool for 45 to 60 minutes before serving warm or at room temperature.

Classic Panettone
Ingredients
For the First Dough
- 119g strong white flour
- 65g butter, room temp
- 46 g egg yolk, cold
- 65g water
- 44g caster sugar
- 75g levain
For the Second Dough
- 119g strong white flour, cold from freezer
- 30g water, cold from fridge, divided into 27g and 3g
- 92g butter, room temp
- 102g egg yolk, cold
- C54g caster sugar
- 13g honey
- 1g-ish vanilla bean, scraped
- 4g salt
- 5g orange paste 5g (3g orange zest/3g sugar, mix w/fingers)
- 89g Inclusion 1
- 89g Inclusion 2
- 89g Inclusion 3 (if using)
- 415g First Dough
For the Glaze: Classic
| 500g Dough | 1000g Dough | |
|---|---|---|
| Sugar | 35g | 70g |
| Almond Flour | 18g | 35g |
| Egg White | 18g | 35g |
Directions
Before the 1st Dough
- Boil water, measure the amount needed and dissolve sugar in water completely. Let cool to room temp.
- Pre-set Proofer Temp to 79 degrees
For the First Dough
Total mixing time should be bet 25-30min. Start a stopwatch to keep track of time.
Mix with paddle attachment, about 125 RPM (or 2nd speed on Kitchenaid)
- In a mixer with the paddle attachment, add flour, water/sugar mix and pasta madre. Mix on first speed (stir) to incorporate, then increase to 2nd speed. Mix until completely smooth: the dough should be pulling off the bottom of the mixer, stays at the back of mixer. It should have developed a lot of gluten. Patience! About 12 min or so. Take temp, don’t go above 82 degrees.
- Add half of the butter, pull dough back and add it into the dough, then fold dough over to help incorporate it more. Mix until fully combined, scrape down the bowl frequently. Should be silky.
- Add rest of butter, pull dough back and add it into the dough to help mix it more. Scrape down bowl frequently. Mix until fully combined. Dough should pull itself together.
- Take temp. No higher than 82 degrees! Add 1/3 of egg yolks. Should come together quickly. Scrape the bowl down, then add another 1/3 of yolks. Repeat until combined. Add final 1/3 of yolks, mix in completely. Move up mixer to around 150RPM (3rd or 4th speed on kitchen aid). When done, the dough will be flat on bottom of the bowl, but all combined. To check if done, put some butter on fingers and pull the dough - it should want to stick to itself and pull more dough off the bottom in one piece.
- Let rest in bowl for 10 min.
- Meanwhile, grease counter, bench scraper, and fingers with butter. Butter your proofing container. At the end of 10 min rest, move dough to counter.
- Should see bubbles in dough. Pick up dough and fold on top of itself a few times. Then use bench scraper to develop some tension into a ball. Place in container.
- Put 2 rubber bands around container: one where the top of dough currently is, and another at 4 times higher.
- Cover and proof in proofer at 79 degrees until quadrupled in size. Should take bet 12-16 hours.
Before 2nd Dough
- Scale out ingredients on table: butter (room temp), honey/vanilla bean combo (room temp), sugar (room temp), orange paste (room temp or cold), salt, mix-ins (if using chocolate make sure it’s from freezer), water (cold from fridge), flour (cold from freezer), egg yolks (cold from fridge).
- Pre-set proofer temp to 82 degrees
For the Second Dough
Total mixing time 45-60min. Start stopwatch to keep track of time.
Mix with paddle attachment at 125RPM (2nd speed)
- Add first dough into mixer along with the 27g of the chilled water and flour. To remaining 3g of water add salt and try to dissolve as best as possible, set aside. Mix dough with paddle attachment at about 125RPM (2nd speed). Scrapedown as necessary. This should mix for about 12-15min. Dough should pull to back of mixer and be silky smooth. Take temp, might be on the warmer side.
- Stop mixer, add half the sugar, orange paste, and slightly less than half of butter (fold dough over the butter to incorporate like from first dough). Scrape down sides at beginning so it doesn’t smear and warm up. Mix until completely incorporated, feel dough to check. Should be around 20-22 min mark here, but go by visual cues more than timer marks.
- Add remaining butter, tuck in and keep going at same speed. Mix time now around 25 min. Dough should pull itself off mixer, hold a strong shape.
- Stop mixer and add the rest of sugar along with vanilla/honey mixture. Continue mixing until incorporated. Mix time around up to 27-28 min total at this point. Dough should pull itself off the bottom. Keep going until you can no longer feel sugar granules in the dough. Bowl should be clean, dough sticking together.
- Stop mixer, add first 1/3 of egg yolks. Continue mixing until incorporated. Take temp to check. Once incorporated add another 1/3 of yolks, continue until completely incorporated. Dough will start to go flat in mixer. Add final 1/3 of yolks, continue. Total mixing time should be around 33 min now.
- Add salt/water mixture. Scrape down bowl as necessary. Mix for about 2 min until incorporated. Dough should be silky smooth and homogeneous. Put butter on hands and pull dough, should all want to come out in one piece.
- Stop mixer, add mix-ins. Switch to dough hook. Turn mixer down to stir, incorporate 2-3 min.
- Put butter on fingers, check dough for window pane. If good, let sit in mixer for 20 min.
- Meanwhile, butter counter, bench scraper, and fingers. After rest period is over, turn dough out onto counter. Lift, turn, and fold dough over and onto itself a few times, then use bench scraper to turn and develop tension. Let sit uncovered for 20 min.
- Butter hands, take dough and round on table with bench scraper to develop more tension. Membrane of gluten should stretch thin, but don’t tear dough. Pick up and place inside of mold.
- Place into proofer set to 82 degrees. Should take 5-8 hours.
- To test when ready, place skewers on top of mold and measure distance from top of dough to skewer. Looking for 3cm. Should look domed.
For the Glaze and Bake
- Mix almond flour, egg whites, and sugar together with spatula, should come together and be thick-ish but still pipe-able. If too thick, add a bit more egg whites. Place into piping bag and starting from the center, pipe into circles around top of dough. Not too much! Don’t go too far towards the edges.
- Place large handful of pearl sugar in center of glaze, not the sides.
- Bake at 315-325 convection (or 335-345 in regular oven), should take 45-60min to bake for 1000g loaf and 40-45min for 500 g loaves. Begin checking internal temp at the top of the loaf about 3/4 of the way through, and closely monitor temperature every 3-5 min until finished. Bake to internal temp of 199F, max 201F.
- Quickly place skewers through the bottom of the mold, flip and hang. Let cool overnight.
Alternate Glaze: Chocolate
| 500g Dough | 1000g Dough | |
|---|---|---|
| Sugar | 32g | 64g |
| Almond Flour | 16g | 32g |
| Soft/Cake Flour | 2g | 3g |
| Cocoa Powder | 2g | 3g |
| Cornstarch | 2g | 3g |
| Egg White | 17g | 34g |
