Par-cook the potatoes (optional but recommended): Place the cubed potatoes in a pot of cold, salted water. Bring to a simmer and cook 5–7 minutes until just tender but not falling apart.
Drain well and let them steam off to dry. This step helps you get crispy edges faster.
Heat the pan: Set a large cast-iron or heavy skillet over medium-high heat. Add 2 tablespoons of oil and the butter.
When hot and shimmering, add the potatoes in an even layer. Don’t crowd the pan.
Brown the potatoes: Let the potatoes cook undisturbed for 4–5 minutes to develop a crust. Flip and continue cooking, stirring occasionally, for another 6–8 minutes until deeply golden and crisp.
Season with salt, pepper, and half the smoked paprika.
Sauté the aromatics: Push the potatoes to one side of the skillet. Add the remaining tablespoon of oil to the empty space. Add the onion and bell pepper with a pinch of salt.
Cook 3–4 minutes, stirring, until softened and lightly browned.
Add garlic and spices: Stir in garlic, dried thyme (or oregano), the rest of the smoked paprika, and red pepper flakes if using. Cook 30–60 seconds until fragrant. Fold everything together so the potatoes and veggies are evenly mixed.
Optional proteins: If using sausage, bacon, or chorizo, cook it in a separate pan until done, then stir it into the hash now.
For spinach, toss it in and cook just until wilted.
Create wells and add eggs: Use a spoon to make 4 small wells in the hash. Crack an egg into each well. Season the eggs with a pinch of salt and pepper.
Cook the eggs: Reduce heat to medium-low.
Cover the skillet with a lid and cook 3–5 minutes, until the whites are set and the yolks are done to your liking. For runny yolks, watch closely. For firmer yolks, go a minute or two longer.
Finish and serve: Sprinkle with chopped parsley or chives.
Add cheese if you like, letting it melt over the hot hash. Serve straight from the skillet while it’s hot and crisp.