Geboren in Fier, speelde Roshi vanaf 1998 in de jeugdopleiding van Apolonia Fier. Acht jaar later brak de aanvaller ook door bij die club. In 2009 verkaste hij naar competitiegenoot Flamurtari Vlorë. Anderhalf jaar later was hij op de radar verschenen van 1. FC Köln, dat hem naar Duitsland haalde. Na een verhuurbeurt aan diezelfde club, besloot FSV Frankfurt hem over te nemen in de zomer van 2013. In de zomer van 2015 vertrok de Albanees naar de Kroatische topclub HNK Rijeka. Roshi maakte in 2016 de overstap naar Achmat Grozny en bij de Russische club zette de vleugelspeler zijn handtekening onder een driejarige verbintenis.[1] In februari 2021 huurde Diósgyőr hem voor het restant van het seizoen.[2] Na deze verhuurperiode stapte Roshi transfervrij over naar Boluspor.[3] Een jaar later ging hij met Sakaryaspor naar zijn tweede Turkse club.[4] Medio 2024 tekende hij voor Erzurumspor.[5]
Roshi maakte zijn debuut in het Albanees voetbalelftal op 7 oktober 2011, toen er met 3–0 verloren werd van Frankrijk door doelpunten van Florent Malouda, Loïc Rémy en Anthony Réveillère. Van bondscoach Josip Kuže mocht de aanvaller in de basis beginnen en hij speelde het gehele duel mee. De andere debutant in dit duel was Sabien Lilaj (Lokomotiva Zagreb).[6] Op 16 oktober 2012 maakte hij zijn eerste interlanddoelpunt tegen Slovenië; hij was de enige doelpuntenmaker.[7] In juni 2016 nam Roshi met Albanië deel aan het Europees kampioenschap voetbal 2016 in Frankrijk, het eerste interlandtoernooi waarvoor het land zich plaatste. Albanië werd in de groepsfase uitgeschakeld na een overwinning op Roemenië (1–0) en nederlagen tegen Zwitserland (0–1) en Frankrijk (0–2).