Preheat your oven to 200c/180 fan. Put your asparagus into a roasting tin with a drizzle of olive oil, salt, and pepper. Roast for 10-12 minutes until tender.
Reserve a few pieces of asparagus per person for serving and add the rest of the asparagus in the food processor along with the garlic, almonds, parmesan, lemon juice, 3 tbsp of olive oil, and a couple of grinds of fresh black pepper. Blend the mixture, scraping down the sides as needed, until a pesto forms. Add more olive oil as needed for your desired consistency and add more salt and pepper to taste.
Cook your pasta in salted water to pack instructions for al dente, roughly 10-12 minutes.
When there is about five minutes left on your pasta cooking time, make your cream sauce. Melt the butter in a small pan over low heat and add the garlic, cooking for a minute until fragrant.
Add the cream to the butter along with a few grinds of fresh black pepper. Stir the mixture and let it heat through for 2-3 minutes before adding the parmesan. Stir until the mixture combines and creates a thick sauce. Season to taste and add the sauce to a pot with the drained bucatini, coating the pasta in the sauce.
To plate your dish, divided the pesto between two bowls and spread it across the bottom. Use tongs to place half of the bucatini in each bowl. Place your reserved asparagus pieces on top, along with some extra shaved parmesan, fresh black pepper, and lemon zest.