btw I don't know how easy it can be to handle multiple push-button using sw debouncing.
Software de-bouncing is easy.
If switch is active low.
Look for first low.
Then starting looking for a high every 1ms.
Once its high for 20 cycles assume switch no longer pressed.
Been doing it that way for 40 years !