Prep the dish and oven: Heat oven to 350°F (175°C). Grease a 2-quart baking dish or 6–8 ramekins.
Set a larger roasting pan on the counter to use as a water bath.
Separate the eggs: Place yolks in a large mixing bowl and whites in a clean medium bowl. Ensure no yolk gets into the whites.
Whisk the base: To the yolks, add sugar and whisk until thick and pale, about 1–2 minutes. Whisk in melted butter and vanilla.
Add lemon and milk: Stir in lemon zest and lemon juice.
Whisk in flour and salt just until smooth. Gradually whisk in milk until the batter is thin and well combined.
Beat the egg whites: Using a hand mixer or stand mixer, beat egg whites to soft peaks. They should hold their shape but still look slightly glossy and droopy at the tip.
Fold gently: Fold the whites into the lemon batter in 3 additions.
Use a spatula and a light hand. Some streaks are okay. This airy step creates the cake layer on top.
Set up the water bath: Pour the batter into the prepared dish or divide among ramekins.
Place the dish inside the roasting pan. Pour hot water into the roasting pan until it reaches halfway up the sides of the baking dish.
Bake: For a 2-quart dish, bake 35–45 minutes, until the top is golden and the center wobbles slightly but is not liquid. For ramekins, start checking at 22–28 minutes.
Cool briefly: Remove from the water bath carefully.
Let it cool 10–15 minutes. The pudding layer will set slightly as it rests.
Serve: Dust with powdered sugar. Spoon into bowls while warm, making sure to scoop both the fluffy top and the creamy pudding.
Add whipped cream or ice cream if you like.