Place eggs in a small saucepan and fill with cold tap water so that the water level is about 1 inch higher than the tops of the eggs. Remove eggs and set aside.
Bring water to boil over high heat. Using a slotted spoon, gently lower the eggs into the water and boil for exactly 8 minutes.
While the eggs are boiling, prepare an ice bath with water and at least 1 cup of ice and set next to the stove.
When the eggs are ready, remove them with the slotted spoon, quickly but one at a time and place gently into the ice bath. Let the eggs cool in the ice bath for at least 5 minutes.
While the eggs are cooling, toss together the spinach, onion and tomatoes in a large bowl.
In a small bowl, stir together the garlic, dijon mustard and lemon until well blended. Pour the olive oil over the mixture in a steady stream, whisking rapidly until a shimmering dressing comes together.
Toss the dressing with the spinach salad.
Remove the eggs from the ice bath and spread out two layers of paper towels. Crack the eggs all over on a hard surface until the shell begins to separate on its own from the eggs. Remove the shells and blot the eggs dry on the paper towels.
Slice the eggs in half lengthwise and place on top of the salad. Serve immediately.