Warm 1 tablespoon (14 g) of the butter and the oil in a large nonstick or well-seasoned cast-iron skillet over medium heat. Add the onion and cabbage with a pinch of the salt. Cook, stirring often, until the onion is soft and the cabbage has wilted and is beginning to turn golden, about 6 to 8 minutes.
Transfer the cabbage mixture to a large bowl. Add the cold cooked potatoes, beaten egg, remaining salt, pepper, and optional herbs. Gently mix until the potatoes are combined but still have some texture.
Wipe out the skillet if needed and melt the remaining 1 tablespoon (14 g) butter over medium heat. Add the potato mixture and press it into an even, compact round about 1 inch (2.5 cm) thick. Cook without stirring until the underside is deeply golden and crisp, about 6 to 8 minutes.
Place a large plate over the skillet and carefully invert the bubble and squeak onto the plate. Slide it back into the skillet to cook the second side until golden and hot throughout, about 5 to 6 minutes. If the mixture seems fragile, divide it into smaller patties before frying instead of making one large cake.
Cut into wedges and serve hot, with optional fried or poached eggs. Season with more salt and pepper to taste.