Bring a large pot of water to a boil, add 2 tablespoons of salt and the potatoes, bring to a boil and cook, until just tender, about 8 minutes. Drain well in a colander.
Heat 1 tablespoon of oil in a large cast iron skillet over medium heat until it begins to shimmer, add the onion and cook, stirring a few times, until soft and lightly golden brown, about 5 minutes. Remove the onions to a plate.
Add the remaining oil and the butter to the pan, increase the heat to high and heat until the butter has melted and the oil is sizzling. Add the potatoes and chile powder and season with salt and pepper and immediately press down into an even layer on the bottom on the pan, using a wide metal spatula. Cook, pressing down occasionally and not turning, until the potatoes on the bottom are golden brown and crusty, about 5 minutes. Turn the potatoes over, press down again and cook until the potatoes on the bottom are golden brown, about 5 minutes longer. Stir in the onions, season with more salt and pepper, transfer to a shallow bowl or a platter and garnish with green onion and cilantro.