In carriera ha disputato in singolare una semifinale ATP, alcune finali Challenger e ha vinto diversi titoli del circuito ITF. Il suo miglior ranking ATP in singolare è stata la 90ª posizione raggiunta nell'agosto 2026. Nei tornei del Grande Slam ha raggiunto il secondo turno in due occasioni in singolare e una sola volta in doppio.
Nell'ITF Junior Circuit ha raggiunto il suo miglior ranking il 1º gennaio 2021 alla 3ª posizione.
Nell'agosto 2019 insieme a Toby Kodat vince il torneo di doppio allo USTA Boys 18s National Championships e si garantiscono una wild card per il tabellone principale di doppio degli US Open 2019. Nel corso di quel torneo diventano la più giovane coppia maschile di doppio a vincere un incontro agli US Open nell'era Open.
2018-2021: inizi tra i professionisti e primi titolo ITF
Fa le sue prime apparizioni tra i professionisti in tornei del circuito ITF e dell'ATP Challenger Tour nel 2018 e 2019. Nel novembre 2019 disputa la prima finale in un ITF M25 statunitense e viene sconfitto da Tomás Martín Etcheverry. Alza il primo trofeo tra i professionisti nel febbraio 2020 vincendo in coppia con Kodat un torneo ITF M25 di doppio negli Stati Uniti battendo in finale Nicolás Barrientos / Cristian Rodríguez Perde anche la successiva finale di singolare giocata nel marzo 2021 in un ITF croato e il primo titolo arriva a settembre in un M15 statunitense con il successo in finale sul rumeno Gabi Adrian Boitan. Nel corso del 2021 vince anche altri quattro tornei ITF di doppio.
2022-2023: esordio nelle qualificazioni dei tornei del Grande Slam e Masters 1000, prima finale Challenger in doppio
Nel 2022 e nel 2023 ottiene quattro wild card per le qualificazioni nei tornei di singolare al Miami Open e agli US Open e supera un solo turno di qualificazione agli US Open 2023. Nel 2022 vince due tornei ITF in singolare e a novembre gioca la prima finale Challenger in doppio a Knoxville, persa in coppia con Mitchell Krueger contro Hunter Reese / Tennys Sandgren.
2024: esordio Masters 1000 e 175º nel ranking, prima finale Challenger in singolare e infortunio
Nel gennaio 2024 disputa la sua prima finale Challenger in singolare all'Oeiras Indoor II e perde in due set contro Leandro Riedi. A marzo riceve una nuova wild card per il tabellone principale del torneo di singolare a Miami, vince il primo incontro in un Masters 1000 contro Zhang Zhizhen e avanza al terzo turno dopo il ritiro di Tommy Paul. Esce al terzo turno dopo due tie-break persi contro Christopher O'Connell. Con questi risultati porta il miglior ranking in singolare alla 175ª posizione. Perde cinque dei sei incontri successivi, tra cui quello al primo turno al suo debutto nelle qualificazioni del Roland Garros. Si strappa due legamenti della caviglia prima di Wimbledon. Rientra in campo troppo presto alle qualificazioni degli US Open, continua a giocare per tutto settembre, si procura una frattura da stress e deve chiudere la stagione in anticipo.
2025: crollo e risalita nel ranking, esordio e primo match vinto in un Major
Torna nel circuito a febbraio, partendo dalla 469ª posizione del ranking, e gioca nei tornei ITF. Vince una delle due finali disputate in tornei M15 egiziani e scende alla 744ª dopo che sono scaduti i punti guadagnati a Miami l'anno prima. Risale lentamente la classifica con discreti risultati nei tornei ITF e poi nei Challenger. Gli viene concessa una wild-card per le qualificazioni agli US Open 2025, le supera per la prima volta e consegue la prima vittoria nel tabellone principale di uno Slam contro il connazionale Darwin Blanch. Al secondo turno cede in quattro set al top 20 Frances Tiafoe e rientra nella top 300. Verso fine stagione perde tre finali Challenger di singolare a Columbus, Lincoln e Charlottesville, la prima contro Michael Zheng e le altre due contro il talento emergente Rafael Jódar, e risale fino alla 173ª posizione di novembre.
2026: prima semifinale ATP e 90º nel ranking
Alla sua prima trasferta in Oceania, supera le qualificazioni agli Australian Open ed esce al primo turno per mano di Valentin Vacherot. Subito dopo disputa all'ATP 250 di Montpellier la sua prima semifinale nel circuito maggiore, elimina tra gli altri Hubert Hurkacz e Roberto Bautista Agut e viene sconfitto da Adrian Mannarino dopo aver vinto il primo set. A fine torneo sale alla 130ª posizione mondiale. Raggiunge il secondo turno al Miami Open (per ritiro dell'avversario) e al Madrid Open, dove supera le qualificazioni e batte il nº 56 del mondo Alexei Popyrin, portandosi al 115º posto. Non supera le qualificazioni al Roland Garros, mentre le supera al Rosmalen Open e al Queen's per poi uscire rispettivamente al secondo e al primo turno. Accede per la prima volta al tabellone principale di un torneo del Grande Slam senza passare le qualificazioni a Wimbledon, si presenta come 106º del ranking e perde al secondo turno contro Arthur Rinderknech dopo la vittoria su Marco Trungelliti.
Supera le qualificazioni al Washington Open e al Canadian Open, nonostante le sconfitte al primo turno in entrambi i tornei porta il miglior ranking alla 92ª posizione mondiale. Al secondo turno del Winston-Salem Open batte per la prima volta un top 10, il nº 8 del mondo e testa di serie nº 1 Daniil Medvedev, esce di scena al turno successivo e sale alla 90ª posizione mondiale. Agli US Open viene eliminato al primo turno dopo cinque set contro il nº 12 del mondo Frances Tiafoe. Nei tre tornei disputati nella trasferta asiatica vince solo un match al Chengdu Open. Supera le qualificazioni e viene eliminato al secondo turno allo European Open. Il 1º novembre perde la finale al Challenger 100 di Brest contro Moïse Kouamé al tie-break del set decisivo.
(V) Torneo vinto; raggiunto (F) finale, (SF) semifinale, (QF) quarti di finale, (#T) turni 4, 3, 2, 1; (RR) round-robin; (Q#) Turno di qualificazione; (A) assente dal torneo; (Z#) Zona gruppo Coppa Davis/Fed Cup (con indicazione numero); (PO) play-off Coppa Davis o Fed Cup; vinto un (O) oro, (F-A) argento o (SF-B) bronzo ai Giochi Olimpici; (ND) torneo non disputato.