Cook and drain the pasta according to the package instructions. Reserve one cup of pasta water.
Cook bacon in a large skillet over medium-high heat until almost crispy. Add the diced ham and cook until it begins to crisp. Use a slotted spoon and remove ham and bacon from the skillet. Set aside.
Keep the bacon and ham fat in the skillet and add olive oil. Add onions into the skillet, stir occasionally, cover with a lid and sauté for 15 minutes on medium-low heat. The onions should be soft and brown.
Add the cabbage and sauté until it wilts about 5-8 minutes.
Add bacon, ham, parmesan cheese, and egg noodles. Toss over medium heat for one minute. If the pasta looks too dry, add a small amount of reserved pasta water. Serve and enjoy.