1. Bring a saucepan of water to the boil, carefully add eggs and cook for 6 minutes 30 seconds for soft-boiled. Remove immediately and transfer to a bowl of iced water. When cool enough to handle, peel and chop.
2. Cook pasta in a large saucepan of boiling, salted water according to packet instructions. Drain, reserving 1/4 cup (60ml) pasta cooking water.
3. Heat oil in a heavy-based saucepan over medium heat. Add onion and garlic, and cook, stirring occasionally, for 7 minutes or until softened but not coloured. Add stock, increase heat to high and bring to the boil. Cook, stirring occasionally, for 5 minutes or until reduced by two-thirds. Stir through ham and butter, and bring back to the boil for 30 seconds or until ham is warmed through. Remove from heat and gently fold through the pasta, reserved pasta water, parmesan eggs and some of the parsley. Serve immediately scattered with remaining parsley.