Put the eggs in a pan over a medium heat and cover with cold water. As soon as the water boils, take the pan off the heat. Cover and set aside for 7 mins. Drain and plunge the eggs into ice cold water. When cool, carefully peel the eggs and set aside.
Cut a cross in the bottom of each tomato. Place in a bowl. Cover with boiling water. Leave for 1 min, then drain. When cool enough to handle, peel off and discard the skins. Halve the chilli, flicking out the seeds for less heat.
Peel and roughly chop 2 of the shallots and the ginger and garlic. Chuck into a food processor with the tomatoes and chilli. Blitz to a smooth paste – this is your sambal. No food processor? Just use a sharp knife to finely chop everything.
In a dry frying pan or wok, toast 2 tsp of the cumin and 1 tsp of the coriander seeds for 1-2 mins till fragrant and popping. Tip onto a plate. Warm ½ tbsp oil in the same pan. Tip in the sambal. Cook and stir for 5 mins till the colour begins to darken.
Add the toasted spices, 1 tsp of the turmeric and the lime leaves. Pour in the coconut milk. Fill the tin with water and pour into the pan. Add ½ tbsp of the sugar. Simmer for 20 mins on a low heat till the sauce is thick.
While the curry is cooking, rinse the rice. Tip it into a pan with 350ml boiling water. Add a pinch of salt. Cover and bring to the boil. Turn the heat right down and simmer for 6 mins. Take off the heat. Set aside, lid on, for 4-5 mins to finish cooking the rice.
Peel and thinly slice the remaining shallots. Heat 1 tbsp oil in a small frying pan. Fry the shallots for 3-4 mins, stirring constantly, till the shallots are golden and crisp.
Once the sambal sauce is thick, taste and add more salt, pepper or sugar if you think it needs it. Lower in the eggs. Simmer for 5 mins to warm through. Serve with the rice and crispy shallots.