If using the optional eggplant and zucchini (if not, skip this step), start by heating 1 tablespoon of olive oil in a large sauté pan over medium heat. Add the eggplant and a pinch of salt and pepper and cook until the eggplant is slightly browned and just softened, about 3 to 4 minutes (add a little drizzle of extra olive oil if needed). Remove from the pan and set aside. Repeat the same process for the zucchini, which may take a few minutes more to soften, which is why we cook it separately. Set the zucchini aside as well.
Still over medium heat, add 2 tablespoons of olive oil to the pan, and fry the garlic and shallot, stirring often until lightly browned and fragrant, 3-4 minutes. Add the bell pepper, and cook for another 2-3 minutes.
Increase the heat to medium-high. Stir in the fresh tomatoes and cook for 10 minutes, stirring as needed, until the tomatoes have broken down. During this time, add the fresh thyme sprigs, paprika, cumin powder, chili powder, and 1 teaspoon salt (or salt to taste). Also add the cooked eggplant and zucchini.
Once the tomatoes have cooked down to a sauce consistency, use a spoon to create 6 small evenly-spaced wells in the pan and carefully crack the eggs into each well. If you have a request for a well done egg, add that egg first, and wait 30 to 45 seconds before adding the others. You can move the sauce around the eggs to let them sink down a bit if needed. If using, distribute the cheese cubes around the pan, pressing them into the sauce.
Let the eggs cook for 4-6 minutes, depending how you like them done. Cover the pan with a lid to cook the egg whites more thoroughly or just to speed things up, but watch them carefully to avoid overcooking! Garnish with fresh parsley and serve immediately.