Cut the tofu into 1-inch squares and drain on a plate between 2 kitchen towels for 30 minutes.
Bring a large pot of salted water to a boil over high heat (4 quarts water + 2 teaspoons salt).
Trim the ends of the bok choy, (discard) chop the white parts and roughly chop the green parts, set aside. Trim the ends ofd the green onions (discard), slice the white parts in half lengthwise and then chop all the green onions in 3-inch pieces, set aside.
Fill a large frying pan with oil (1/2 -inch deep) and heat on high. When the oil is thoroughly heated (sizzles when the tofu is dropped in) place all the tofu in and fry until golden browned on the bottom (about 10 minutes) flip over and fry the other side until golden brown.
Remove the tofu from the pan onto a paper towel lined plate, reserve oil.
Add the shallots to the oil and fry until golden brown, stirring often, about 5 minutes. Remove shallots from the oil into a paper towel lined bowl and sprinkle immediately with ¼ tsp salt and ¼ tsp sugar, both optional, toss to coat.
Add the udon noodles to the boiling water and cook according to the package.
Heat the sesame oil in a separate large skillet (or the same one if you carefully discard the hot oil) set over medium-high. When the oil is hot, add the bok choy and green onions and cook until tender, about 4 minutes. Add the garlic and ginger and cook for another 1-2 minutes until fragrant. Add the red curry and yellow curry and stir for 30 seconds. Add the coconut milk and soy sauce, 1 teaspoon salt (to taste) and 1 teaspoon sugar, optional.
Whisk the sauce until fully combined with the curry paste. Bring to a boil over high heat, then turn the heat to low and simmer until slightly thickened, 3-5 minutes.
Drain the noodles and add them along with the tofu to the sauce, toss to coat. Serve topped with crispy shallots and extra green onions if desired.