Preheat the oven to 425°F.
Line two baking trays with parchment paper and set aside.
In a medium saucepan, combine the milk, butter, sugar, and salt.
If your original recipe includes water, add it to the saucepan at this stage.
Place the saucepan over low heat.
Stir until the butter has melted and the sugar and salt have dissolved.
Increase the heat to medium and bring the mixture to a steady simmer.
Remove the saucepan from the heat.
Immediately add the sifted flour.
Using a wooden spoon, stir vigorously until the mixture thickens and becomes smooth.
Continue stirring until no lumps remain.
A thin film may form on the bottom of the saucepan. Do not scrape this film into the dough.
Transfer the dough mixture to a food processor.
Allow the dough to cool for 1 to 2 minutes.
With the food processor running, add the eggs one at a time.
Check the dough after the third egg.
The dough should be smooth, shiny, and thick enough to hold its shape when scooped.
Add the fourth egg only if the dough remains too stiff.
Transfer the dough to a mixing bowl, if needed.
Stir in the grated cheddar cheese and grated Gruyere cheese until evenly distributed.
Using a small cookie scoop, portion the dough into small mounds.
Place the mounds onto the prepared baking trays, leaving approximately 1 inch of space between each one.
Place the trays in the oven.
Immediately reduce the oven temperature to 375°F.
Bake for 20 to 25 minutes, or until the cheese puffs are golden brown, puffed, and firm on the outside.
Remove from the oven.
Serve warm for the best texture and flavor.