In a large mixing bowl add all the ingredients mentioned for Thai meatballs. Mix just until incorporated. Take 1 - 1.5 tablespoons mixture in hand, gently roll in between palms into smooth balls. To prevent sticking the mixture, lightly wet your hand before shaping.
Heat 2-3 tablespoons of oil in a large skillet. Place the shaped meatballs in a single layer, placed a little apart. Let it cook undisturbed on low-medium heat for about 2-3 minutes. Flip and cook the rest of the sides for 1-minutes each. Meatballs should look light golden brown in color and firm. It's ok if it is a little undercooked in the center, as the meatballs will cook further while resting.
Keep the meatballs covered while resting to prevent from drying.
In the same skillet, heat 2 tablespoon oil. Cook shallots, minced ginger, and garlic for about 2 minutes.
To the above onion, ginger and garlic mix, add red curry paste and curry powder. saute for a minute.
Lower heat. Add grated lemon grass, coconut milk, brown sugar, salt, and fish sauce. Bring the coconut curry sauce to a simmer for 6-7 minutes.
Add fresh lemon juice, chopped cilantro, red Thai chili if using. Stir everything and check for seasoning.
Add in the cooked meatballs , pour over the coconut curry sauce and cook for 4-5 minutes on low heat.
Take off the heat and serve over rice.