Prep the chicken: Pat the chicken dry and cut into 1-inch pieces. Dry chicken browns better and stays crisp.
Marinate briefly: In a bowl, combine soy sauce, mirin, sesame oil, garlic, ginger, salt, and pepper. Toss the chicken and let sit 10–15 minutes while you prepare the coating and sauce.
Mix the coating: In a shallow bowl, stir potato starch, baking powder, and a pinch of salt.
The baking powder helps form tiny bubbles for extra crunch.
Coat the chicken: Working in batches, dredge marinated pieces in the starch mixture. Press lightly so the starch clings. Shake off excess; the coating should look thin and powdery, not clumpy.
Heat the oil: Pour 1.5–2 inches of oil into a deep skillet or pot.
Heat to 325–340°F (165–170°C). If you don’t have a thermometer, a pinch of starch should sizzle gently on contact.
First fry (cook through): Fry chicken in batches without crowding, about 3–4 minutes per batch, until pale golden and just cooked. Transfer to a rack or paper towel.
Let the oil return to temperature between batches.
Make the sauce: In a small saucepan, combine gochujang, ketchup, soy sauce, honey, rice vinegar, garlic, ginger, and gochugaru if using. Simmer on low 2–3 minutes until glossy. If too thick, add 1 tablespoon water.
Keep warm.
Second fry (crisp up): Increase oil to 360–375°F (182–190°C). Fry chicken again for 1–2 minutes until deep golden and ultra-crisp. Drain on a rack.
Sauce and toss: Add chicken to a large bowl.
Spoon in just enough sauce to coat lightly—start with half and add more to taste. You want a sheen, not a heavy glaze.
Finish and serve: Sprinkle with sesame seeds and scallions. Serve hot on its own, or over rice with quick pickles to cut the richness.