Heat the oil in a large, non-stick pan over medium heat.
Dice the potatoes into 1/2" cubes, doing your best to get them all about the same size, and add them to the pan. Feel free make them larger or smaller if you prefer, just note that will slow down or speed up the cooking time accordingly. From this point forward, you'll need to stir or toss the contents of the pan every minute or two.
Once the potatoes are in the pan, coarsely dice the onion and cut the carrots into 1/4" coins.
After about 10 to 15 minutes, the potatoes will have softened up a bit and started browning (they shouldn't be fully cooked yet). Add the onion and carrot.
Quarter the mushrooms and, if including the bell pepper, seed and remove the pith and cut into approximately 3/4" squares.
Once the onions have softened (about 4 or 5 minutes), add the mushrooms and bell pepper, if using.
Sprinkle in the chili flakes, paprika, salt, and ground pepper. I find it's best to start with 1/2 teaspoon salt, stir, then taste to see if it needs more. That's also a good way to test the potatoes for doneness.
When the potatoes are just about done, fry two eggs in a skillet. You may want to lower the heat on the potatoes at this point, just to keep them warm.
While the eggs are cooking, cut the apple into 3/4" pieces. (I use an apple corer and divider to make quick work of it, and then discard the core and cut the wedges into triangles.)
Once everything is completely cooked, turn off the heat and stir in the apple. The goal is for the apple to warm up, but not become mushy.
Place the potatoes into two serving bowls, top each with shredded cheese and a fried egg, and serve immediately.