Rinse the chicken and pat dry with paper towel. Cut each chicken thigh into 2 inch pieces (so that deep frying time is about the same). Season with salt and freshly ground black pepper. Put the chicken in a large bowl or Ziploc bag.

Grate the ginger and mince the garlic (with garlic presser).

Combine the chicken and all the seasonings in the bowl (or Ziploc bag). Cover with plastic wrap and rest in refrigerator for at least 1 hour.

Bring the oil to 320-338F (160-170C).

Meanwhile combine potato starch and flour, and whisk all together.

Right before the oil is ready, add the potato starch and flour mix to the chicken. You do not need to mix it evenly. The uneven coating gives each piece its unique texture.

Gently drop each piece of chicken separately into the oil. Do not overcrowd. Deep fry 3-5 pieces at a time. If you put a lot of chicken in the oil, the temperature will drop quickly and chicken will end up absorbing too much oil.

Cook for 90 seconds, or until the chicken is cooked through and outside is light golden color. If the chicken changes color too quickly, then the oil temperature is too high. Either put a few more pieces of chicken in the oil or lower the heat. Controlling oil temperature is the key for deep frying.

Transfer the chicken onto a wire rack to drain excess oil. While resting on the wire rack, the chicken will continue to cook with the remaining heat.

Between batches (or even while cooking), make sure to pick up crumbs to keep the oil clean (otherwise oil will get darker).

When you finish all the batches, then bring the oil to 356F (180C).

Deep fry for the second time for 45 seconds, or until the skin is nice golden color and crispy.