Bring a large pot of salted water to a boil. Prepare a large bowl of ice water on the side. Once the water comes to a boil, add half of your asparagus and cook for approximately 4 minutes. (I like my asparagus still very green and crunchy so I try to cook it as little as possible). Remove from the boiling water and transfer immediately to the ice water to stop the cooking. Repeat with the remaining asparagus. After a few minutes, remove the asparagus from the ice water and drain on a paper towel-lined plate.
Fill a wide, shallow pan with a few inches of water and bring to a slow simmer. Reduce the heat to low, so that the bubbles barely break the surface and carefully crack the eggs, one at a time, into the water. Using a spoon, gently agitate the water, making sure the eggs do not stick to the bottom of the pan. Cook for about 3 – 5 minutes, or until the whites of the eggs are set and the yolks are cooked to your liking. Using a slotted spoon, carefully remove each egg and set on a paper towel-lined plate to drain.
In a large skillet warm the butter. Toss your asparagus in the skillet until nicely coated and warmed. Divide between 4 plates and top each with an egg. Grate some parmesan on top and finish off with a sprinkling of salt and pepper and a drizzle of olive oil, if desired.