Shred the potatoes. Use the large holes of a box grater or a food processor with the shredding disk to grate the peeled potatoes into a large bowl.
Rinse out the starch. Cover the shredded potatoes with cold water; swirl and soak 2–3 minutes until the water turns cloudy. Drain and repeat with fresh cold water until the water runs mostly clear. This removes excess starch for maximum crispiness.
Dry thoroughly — this is the most important step. Transfer the rinsed shreds to a clean kitchen towel or several layers of paper towels. Squeeze and wring out as much moisture as possible. The drier the potato, the crispier the result. Any remaining water will steam the potatoes instead of frying them.
Season. Transfer dry potato shreds to a clean bowl. Season with salt, pepper, and any optional spices (onion powder, garlic powder, paprika). Toss to coat evenly.
Heat the skillet. Heat a large nonstick skillet or cast iron pan over medium-high heat. Add the oil and butter together. The oil prevents the butter from burning; the butter adds rich flavor. The pan is ready when the butter foams and sizzles immediately.
Add the potatoes. Spread the shredded potatoes in a single, even layer about ⅓–½ inch thick. Press down firmly with a spatula for maximum surface contact with the pan. Do not overcrowd — cook in batches if needed.
Don't touch them. Cook undisturbed on medium heat for 5–6 minutes until the bottom is deep golden brown and releases easily from the pan. Resist moving or stirring — this is how the crust forms.
Flip. Slide a thin spatula under the hash browns and flip in one confident motion. If they don't flip as one piece, cut into halves or quarters with a spatula and flip each section. Season the second side with salt and pepper.
Finish the second side. Cook another 5–6 minutes until the second side is equally golden and crispy.
Serve immediately for the crispiest texture. Keep a first batch warm on a baking sheet in a 200°F oven while cooking additional batches.