01 - Bring a large pot of salted water to a boil. Cook penne pasta according to package directions until al dente. Drain and set aside, reserving 1/2 cup pasta cooking water.
02 - Heat olive oil and butter in a large skillet over medium heat. Add chopped onion and sauté for 2 minutes until softened. Add garlic and cook 1 minute more until fragrant.
03 - Cut salmon into bite-sized pieces and season with salt and pepper. Add to skillet and sauté gently until just cooked through, about 3-4 minutes. Remove salmon to a plate.
04 - Pour heavy cream into skillet and bring to a gentle simmer. Stir in Parmesan, lemon zest, and juice. Season with salt and pepper to taste.
05 - Add drained penne and baby spinach if using to the sauce. Toss well, adding reserved pasta water as needed to achieve silky consistency.
06 - Return salmon to skillet and gently fold to combine. Remove from heat. Sprinkle with chopped dill or parsley and serve immediately.