Shred the potatoes and onion, using a food processor or hand grater. (This should yield about 6 cups of shredded potatoes and 1 cup of shredded onion.)
Rinse the potatoes in a colander in cold water to remove the starch (it’s okay if the onions get rinsed, too). Dry the potatoes thoroughly using two clean large dishtowels, one at a time, (or use paper towels), squeezing out the extra liquid into the sink, until the potatoes are quite dry.
Heat 2 large skillets, preferably cast iron or nonstick, over medium heat, and melt 3 Tbsp. butter or oil in each pan until the butter is bubbling or until the oil is shimmering.
Spread half of the potato-onion mixture in each pan, pressing them down with a spatula so they make good contact with the pan and spreading them as thinly as possible, and season them with half of the salt. Let the potatoes cook without moving them for 12 – 14 minutes until they are dark brown and crispy on the bottoms (check them sooner if your stove runs very hot), then flip them with a spatula (you can flip them in sections if they break or are unwieldy), press them flat, season them with more salt, and let them cook undisturbed for about 5 more minutes.
Using the spatula, start to break up the hash browns to make sure they are browning evenly. When they are getting nicely browned all over, combine all of the potatoes and onions in one of the pans and wipe the remaining bits out of the other pan.
Heat the remaining butter or oil over medium heat in the pan you wiped out, and when it is very hot, gently add the eggs and cook them for about 2 minutes until the whites turn opaque, then cover them, reduce the heat and let them cook for about 3 more minutes until they are cooked to desired doneness.
Serve the hash browns topped with the eggs and topped with salsa, ketchup, sriracha or other hot sauce, if desired.