01 - Arrange bacon slices in a large skillet over medium heat. Cook until crisp, turning as necessary for even browning, for 8 to 10 minutes. Transfer to paper towels to drain and keep warm.
02 - Rinse grated potatoes in cold water to remove excess starch. Drain thoroughly, then squeeze out all excess moisture using a clean kitchen towel.
03 - Heat oil or butter in a large skillet over medium-high heat. Spread potatoes and optional onion in an even layer and press down gently. Cook undisturbed for 5 to 7 minutes until the underside is golden. Flip and cook an additional 5 to 6 minutes until crispy and cooked through. Season with salt and pepper.
04 - In a nonstick skillet, heat butter or oil over medium heat. Crack eggs into the skillet. For sunny-side up, cook uncovered without flipping for 3 to 4 minutes. For over-easy or over-medium, flip after 2 minutes and cook an additional 1 to 2 minutes. For scrambled, whisk eggs in a bowl, pour into skillet, and gently stir until just set. Season eggs as desired.
05 - Arrange eggs, bacon, and hash browns on individual plates. Serve immediately.