Peel and finely chop onion and peel and crush garlic. Set aside.
Chop pistachios. Set aside.
Fill a large pot with water and bring to the boil.
In a bowl mix together with your hands: ground beef, rice, pistachios, egg, salt, coriander, cumin and chilli powder.
Use ice cream scoop or measuring spoon to evenly size meatballs and roll in your damp hands to get perfect little balls. (lay out on a lined baking sheet to avoid them sticking together or onto a plate).
Heat 1 tablespoon of butter in a large pan over medium heat and once very hot fry meatballs in batches (at least 3 batches, adding another tablespoon of butter for every batch). Lightly brown all sides for only about 30 seconds every side, do not cook through.
Lift out the ones that are lightly browned onto a paper towel lined plate.
Once all meatballs are finished, fry the set aside onion and garlic in the same pan until translucent.
Add tomato sauce and bring to the boil.
Once boiling reduce heat to simmer and carefully place meatballs in tomato sauce. Cover and let simmer for 15 minutes.
The water in the big pot should be boiling by now. Cook a pack of your favorite Spaghetti as instructed in the package.
Serve meatballs and tomato sauce over spaghetti, sprinkle parmesan and basil over it and accompany the dish with a green leafy salad.