Heat butter and olive oil in skillet over medium heat. Add potatoes and cook until edges are lightly browned. Resist the urge to stir them too often. They only need a stir about every four minutes or so.
Add the onions and cook until the edges are browned and the potatoes are all golden brown.
While the potatoes and onions are cooking combine eggs, egg whites, milk, salt, pepper and cheese in a medium bowl. Stir with whisk to combine.
Add spinach to skillet with potatoes and onions and cook just until wilted.
Pour egg mixture over. Top with bacon and bake for 15 minutes.