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