In a large bowl, mix the self-raising flour, semolina, baking powder, bicarbonate of soda, and cardamom powder.
Rub in the softened butter until the mixture resembles fine breadcrumbs.
Mix in the condensed milk to form a soft, pliable dough.
Grease hands with a little butter (if needed) and shape dough into smooth, elongated ovals without cracks.
Prepare the Sugar Syrup: Combine sugar, water, and cardamom pods in a saucepan. Heat gently until sugar dissolves, then simmer until slightly thickened and coats the back of a spoon. Add food coloring if desired. Keep warm on very low heat.Tip: Avoid stirring once boiling to prevent crystallization. Heat oil/ghee over medium-low heat. Fry the shaped gulab jamuns slowly, turning occasionally, until golden brown.
Transfer fried gulab jamuns immediately into the warm syrup. Soak for about 2 minutes, or longer for sweeter, more syrupy gulab jamuns.
Remove from syrup, let excess drip off, and roll in desiccated coconut.