Tip the rice into a large bowl. Cover with cold water. Whisk for 1-2 mins till the water goes cloudy (this is the starch). Drain, rinse and tip into a small pan. Pour in 400ml boiling water. Add a pinch of salt. Cover and bring to the boil. Turn the heat right down. Gently simmer for 20-25 mins till the water is absorbed. Take off the heat and set aside, lid on, to finish cooking in the pan.
Warm 1 tsp oil in a frying pan. Add 3 tbsp of the breadcrumbs. Stir and fry for 1 min till golden. Scoop into a bowl and set aside.
Trim the roots off the salad onion and thinly slice it. Peel and crush or finely chop the garlic. Halve the chilli and flick out the seeds and white bits (or leave them in for more heat). Finely chop the chilli.
Put half the salad onion, garlic and chilli into a large bowl (keep the remaining salad onion, garlic and chilli for later). Add the remaining breadcrumbs and all the beef. Season with salt and pepper. Use your hands to mix it well, then shape into 10 meatballs. Chill in the fridge while you prepare the rest of the veg.
Peel and finely chop the onion. Pull the leaves from the parsley stalks and set aside. Finely chop the stalks. Peel and finely chop the ginger.
Put the frying pan back on the heat. Add 1 tbsp oil and the meatballs. Fry for 5 mins, turning once or twice, till they’re browned all over. Lift out of the pan and set aside on a plate.
Add another 2 tsp oil to the pan. Add the onion with the parsley stalks, ginger and the remaining spring onion, garlic and chilli. Season with salt and pepper. Cook gently for 5 mins till softened. Stir in 2 tsp each garam masala and mild curry powder.
Add the tomatoes and half a can of water (around 200ml). Add the meatballs back into the pan. Bring back to a simmer, then cover and cook for 10-12 mins till the meatballs are cooked through. Taste the sauce and add more salt and pepper if you think it needs it. Serve the meatballs with the rice, garnished with parsley leaves and the toasted breadcrumbs.