Make the spice mix.
Combine and mix the coconut milk powder and almond flour with enough water to form a thin paste.
Heat your frying pan (don't use non-stick) briefly over medium heat. Add the oil.
When the oil starts to shimmer add the cinnamon and cardamom and cook until they start to crackle.
Now add garlic ginger paste and cook, stirring constantly, until it stops sputtering.
Turn down the heat and add the spice mix. This is the critical step. Stir it constantly for 30 seconds. If it starts to darken lift the pan off the heat. You want the spice mix to cook in the oil but not burn.
Turn the heat up to medium high. This is also really important. The heat is what caramelizes the onion in the curry base and gives the curry it's Indian restaurant flavour. As you become more comfortable with this technique try pushing it.
Add 3 oz of curry base. Stir until bubbles form (little craters really), around 30 seconds. Think lively boil. Watch the edges of the pan. The curry can stick here. Sticking is OK. Just scrape it back into the base. Burning is bad.
Now add 6 oz of curry base and stir briefly. Let it cook until the bubbles form again. This takes 1-2 minutes.
Add the rest of the curry base and let cook until the bubbles form.
Stir in the coconut/almond paste.
Turn the heat down to low and add the pre-cooked chicken.
Let the curry simmer for about 5 minutes. If it gets too thick add a bit more curry base. Don't add water.
Add the sugar. Taste and decide if you want it sweeter. Creep up on it. You can add sugar. You cannot take it away.
Add heavy cream to taste. None is a really good curry. 2 Tbsp is a creamy, kingly version. Decide what you are in the mood for. The cream does dull the flavours but it adds richness and tempers the heat.
Garnish with a bit of chopped fresh saffron if desired and serve with rice or Indian flatbread.