Preheat your oven to 350°F. While it heats, generously butter a 9x13-inch baking dish, making sure to coat the bottom and sides well to prevent sticking. Spread the cubed day-old French bread evenly across the bottom of the dish—day-old bread is important because it's slightly drier and will absorb the custard mixture more effectively than fresh bread. Scatter the diced ham and shredded Cheddar cheese over the bread in an even layer.
In a large bowl, whisk together the room-temperature eggs and milk until well combined and slightly frothy—this ensures even cooking throughout the bake. Add the Dijon mustard, fresh thyme leaves, garlic powder, and season generously with kosher salt and black pepper to taste. Whisk until all ingredients are fully incorporated and the seasoning is evenly distributed. I like to taste a tiny bit of the raw mixture to check the seasoning—you want it to be flavorful since the bake will cook gently and won't develop as much seasoned depth as a stovetop dish.
Slowly pour the egg custard mixture from Step 2 evenly over the bread, ham, and cheese base from Step 1, making sure the liquid reaches all the corners and settles throughout the dish. Gently press down on the bread with the back of a spoon so it absorbs some of the custard, but don't compress it too much. Place the dish in the preheated 350°F oven and bake for 45 to 55 minutes, until the top is golden brown and a knife inserted in the center comes out clean or with just a few moist crumbs. I let the bake cool for 5 minutes before garnishing—this helps it set slightly and makes it easier to serve.
Remove the bake from the oven and let it rest for a few minutes before serving. Garnish the top with fresh thyme leaves for a pop of color and a hint of herbal freshness. Cut into squares and serve warm—this dish is wonderful on its own or alongside fresh fruit or a simple salad.