just curious to know if debouncing is a solid solution or if i should expect error.
Yes when it is right it is a solid solution. Contact bounce is a physical phenomenon, you remove it by in effect blanking out the switch for a period of time after a transition. As you have seen this can be done in hardware or software or a mixture of both.
The trick is to blank out the switch for just long enough to cover the bounce, any longer and the switch will not respond as fast any shorter and you risk getting the occasional bounce through.