Ha ottenuto ottimi risultati tra gli juniores nei tornei di doppio, vincendo due titoli del Grande Slam e arrivando nel 2012 al 6º posto nel ranking mondiale di categoria; a 18 anni ha debuttato nella squadra portoghese di Coppa Davis. Non si è confermato ad alti livelli tra i professionisti, ha giocato in prevalenza nei circuiti ITF e Challenger e ha raggiunto come miglior ranking ATP il 168º posto in singolare nel maggio 2021.
Carriera Juniores Gioca i suoi primi tornei nell'ITF Junior Circuit nel 2009 e nel maggio 2010 vince il primo titolo in singolare e in doppio in un torneo di Grade 4 a Istanbul. Debutta in singolare in una prova juniores del grande Slam al torneo di Wimbledon 2011 e si spinge fino al terzo turno. Tra gli altri risultati di rilievo in singolare vi è la finale raggiunta nel Campionato europeo juniores 2012, un torneo di Grade B1.
Ottiene i suoi più grandi risultati tra gli juniores in doppio, dopo aver conquistato diversi titoli in tornei minori, il 1º gennaio 2012 vince il Grade A Abierto Juvenil Mexicano e raggiunge il 6º posto nel ranking mondiale di categoria. Nel settembre successivo trionfa agli US Open juniores in coppia con Kyle Edmund, diventando il primo portoghese ad aggiudicarsi una prova del Grande Slam. In dicembre vince di nuovo l'Abierto Juvenil Mexicano e nel giugno 2013, ancora in coppia con Edmund, trionfa anche al Roland Garros juniores. In settembre, al suo ultimo incontro da juniores, perde la finale di doppio degli US Open.
2010-2013, primi anni da professionista e primi titoli ITF Debutta tra i professionisti nel marzo 2010, non ancora quindicenne, raggiungendo la finale in doppio nel torneo ITF Futures Portugal F3. In maggio fa la sua prima esperienza in singolare nel circuito ATP e perde al primo turno delle qualificazioni all'Estoril. In ottobre entra nel tabellone principale di singolare al torneo ITF Futures Portugal F5 e viene sconfitto al primo turno. Nel marzo 2011, alla sua quarta apparizione tra i professionisti, vince il primo incontro in singolare al Portugal F2 e guadagna il primo punto del ranking di specialità. Nell'aprile 2013 gioca il suo primo incontro in un tabellone principale ATP nel torneo di doppio di Oeiras e viene eliminato al primo turno. Il mese dopo alza il suo primo trofeo da professionista vincendo in singolare il Futures Portugal F6. In luglio disputa per la prima volta un match nel tabellone principale di un torneo Challenger in doppio a Guimaraes e perde al primo turno. In agosto vince allo Spain F26 il suo primo titolo in doppio e ne vincerà altri 3 in doppio verso fine stagione, periodo in cui gioca solo nei tornei ITF.
2014-2015, esordio in Coppa Davis e primo titolo Challenger Nonostante non abbia ottenuto risultati di rilievo, il 2 febbraio 2014 viene fatto esordire in singolare in Coppa Davis in occasione della sfida persa contro la Slovenia, a risultato già acquisito, e si aggiudica il punto del 2-3 per ritiro dell'avversario. In settembre gioca il suo secondo incontro in Davis e perde contro Andrej Rublëv, di nuovo a risultato acquisito, nei playoff di Gruppo I in cui la Russia si impone sul Portogallo per 4-1. Durante il 2014 e il 2015 continua a giocare e a raccogliere alcuni successi nei tornei ITF, disputando alcuni rari tornei Challenger e ATP; nell'ottobre 2014 vince il suo terzo ITF in singolare ed entra per la prima volta nella top 300 del ranking. Nel marzo 2015 vince il suo primo incontro di Davis in doppio contribuendo al successo portoghese per 4-1 sul Marocco. In aprile debutta in singolare nel tabellone di un torneo ATP e perde al primo turno all'Estoril. Il primo successo in Davis in singolare arriva in luglio, viene di nuovo schierato a risultato acquisito e fissa il risultato finale sul 4-1 in favore dei portoghesi contro la Finlandia. Dopo diversi titoli ITF, il 4 ottobre vince in doppio insieme a Gastão Elias il suo primo torneo Challenger, sconfiggendo nella finale di Porto Alegre la coppia Cristian Garín / Juan Carlos Sáez per 6-2, 6-4.
2016-2018, primi incontri vinti nel circuito ATP, diversi infortuni Nel gennaio 2016 disputa al torneo Bangkok II la sua prima semifinale Challenger in singolare, persa contro Adam Pavlásek. Nel periodo successivo gioca più spesso ma senza particolare successo nei Challenger, riuscendo comunque a portare il suo best ranking in singolare al 231º posto in maggio. In aprile vince in doppio all'Estoril il suo primo incontro in un tabellone principale ATP, facendo coppia con il vecchio compagno da juniores Kyle Edmund. In giugno fa a Wimbledon la sua prima esperienza in una prova dello Slam, supera il primo turno di qualificazione in singolare e perde al secondo. Da fine agosto resta fermo quasi tre mesi, al rientro si trova oltre il 350º posto in singolare e deve tornare a giocare nei tornei ITF. Il primo risultato importante nel 2017 è il primo incontro vinto in un main draw ATP, in maggio di nuovo all'Estoril, superando il nº 77 ATP Denis Istomin, primo top 100 sconfitto in carriera. Il successo arriva però in un periodo contrassegnato da risultati deludenti e da alcune settimane in cui deve stare lontano dai campi per problemi ai polsi, e scende in classifica al 449º posto in singolare. Dopo il torneo disputato a metà giugno, smette di giocare in doppio e riprenderà due anni più tardi. Chiude la stagione in ottobre, si ripresenta nel circuito ITF nel febbraio 2018 e prima di fine anno conquista 5 titoli, riassestando la classifica e tornando a giocare nei Challenger. Rinvia l'inizio della stagione 2019 per la convalescenza che segue un'operazione all'anca a cui si sottopone in gennaio.
2019-2023, progressi in singolare, top 200 e discesa nel ranking Rientra a giocare nel marzo 2019 e in stagione disputa quasi esclusivamente tornei Challenger. Il miglior risultato del primo periodo sono i quarti di finale a Milano, dopo aver sconfitto il nº 106 ATP Pedro Sousa. In luglio raggiunge la semifinale al Prague Open. A partire da fine agosto partecipa a diversi Challenger in Estremo Oriente e ottiene buoni piazzamenti, tra cui altre semifinali a Baotou in agosto, a Kaohsiung in settembre e a Shenzhen in novembre. Dopo il torneo di Shenzhen entra per la prima volta tra i top 200, al 175º posto. Nel corso del 2019 riprende a giocare in doppio, ma disputa solo 2 tornei. Nel marzo 2020 torna dopo oltre 3 anni nella squadra portoghese di Davis e contribuisce al successo per 4-0 sulla Lituania battendo Laurynas Grigelis in singolare. Dopo la pausa del tennis mondiale per la pandemia di COVID-19, perde al terzo turno delle qualificazioni al Roland Garros. In novembre raggiunge per la prima volta la finale in un singolare Challenger a San Paolo del Brasile e viene sconfitto in due set da Felipe Meligeni Alves.
Nel febbraio 2021 gioca il suo primo incontro nel tabellone principale di uno Slam all'Australian Open e viene subito eliminato da Nick Kyrgios. Grazie a una serie di discreti piazzamenti nei Challenger, il 24 maggio migliora il best ranking in singolare salendo in 168ª posizione. Nel prosieguo della stagione non va mai oltre i quarti di finale nei tornei Challenger e a fine anno si trova al 240º posto. Si riprende nel febbraio 2022 con la semifinale raggiunta al Challenger di Forlì III. A fine anno perde due finali Challenger a Kobe e Yokkaichi contro Yosuke Watanuki, e nel giugno 2023 viene sconfitto in quella del Troisdorf Challenger da Ivan Gakhov.
Statistiche Aggiornate al 24 febbraio 2026. Tornei minori Singolare Vittorie (21) Legenda tornei minori Challenger (1) Futures/ITF (20) N.DataTorneoSuperficieAvversario in finalePunteggio 1. 19 maggio 2013 Portugal F6, Monfortinho Sintetico Iván Arenas-Gualda 6-4, 7-6(5) 2. 25 maggio 2014 Portugal F5, Pombal Cemento João Domingues 6-0, 6-3 3. 19 ottobre 2014 Portugal F10, Ponta Delgada Cemento Sam Barry 6-4, 6-3 4. 31 maggio 2015 Portugal F7, Idanha-a-Nova Cemento João Domingues 6-4, 6-2 5. 1° novembre 2015 Egypt F37, Sharm el-Sheikh Cemento Marko Tepavac 7-5, 6-3 6. 15 novembre 2015 Egypt F39, Sharm el-Sheikh Cemento Marko Tepavac 6-1, 6-2 7. 13 marzo 2016 Portugal F3, Loulé Cemento Rui Machado 1-6, 6-3, 6-1 8. 4 dicembre 2016 Turkey F48, Adalia Cemento Lorenzo Frigerio 6-2, 6-3 9. 14 maggio 2017 Ukraine F1, Čerkasy Terra rossa Artem Smyrnov 6-1, 6-2 10. 11 giugno 2017 Tunisia F22, Hammamet Terra rossa Fabiano De Paula 6-4, 6-4 11. 25 febbraio 2018 Portugal F1, Vale do Lobo Cemento Tiago Cação 6-2, 6(3)-7, 7-5 12. 11 marzo 2018 Portugal F3, Loulé Cemento David Vega Hernández 5-7, 6-1, 3-1, rit. 13. 22 aprile 2018 Portugal F8, Cascais Terra rossa Tiago Cação 6-2, 3-6, 6-3 14. 17 giugno 2018 Tunisia F23, Hammamet Terra rossa Oriol Roca Batalla 7-6(5), 6(7)-7, 7-5 15. 12 agosto 2018 Portugal F14, Sintra Cemento Tiago Cação 6-3, 6-1 16. 6 ottobre 2019 M25 Tavira, Tavira Cemento Alexandre Müller 6-2, 6-1 17. 21 luglio 2024 M25 Castelo Branco, Castelo Branco Cemento Michael Geerts 3-6, 6-4, 6-2 18. 20 ottobre 2024 M25 Sintra, Sintra Cemento Gauthier Onclin 7-5, 6-4 19. 17 novembre 2024 M25 Vale do Lobo, Vale do Lobo Cemento Pedro Araújo 6-4, 6-2 20. 16 febbraio 2025 M25 Vila Real de Santo António, Vila Real de Santo António Cemento Sandro Kopp 4-6, 6-1, 7-6(12) 21. 15 febbraio 2026 Chennai Open Challenger, Chennai Cemento Federico Agustín Gómez 6-4, 6(10)-7, 6-4
Finali perse (21) Legenda tornei minori Challenger (4) Futures/ITF (17) N.DataTorneoSuperficieAvversario in finalePunteggio 1. 1° dicembre 2013 Spain F41, Puerto del Carmen Cemento Aleksej Vatutin 4-6, 4-6 2. 30 marzo 2014 Turkey F9, Adalia Cemento Wilson Leite 5-7, 2-6 3. 15 giugno 2014 Belgium F2, Binche Terra rossa Alexander Ward 6-2, 3-6, 6(7)-7 4. 10 agosto 2014 Spain F21, Béjar Cemento Brydan Klein 3-6, 3-6 5. 31 agosto 2014 Romania F13, Brașov Terra rossa Nikola Ćaćić 4-6, 6-4, 5-7 6. 12 ottobre 2014 Portugal F9, Porto Terra rossa Frederico Gil 7-6(5), 3-6, 0-6 7. 26 ottobre 2014 Portugal F11, Ponta Delgada Cemento Rui Machado 2-6, 3-6 8. 7 dicembre 2014 Turkey F43, Adalia Cemento Roman Safiullin 1-6, 2-1, rit. 9. 8 novembre 2015 Egypt F38, Sharm el-Sheikh Cemento Marko Tepavac 6(5)-7, 1-6 10. 14 febbraio 2016 Turkey F6, Adalia Cemento Hong Seong-chan 5-7, 4-6 11. 9 luglio 2017 Portugal F10, Torres Vedras Cemento Roberto Ortega Olmedo 3-6, 2-6 12. 16 luglio 2017 Portugal F11, Póvoa de Varzim Cemento Alex de Minaur 1-6, 6-2, 4-6 13. 24 settembre 2017 Tunisia F27, Hammamet Terra rossa Filippo Baldi 0-6, 4-6 14. 1° aprile 2018 Portugal F6, Lisbona Cemento Lloyd Harris 6(2)-7, 6(3)-7 15. 19 agosto 2018 Portugal F15, Sintra Cemento Youssef Hossam 6-4, 6(5)-7, 5-7 16. 29 novembre 2020 São Paulo Open Tennis, San Paolo Terra rossa Felipe Meligeni Alves 2-6, 6(1)-7 17. 20 novembre 2022 Kobe Challenger, Kōbe Cemento (i) Yosuke Watanuki 7-6(3), 5-7, 4-6 18. 27 novembre 2022 Yokkaichi Challenger, Yokkaichi Cemento Yosuke Watanuki 2-6, 2-6 19. 4 giugno 2023 Troisdorf Challenger, Troisdorf Terra rossa Ivan Gakhov 2-6, 7-5, 3-6 20. 22 settembre 2024 M25 Satu Mare, Satu Mare Cemento Filip Cristian Jianu 4-6, 3-6 21. 24 novembre 2024 M25 Vale do Lobo, Vale do Lobo Cemento Gauthier Onclin 5-7, 1-6
Doppio Vittorie (13) Legenda tornei minori Challenger (1) Futures/ITF (12)