Drain the soaked fava beans and rinse them well.
In a large pot, add the fava beans and enough water to cover them by about 2 inches.
Bring to a boil, then reduce the heat and simmer for about 1.5 to 2 hours, or until the beans are tender. Skim off any foam that forms on the surface.
In a skillet, heat the vegetable oil over medium heat.
Add the finely chopped onion and sauté until golden brown, about 5-7 minutes.
Add the minced garlic and cook for another minute until fragrant.
Stir in the ground cumin, ground coriander, ground turmeric, chili powder (if using), salt, and black pepper.
Add the chopped tomato and cook for about 5 minutes until the tomato softens and the spices are well combined.
Add the cooked fava beans to the skillet with the tomato and spice mixture. Mix well.
Use a masher or the back of a spoon to slightly mash some of the beans, leaving most of them whole.
Stir in the tahini (if using), lemon juice, chopped parsley, and chopped cilantro. Cook for another 5-10 minutes to let the flavors meld together.
Transfer the Shahan Ful to a serving dish.
Drizzle generously with extra virgin olive oil.
Top with chopped hard-boiled eggs and fresh green chilies, if desired.
Enjoy your meal!