4 beef short ribs, each 2 1/4 to 2 1/2 lb. (1 to 1.25 kg)
Sea salt and freshly ground pepper
2 Tbs. extra-virgin olive oil
1 large yellow onion, chopped
2 celery stalks, chopped
6 garlic cloves, crushed
1 carrot, chopped
3 1/2 cups (28 fl. oz./875 ml) dry red wine such as Syrah
3 bay leaves
1 Tbs. fresh thyme leaves
4 cups (32 fl. oz./1 l) beef stock, or as needed
1 1/2 lb. (750 g) Yukon Gold potatoes, peeled and quartered
1/4 cup (2 fl. oz./60 ml) milk
4 Tbs. (1/2 stick) (2 oz./60 g) unsalted butter
1 egg yolk, beaten
1. Season the ribs with salt and pepper and refrigerate, covered, for at least 6 hours or up to overnight. Bring to room temperature and season again with salt and pepper.
2. Preheat an oven to 350°F (180°C).
3. In a large sauté pan over high heat, warm the olive oil until shimmering. Working in batches if necessary, sear the ribs, turning as needed, until well browned all over. Transfer the ribs to a Dutch oven. Pour off all but 2 Tbs. fat from the sauté pan and return to medium heat. Add the onion, celery, garlic and carrot and sauté until beginning to caramelize, about 5 minutes. Add the wine, bay leaves and thyme, increase the heat to medium-high and bring to boil. Boil until the wine is reduced by half, 3 to 5 minutes. Add the stock, bring to a boil and pour the contents of the pan over the ribs. They should be just covered with liquid; add more stock if needed.
4. Cover the pot tightly and transfer to the oven. Braise the ribs, adding stock as needed to maintain the liquid level, until a fork slides easily through meat, about 2 1/2 hours. Skim off any fat from surface and let the ribs cool in the liquid until they are cool enough to handle. Remove the ribs from the pot and pull the meat from bones. Using two forks, shred the meat into bite-sized pieces. Return the meat to the pot and discard and bones and any excess fat.
5. While the ribs are cooling, in a saucepan, cook the potatoes in boiling salted water until tender, about 15 minutes. Drain the potatoes and return to the pan over low heat until mostly dry. Pass the potatoes through a ricer back into the warm pan. In a small saucepan, heat the milk and butter together until the butter is melted and the mixture is steaming. Pour the milk mixture into the potatoes, add the egg yolk and fold to mix well.
6. Raise the oven temperature to 400°F (200°F). Transfer the contents of the Dutch oven to a 9-by-13-inch (23-by-33-cm) baking dish or divide among individual gratin dishes. Cover the top(s) evenly with the potatoes. Bake until the topping is golden, 35 to 40 minutes. Serve immediately. Serves 6 to 8.