Prepare the duck legs. Allow the duck to come to room temperature for 15-20 minutes before beginning. Pat the duck legs dry, then season on all sides with 2 tsp kosher salt and ½ tsp freshly ground black pepper.
Sear the duck legs. Preheat an oven to 350°F. In a large pan, heat 2 Tbsp olive oil and 2 Tbsp butter (or ¼ cup of rendered duck fat, if you have it) over medium heat (not higher). When hot, add the duck legs, skin-side down, and cook undisturbed until golden brown, about 6-8 minutes on the first side. Flip the legs over, then cook for an additional 5 minutes on the second side. Transfer to a large plate. Drain all except for 2-3 tablespoons of duck fat (save the rest for frying eggs, potatoes, etc.!)
Cook the soffrito. To the pan, add 1 cup chopped onion, 1 cup chopped carrot, and ½ cup chopped celery. Season lightly with ½ tsp kosher salt, then cook, stirring occasionally, for about 7-9 minutes. The vegetables should soften without taking on any brown color, so adjust the heat as needed. Add 4 cloves chopped garlic and 2 Tbsp tomato paste, then use a spatula to help break up and dissolve the tomato paste.
Add liquid. Raise the heat to medium-high, then pour in 2 cups (475ml) of red wine. Use the spatula to scrape any browned bits off the bottom of the pan. Allow the wine to reduce by ⅓, simmering for 2-3 minutes. Add 3 cups (700ml) low-sodium chicken stock and 28oz canned crushed tomatoes, then stir well.
Flavor the sauce. Bundle 10 sprigs of thyme and 5 sprigs of rosemary together, then tie tightly with kitchen twine. Add this to the sauce along with 2 dried bay leaves and ½ tsp ground cinnamon. Stir well.
Braise the duck legs. Return the duck legs to the sauce (along with any juices), nestling them in so they’re mostly submerged. Cover with a lid, then transfer to the preheated oven. Cook for 2 hours, until the duck is tender and easily pulls away from the bone.
Shred the meat. Carefully transfer the duck legs to a cutting board and allow to cool slightly. When you can handle the meat, pull off the duck skin and discard, then shred the meat with your hands or two forks.
For a chunkier ragu: Discard the herb bundle and the 2 bay leaves. Stir in 1 Tbsp red wine vinegar, then return the pulled duck meat to the pot. Taste and adjust seasoning as needed.
For a smooth sauce: Strain the sauce over a large bowl, then discard the veggies and herbs. Stir in 1 Tbsp red wine vinegar, then return the pulled duck meat to the pot. Taste and adjust seasoning as needed.
Cook the spaetzle. Bring a large pot of water to a rapid boil, then season generously with a few tablespoons of kosher salt. Add the spaetzle and cook according to package instructions for al dente (or 1-2 minutes less than the full cook time). Before draining, reserve 1 cup of cooking water.
Finish in the sauce. If using all of the duck ragu at once, you can add the cooked spaetzle directly to the pot then cook over medium heat, stirring as needed for about 2 minutes. Add a splash of cooking water to help thicken the sauce. If you’re not using all of the ragu immediately, transfer as much as you want for today to a large skillet, heat over medium-high, then add the spaetzle and cooking liquid, following the same instructions as above.
Serve! Divide evenly between bowls. Drizzle with a little extra virgin olive oil, then sprinkle with grated Parmesan, a few thyme leaves, and flaky sea salt. Enjoy!