For the pickled shallots:
2 shallots, very thinly sliced
2 teaspoons sugar
1 teaspoon salt
3 tablespoons vinegar, such as white wine vinegar
1 teaspoon ground black pepper
For the spice blend:
1½ tablespoons ground cumin (1½ palmfuls)
1 tablespoon ground coriander
1 teaspoon ground caraway
1½ teaspoons ground turmeric or 1 inch fresh, minced (if using fresh, add with ginger rather than in spice blend)
1 teaspoon ground cardamom
For the curry:
1½ pounds flank steak, halved lengthwise and thinly sliced, or boneless, skinless chicken, thinly sliced
Salt and ground black pepper
3 to 4 tablespoons neutral oil, such as peanut or safflower
5 to 6 spring/young leeks (about 1 bunch), halved and sliced on bias
4 cloves garlic, sliced, plus 2 cloves, crushed, for rice
1 inch fresh turmeric, minced (if not using dried in the spice blend)
2 inches ginger, sliced into planks, then thinly sliced or chopped, plus an extra slice for rice
1 large fresh bay leaf
A handful of curry leaves (optional)
1½ pounds diced tomatoes or green tomatoes
Wedges of lime, to serve
For the pickled shallots, combine shallots, sugar, salt, vinegar and pepper in small bowl and let stand 30 minutes.
For the spice blend, combine ground spices together. If you want to use whole seeds, toast and grind seeds before combining.
For the curry, season meat with salt and pepper and half of the spice blend.
Heat a large nonstick or cast-iron skillet over medium-high to high heat with half of the oil, add and brown beef or chicken in 2 batches and remove to platter. Reduce heat a bit, add more oil and leeks, sliced garlic, fresh turmeric (if using), sliced or chopped ginger, bay leaf, curry leaves, the remaining spice blend, salt and tomatoes. Cook 5 minutes, add beef or chicken back and adjust salt. Remove bay leaf.
Cook rice to package directions with crushed garlic and ginger slice in salted water. Remove garlic and ginger after rice is cooked.
Serve beef or chicken alongside rice, top with pickled onions, and pass wedges of lime.