Prep the potatoes. Dice the potatoes into small, even cubes so they cook quickly and crisp well.
Rinse in cold water and pat dry thoroughly to remove excess starch and moisture.
Start the potatoes. Heat 2 tablespoons of oil in a large nonstick or cast-iron skillet over medium-high heat. Add the potatoes in a single layer with a pinch of salt. Don’t stir too much at first—let them sear for 3–4 minutes.
Add aromatics. Stir in the diced onion and cook 6–8 minutes, stirring occasionally, until the potatoes are golden and the onion is soft.
Add minced garlic during the last minute so it doesn’t burn.
Season the skillet. Sprinkle in cumin, smoked paprika, black pepper, and another pinch of salt. Toss to coat. If the pan looks dry, add a drizzle more oil.
Cook until potatoes are tender when pierced with a fork.
Whisk the eggs. In a bowl, whisk eggs with a pinch of salt and pepper until well combined and slightly frothy. This helps them cook fluffy.
Scramble gently. Push the potato mixture to one side of the pan or transfer to a plate. Add butter to the empty side or a clean skillet over medium-low heat.
Pour in eggs and stir slowly with a spatula, nudging them into soft curds. Cook just until set but still glossy.
Combine or keep separate. For classic breakfast tacos, layer eggs and potatoes separately in the tortillas. If you prefer a combined filling, fold the potatoes into the eggs gently.
Taste and adjust salt.
Warm the tortillas. Heat tortillas directly over a gas flame for 10–20 seconds per side, or in a dry skillet until pliable and lightly charred. Wrap in a clean towel to keep warm.
Assemble the tacos. Fill each tortilla with potatoes and eggs. Top with cilantro, a spoonful of salsa, a squeeze of lime, and cheese if using.
Add jalapeños for extra heat.
Serve immediately. Breakfast tacos are best hot and fresh. Put extra salsa and lime on the table so everyone can customize.