Blanch the asparagus in a saucepan of salted boiling water for 2 minutes. Drain and refresh under cold water. Drain again, pat dry and toss in a little oil to coat.
Cook the asparagus in a preheated griddle pan or on a preheated barbecue for 2–3 minutes on each side until tender but still with a bite. Set aside to cool slightly.
Pour enough oil into a large frying pan to coat the base generously and heat until almost smoking. Crack each egg into a cup and carefully slide into the pan (watch out as the oil will splutter). Once the edges of the eggs have bubbled up and browned, reduce the heat to low, cover and cook for a further 1 minute. Remove from the pan with a slotted spoon and drain on kitchen paper. The yolks should have formed a skin, but should remain runny underneath.
Divide the asparagus between 4 warmed plates and top each pile with an egg. Scatter with pepper and Parmesan shavings. Serve with a little pot of salt for the eggs.