Preheat oven to 180°C/350°F and line with parchment paper a baking tray. Add the hazelnuts and roast for 15 minutes or until golden. Remove from the oven, chop them finely with a sharp knife and set them aside until needed.
For the Parmigiano Reggiano white sauce, melt the butter in a saucepan over medium-low heat. Sprinkle the plain flour over the butter to make a “roux”, which is basically the base of the sauce.
Once you have cooked the roux for a minute (don’t let it brown), slowly stir in the warmed milk, and stir, gently but continuously, until the sauce thickens, about 5-7 minutes.
If the sauce starts bubbling, turn the heat to low and continue to stir until the sauce has reached a silky creamy consistency.
Turn the heat off, whisk in the parmesan cheese, and set the sauce aside.
Place a large pot of water over high heat and bring to a boil. Lightly season with sea salt, then add the pasta and cook for about 7-9 minutes.
Look at the instructions on your pasta packaging. See how long it tells you to boil it for, and drain the pasta three minutes before this time to have it al dente.
In the meantime, prepare the mushrooms. Heat the butter in large pan over medium-low heat, add the mushroom, shallot and thyme, and sauté for 10 minutes or until cooked through, adding a splash of pasta water (or white wine) if necessary, then season with sea salt and black pepper to taste, and discard the thyme sprigs.
Drain the pasta al dente, add it to the pan with the mushrooms and sauté all the ingredients for one more minute.
Remove the pan from the heat, stir in the Parmigiano Reggiano sauce, chopped roasted hazelnuts and freshly-chopped parsley.
Season with freshly cracked black pepper and serve immediately.