Prep the ingredients. Dice the ham and potatoes into small, even cubes (about 1/2 inch). Chop the onion, mince the garlic, and set peas out to thaw slightly.
Start the potatoes. Heat 2 tablespoons olive oil in a large skillet over medium heat.
Add potatoes and a pinch of salt. Cook, stirring occasionally, until golden on the edges and tender inside, about 10–12 minutes. If the pan looks dry, add another drizzle of oil.
Add the aromatics. Stir in onion and cook until translucent and lightly browned, 3–4 minutes.
Add garlic and cook 30 seconds, just until fragrant.
Season and sizzle. Sprinkle in smoked paprika and thyme. Toss to coat the potatoes and onion so the spices bloom in the hot oil.
Fold in the ham. Add diced ham and the butter (if using). Cook 3–4 minutes to warm through and get a few crispy bits on the ham.
Finish with peas and lemon. Add peas and cook 1–2 minutes until bright and hot.
Grate in about 1/2 teaspoon lemon zest and squeeze over 1–2 teaspoons lemon juice. Taste and season with salt and pepper.
Top it off (optional). For extra comfort, fry a couple of eggs in a separate small pan and slide them on top, or sprinkle cheese over the skillet and let it melt off the heat.
Garnish and serve. Scatter with chopped parsley. Serve straight from the skillet while it’s hot and crisp.