Add the milk, yeast and brown sugar into bowl of your stand mixer. Stir with your clean fingers until the sugar and yeast has dissolved. Let the mixture rest for 1 minute.
Using the dough hook, turn the mixer to low and slowly add two cups of flour and salt to the wet ingredients.
Slowly add the remaining flour until the dough has become smooth, the flour is incorporated and the dough pulls away from the sides. You may need to adjust the milk or flour to get the right consistency.
Slowly increase the speed of the mixer until you reach the high setting. Continue to knead the dough in the mixer on this speed for approximately five minutes.
Place the dough in a lightly oiled bowl. Cover with a damp towel and set in a warm place - I usually place rising bread in my oven, but be sure the oven is turned off! Allow the dough to rise for 45 minutes.
Preheat oven to 400 degrees.
Heat a large pot of water to a rolling boil and add the baking soda.
Lightly beat the egg and 1 tablespoon of water in a small bowl. Set aside.
Dump the dough on to your floured work surface and lightly pat it into the shape of a square. It should measure about 9” x 9” and be almost ¾” thick. Cut the dough into about 10 – 15 squares. If adding cheese, place a small cube of cheese in the center of each square and then shape the dough into a ball around the cheese. If you are not filling with cheese, just shape the dough into balls.
Cut a small “X” on the top of each ball.
Slowly drop the balls into the boiling water and cook for 1 minute. Flip and cook for an additional 1 minute. Remove from the water with a slotted spoon and place on a lightly greased cookie sheet about 1 inch apart. Make sure the “X” is facing up.
Brush the top of each ball with the egg mixture and sprinkle kosher salt over them.
Bake at 400 degrees for 10 – 12 minutes. The baking time varies based on the size of the dough balls and the length of the boiling time. The tops will be golden brown and the interior will be chewy.