In a medium nonstick skillet, heat the oil over medium. Add the onion and garlic; cook, stirring occasionally, until onions and garlic start to soften, 2 to 3 minutes. Stir in the peppers and cook until crisp-tender, 4 to 5 minutes. Remove from the heat and stir in the ham; transfer the mixture to a bowl. Wipe out the skillet.
In a medium bowl, whisk the egg yolks, 1/2 tsp. salt and 1/4 tsp. pepper until pale yellow. In a large bowl, using an electric mixer, beat the egg whites until stiff but not dry. Add the yolk mixture to the beaten egg whites and gently fold until the mixture is just combined.
Heat the skillet over medium. Add a quarter of the egg, smooth the top and cook until the bottom is golden brown and the top just begins to bubble, about 3 minutes. Using a large spatula, flip the omelet over and top with a quarter of the cheese and a quarter of the ham mixture. Cook until cheese melts, about minute. Fold the omelet in half, enclosing the filling, and slide onto a plate. Repeat with the remaining eggs and fillings.