Add butter to large skillet and cook onions over medium heat for 3-5 minutes, adding salt and pepper to taste. Remove from pan and wipe it clean.
Add sausage to skillet and cook on medium high until brown, about 8 minutes. Remove from pan and add in potatoes. Reduce heat back to medium and cook for 5 minutes or so, flipping halfway. Add salt and pepper to taste.
In a large bowl whisk together eggs and milk. Add in more salt and pepper, as well as garlic powder and onion powder and whisk again to combine.
Grease a 9”x13” pan. Place hash browns on the bottom, followed by the onions, eggs, and sausage. Top with cheese and place in fridge for up to overnight if making ahead. If not bake uncovered for 30-35 minutes at 350˚F until cheese is melted.