Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour Wimbledon - London Mallorca Challenger U.S. Open - New York Rennes Challenger Orleans Challenger Malaga Challenger M15 Villers-les-Nancy Alicante Challenger Mouilleron-Le-Captif Challenger M25 Sarreguemines Hamburg Challenger Brest Challenger Matsuyama Challenger M25 Vale do Lobo M15 Monastir M15 Grenoble M15 Poitiers M25 Esch/Alzette Tenerife 1 Challenger M25 Trento M15 Lons-le-Saunier Portugal F9 M15+H Bagnoles de l'Orne M25 Toulouse-Balma Cherbourg Challenger M25 Saint Dizier M25 Reggio Emilia Ostrava Challenger M25 Vale do Lobo M25 Creteil M25 Loule Oeiras 3 Challenger M25 Angers M25 Carnac M25 Koksijde Millennium Estoril Open - Estoril M25 Valldoreix Augsburg Challenger M25 Sabadell Oeiras 4 Challenger M25 Villeneuve-Loubet M25 Deauville M25 Grasse M25 Mungia-Laukariz M25 Elvas M25 Setubal Porto Challenger M25 Castelo Branco Braunschweig Challenger M25 Idanha-a-Nova Karlsruhe Challenger Luedenscheid Challenger Sassuolo Challenger M25 Bakio M25 Bourg-en-Bresse M25 Roda de Bara M25 Montesilvano M25 Porto M25 Satu Mare Como Challenger Tulln Challenger Szczecin Challenger Dobrich 2 Challenger Porto 2 Challenger Lisbon Challenger St. Tropez Challenger Orleans Challenger European Open - Antwerp Mouilleron-Le-Captif Challenger Brest Challenger Braga Challenger M25 Sintra M25 Sintra M25 Monastir M25 Vila Real de Santo Antonio Lille Challenger Pau Challenger Oeiras 2 Challenger M25 Antalya M25 Faro M25 Vila Real de Santo Antonio Rovereto Challenger Quimper Challenger Cherbourg Challenger M25 Setubal M25 Vale do Lobo Oeiras 3 Challenger Francavilla Challenger Grodzisk Mazowiecki Challenger Estoril Challenger Maia Challenger Koblenz Challenger Oeiras 1 Challenger Lugano Challenger Brasov Challenger Todi Challenger M25 Toulouse-Balma Milan Challenger Tampere Challenger M25 Koszalin Oeiras 5 Challenger M25 Antalya Zug Challenger Cassis Challenger M25 Poznan Heilbronn Challenger Porto 2 Challenger Bratislava 1 Challenger Poznan Challenger Iasi Challenger M25+H Kassel Bunschoten Challenger Porto Challenger Sofia 2 Challenger M25 Lesa Seville Challenger Szczecin Challenger St. Tropez Challenger Russia F7 Russia F4 Russia F5 Portugal F5 Turkey F10 Turkey F11 Turkey F15 Germany F1 Portugal F1 France F4 Portugal F2 Russia F1 Russia F2 Czech Republic F1 Czech Republic F2 Germany F5 Germany F7 Belgium F2 Belgium F3 Germany F9 Belgium F7 Belgium F8 Belgium F9 Germany F14 France F15 Portugal F4 Portugal F5 Germany F17 France F19 Germany F3 Turkey F5 France F4 Portugal F3 Russia F7 Kazakhstan F1 Kazakhstan F2 Kazakhstan F3 Uzbekistan F1 Czech Republic F1 Czech Republic F2 Czech Republic F3 Germany F6 Netherlands F3 Netherlands F4 Germany F9 Belgium F7 Germany F14 Spain F25 Germany F16 France F16 France F17 Portugal F4 Portugal F5 Germany F18 Germany F19 France F21 Brazil F31 Brazil F32 Germany F2 Germany F3 Germany F4 Russia F1 Portugal F2 Russia F2 Portugal F3 Portugal F4 Russia F3 Russia F4 Egypt F2 Uzbekistan F1 Egypt F3 Uzbekistan F2 Egypt F4 Portugal F5 Portugal F6 Portugal F7 Russia F7 Russia F8 Germany F5 Germany F6 Germany F8 Belgium F8 Spain F26 Netherlands F5 Spain F27 Netherlands F6 Spain F30 France F16 Spain F33 Portugal F9 Portugal F10 Portugal F11 Egypt F32 Egypt F33 Spain F41 Spain F42 Turkey F49 Turkey F50 Germany F2 Portugal F1 Portugal F2 Portugal F3 Kazakhstan F1 Kazakhstan F2 Kazakhstan F3 Turkey F7 Turkey F8 Turkey F9 Portugal F4 Portugal F5 Russia F3 Portugal F6 Russia F4 Belgium F2 Netherlands F2 Belgium F3 Belgium F4 Netherlands F4 Belgium F5 Germany F7 Spain F21 Romania F2 Romania F13 Portugal F8 Portugal F10 Portugal F11 Turkey F42 Turkey F43 Turkey F1 Turkey F2 Tunisia F3 Tunisia F4 Egypt F7 Egypt F8 Portugal F3 Morocco F2 Morocco F3 France F8 Italy F6 Portugal F4 Romania F2 Romania F3 Russia F1 Portugal F7 Mozambique F1 Mozambique F2 Netherlands F1 Netherlands F2 Spain F18 Netherlands F3 Netherlands F4 Belgium F8 Russia F5 Russia F6 Netherlands F5 Netherlands F6 Belgium F13 Russia F7 Russia F8 Spain F28 Egypt F36 Egypt F37 Egypt F38 Egypt F39 Cyprus F2 Cyprus F3 Germany F3 Turkey F5 Tunisia F5 Turkey F6 Tunisia F6 Turkey F7 Tunisia F7 France F4 Portugal F3 Egypt F9 Egypt F10 Netherlands F2 Czech Republic F4 Netherlands F4 Germany F8 Russia F7 Romania F15 Hungary F8 Turkey F47 Cyprus F3 Turkey F48 France F1 (Bagnoles-de-l'Orne) Egypt F1 (Sharm El Sheikh) Germany F3 (Nussloch) Egypt F4 (Sharm El Sheikh) Egypt F5 (Sharm El Sheikh) Egypt F6 (Sharm El Sheikh) France F4 (Lille) Croatia F1 (Rovinj) Croatia F2 (Porec) Italy F5 (Santa Margherita Di Pula) Portugal F6 (Porto) Portugal F7 (Carcavelos) Ukraine F1 (Cherkassy) Ukraine F2 (Cherkassy) Romania F2 (Bacau) Tunisia F22 (Hammamet) Portugal F10 (Torres Vedras) Germany F7 (Trier) Portugal F11 (Povoa de Varzim) Portugal F12 (Idanha-A-Nova) Portugal F13 (Idanha-A-Nova) Tunisia F27 (Hammamet) Tunisia F28 (Hammamet) Tunisia F29 (Hammamet) Tunisia F30 (Hammamet) Thailand F10 (Hua Hin) Thailand F11 (Hua Hin) Thailand F12 (Hua Hin) Qatar F6 (Doha) Portugal F1 (Vale Do Lobo) Portugal F3 (Loule) Portugal F5 (Vilamoura) Portugal F6 (Lisbon) Portugal F7 (Porto) Portugal F8 (Cascais) Tunisia F23 (Hammamet) Portugal F14 (Sintra) Portugal F15 (Sintra) M25 Tavira M25 Meerbusch M25 Wetzlar M25 Nevers M25+H Rodez M15 Grenoble M25 Portimao M25 Mataro M25 Grasse M25 Manacor M25 Santa Margherita di Pula Portugal F5 (Quinta Da Marinha) Eckental Challenger Sao Leopoldo Challenger Karshi Challenger Samarkand Challenger Marburg Challenger Scheveningen Challenger Guimaraes Challenger Oberstaufen Challenger Segovia Challenger Meerbusch Challenger Kazan Challenger Heilbronn Challenger Astana Challenger Mersin Challenger Itajai Challenger Sao Paulo Challenger Santos Challenger Heilbronn Challenger Segovia Challenger Ortisei Challenger Casablanca Challenger New Delhi Challenger Kolkata Challenger Kazan Challenger Mersin Challenger Eskisehir Challenger Moscow Challenger Todi Challenger Scheveningen Challenger Tampere Challenger Segovia Challenger Manerbio Challenger Campinas Challenger Porto Alegre Challenger Sao Paulo Challenger Tashkent Challenger Bratislava Challenger Bangkok Challenger Bangkok Challenger Manila Challenger Kazan Challenger Napoli Challenger Barletta Challenger Turin Challenger Rome Challenger Samarkand Challenger Mestre Challenger Caltanissetta Challenger Perugia Challenger Fergana Challenger Marburg Challenger Bastad Challenger San Benedetto Challenger Poznan Challenger Tampere Challenger Prague Challenger Scheveningen Challenger Liberec Challenger Trnava Challenger Cordenons Challenger Meerbusch Challenger Manerbio Challenger Genova Challenger Szczecin Challenger Budapest Challenger Eckental Challenger Mouilleron-Le-Captif Challenger Astana Challenger Bangkok Challenger Koblenz Challenger Budapest Challenger St. Brieuc Challenger Barletta Challenger Karshi Challenger Samarkand Challenger Shymkent Challenger Caltanissetta Challenger Lisbon Challenger Blois Challenger Milan Challenger Poznan Challenger Tampere Challenger Liberec Challenger Genova Challenger Orleans Challenger Brest Challenger Mouilleron-Le-Captif Challenger Hua Hin Challenger M15 Monastir Koblenz Challenger Rennes Challenger Quimper Challenger Cherbourg Challenger Zhuhai Challenger Shenzhen Challenger Alicante Challenger Braga Challenger Heilbronn Challenger Mestre Challenger Poznan Challenger Lyon Challenger Blois Challenger Marburg Challenger Braunschweig Challenger Sopot Challenger Pullach Challenger Genova Challenger Zhangjiagang Challenger Szczecin Challenger Shanghai Challenger Kaohsiung Challenger Orleans Challenger Florence Challenger Almaty Challenger Tashkent Challenger Eckental Challenger Bratislava Challenger Mouilleron-Le-Captif Challenger Bangalore Challenger Pune Challenger Koblenz Challenger Quimper Challenger Cherbourg Challenger Lille Challenger St. Brieuc Challenger Sophia Antipolis Challenger Alicante Challenger Tunis Challenger Francavilla Challenger Aix En Provence Challenger Braga Challenger Heilbronn Challenger Lisbon Challenger Jerusalem Challenger Poznan Challenger Lyon Challenger Bratislava Challenger Milan Challenger Ludwigshafen Challenger Braunschweig Challenger Amersfoort Challenger Prague Challenger Sopot Challenger Manerbio Challenger Portoroz Challenger L'Aquila Challenger Baotou Challenger Jinan Challenger Szczecin Challenger Kaohsiung Challenger Nur-Sultan Challenger Ningboo Challenger Liuzhou Challenger Shenzhen Challenger Charlottesville Challenger Knoxville Challenger Houston Challenger Helsinki Challenger Noumea Challenger Rennes Challenger Quimper Challenger Bengalaru Challenger Cherbourg Challenger Bergamo Challenger Nur-Sultan Challenger Prague Challenger Prague II Challenger Ostrava Challenger Prostejov Challenger Parma Challenger Split Challenger Lisbon Challenger Istanbul Challenger Eckental Challenger Parma Challenger Bratislava Challenger Ortisei Challenger Sao Paulo Challenger Maia Challenger Quimper Challenger Quimper 2 Challenger Cherbourg Challenger Nur-Sultan 1 Challenger Nur-Sultan 2 Challenger St. Petersburg 1 Challenger St. Petersburg 2 Challenger Zadar Challenger Oeiras 1 Challenger Oeiras 2 Challenger Rome 1 Challenger Rome 2 Challenger Biella 5 Challenger Prague Challenger Oeiras 3 Challenger Biella 7 Challenger Lyon Challenger Bratislava Challenger Aix En Provence Challenger Milan Challenger Porto Challenger Salzburg-Anif Challenger Amersfoort Challenger Poznan Challenger Segovia Challenger Prague 3 Challenger Como Challenger Mallorca Challenger Banja Luka Challenger Kyiv Challenger Szczecin Challenger Braga Challenger Bucharest Challenger Lisbon Challenger Sibiu Challenger Mouilleron-Le-Captif Challenger Alicante Challenger Brest Challenger Bergamo Challenger Tenerife Challenger Roanne Challenger Bratislava Challenger Helsinki Challenger Forli 2 Challenger Forli 3 Challenger Traralgon Challenger Forli 1 Challenger Forli 2 Challenger Forli 3 Challenger Quimper Challenger Bengalaru 1 Challenger Pau Challenger Lille Challenger Lugano Challenger Sanremo Challenger Barletta Challenger Rome 1 Challenger Aix En Provence Challenger Heilbronn Challenger Tunis Challenger Troisdorf Challenger Poznan Challenger Lyon Challenger Milan Challenger Luedenscheid Challenger Malaga Challenger Braunschweig Challenger Porto Challenger Iasi Challenger Verona Challenger Tampere Challenger San Benedetto Challenger Meerbusch Challenger Grodzisk Mazowiecki Challenger Banja Luka Challenger Toulouse Challenger Seville Challenger Cassis Challenger Rennes Challenger Genova Challenger Braga Challenger Lisbon Challenger Mouilleron-Le-Captif Challenger Alicante Challenger St. Tropez Challenger Hamburg Challenger Brest Challenger Bergamo Challenger Yokohama Challenger Roanne Challenger Matsuyama Challenger Kobe Challenger Andria Challenger Yokkaichi Challenger Maia Challenger Oeiras 1 Challenger Oeiras 2 Challenger Ottignies-Louvain-la-Neuve Challenger Quimper Challenger Koblenz Challenger Chennai Challenger Cherbourg Challenger Bengaluru Challenger Pau Challenger Pune Challenger Szekesfehervar Challenger Biel Challenger St. Brieuc Challenger Sanremo Challenger Girona Challenger Madrid Challenger Oeiras 3 Challenger Ostrava Challenger Aix En Provence Challenger Francavilla Challenger Oeiras 4 Challenger Troisdorf Challenger Prostejov Challenger Porto Challenger Estoril Open - Estoril Estoril Open - Estoril Estoril Open - Estoril Portugal Open - Oeiras Kremlin Cup - Moscow BRD Nastase Tiriac Trophy - Bucharest Portugal Open - Oeiras BMW Open - Munich Power Horse Cup - Dusseldorf Kremlin Cup - Moscow Grand Prix Hassan II - Casablanca Kremlin Cup - Moscow St. Petersburg Open - St. Petersburg Millennium Estoril Open - Estoril Millennium Estoril Open - Estoril St. Petersburg Open - St. Petersburg European Open - Antwerp Millennium Estoril Open - Estoril TEB BNP Paribas Istanbul Open - Istanbul Antalya Cup - Antalya St. Petersburg Open - St. Petersburg Kremlin Cup - Moscow Qatar ExxonMobil Open - Doha Grand Prix Hassan II - Marrakech Barcelona Open BancSabadell - Barcelona Millennium Estoril Open - Estoril Plava Laguna Croatia Open - Umag St. Petersburg Open - St. Petersburg European Open - Antwerp Kremlin Cup - Moscow Open Sud de France - Montpellier Open 13 Provence - Marseille Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Marrakech SkiStar Swedish Open - Bastad German Tennis Championships - Hamburg St. Petersburg Open - St. Petersburg Kremlin Cup - Moscow Open Sud de France - Montpellier Tata Open Maharashtra - Pune Open 13 Provence - Marseille St. Petersburg Open - St. Petersburg Sofia Open - Sofia Murray River Open - Melbourne Open 13 Provence - Marseille Abierto Mexicano Telcel - Acapulco Millennium Estoril Open - Estoril Belgrade 2 - Belgrade Hamburg European Open - Hamburg Gijon Open - Gijon Open Sud de France - Montpellier Grand Prix Hassan II - Marrakech Millennium Estoril Open - Estoril BMW Open - Munich M25 Idanha-a-Nova M25 Vale do Lobo Miami Open - Miami Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Australian Open Qualifying - Doha Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne Wimbledon - London Australian Open - Melbourne French Open - Paris Davis Cup, Group I, 1R, SLO-POR 3-2 Davis Cup, Group I, PO, RUS-POR 4-1 Davis Cup, Group II, 1R, POR-MAR 4-1 Davis Cup, Group II, 2R, POR-FIN 4-1 Davis Cup, Group I, 1R, POR-ISR 5-0 Davis Cup, World Group I, PO, LTU-POR 0-4 Wimbledon (juniors) U.S. Open (juniors) Australian Open (juniors) French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) All Lower level tournaments Zagreb Challenger Prague 2 Challenger St. Tropez Challenger Maia Challenger Sofia Open - Sofia BMW Open - Munich