On a number of different moves black needed to try Kd7 to cut your rook off. I didn't like 14.Kxh5 but it's probably not bad. Playing Rc7 before a black Kd7 is a consideration.
f5 was terrible, checking your king and forcing it into his unprotected pawns was also silly :)
I think I would have gone for 7...Rb3+ and 8...Kf7. Chosing to give up the g pawn doomed the rest of his kingside pawns
Good job though, you turned a bad situation into a winning one :)

). Interesting that the ... f5+ is so unanimously disliked by us but not considered a blunder by the computer analysis.
This endgame is from a recent Live game of mine here at chess.com. According to the ~2500-rated computer analysis there are no mistakes, inaccuracies or blunders in the portion of the game shown here. There may be other moves that will win more quickly but I am pleased with this particular endgame not only because I (playing as White) won and because, as I said, there are no mistakes etc., but because, at the beginning of the problem here - according to the computer analysis - Black is better by ~0.8. I'm posting it as a problem although I don't really expect anyone to find all 22 moves. I've added remarks after a few of the moves. You can see them by clicking on "solution" and manually advancing.