*Club domestic league appearances and goals, correct as of 15:26, 17 May 2024 (UTC) ‡ National team caps and goals, correct as of 21:06, 19 October 2023 (UTC)
Born in Renens, Switzerland, to Albanian parents, Veseli began his youth career with local club FC Renens before joining Lausanne-Sport in 2005. In 2008, he was signed by the English club Manchester City before joining Manchester United in January 2012. Having failed to break into the first team, he was released in July 2013 and joined Ipswich Town, who allowed him to go on loan to Bury in the second half of the 2013–14 season. He was loaned out to Port Vale for the first half of the 2014–15 season before joining permanently in January 2015. He returned to Switzerland in July 2015 and joined Lugano, and featured on the losing side in the 2016 Swiss Cup final before he signed with Italian side Empoli in August 2016. He served Empoli as vice-captain as the club secured promotion as champions of Serie B in the 2017–18 campaign. He joined French club Le Mans on loan in January 2020 and then signed with Salernitana eight months later. He helped Salernitana to win promotion out of Serie B at the end of the 2020–21 season. He signed with Benevento in August 2022 and moved on to Turkish club Fatih Karagümrük 12 months later.
Veseli was born in Switzerland to Albanian parents from Kosovo and speaks fluent English, French, Albanian and Italian.[3] His father settled the family in Lausanne and worked in construction before joining a multi-national company that made plastic packaging.[3] Veseli achieved the top grades in his school's region at the age of 15.[3] In 2022, he was living with his partner, an accountant from Switzerland.[3]
On 31 January 2012, the last day of the 2012 winter transfer window, Veseli joined Manchester United on a free transfer.[5][6] However, he failed to break into the first-team at Old Trafford and Manchester United released Veseli at the end of his contract in July 2013.[7]
On 31 December 2013, Veseli had signed a one-month loan deal for struggling League Two side Bury.[10] His loan spell at Gigg Lane was later extended by a further month before finally being extended to the full 93-day period. He started 18 league games for the club. He was influential in their rise from 20th in the table and fighting relegation up to 11th when he left after new manager David Flitcroft decided to include Veseli in a back three alongside Pablo Mills and Jimmy McNulty. In his 18 appearances, the "Shakers" kept ten clean sheets.[11]
Port Vale
In July 2014, Veseli signed on loan for League One side Port Vale for the first half of the 2014–15 season, with manager Micky Adams intending him to provide first-team competition for right-back Adam Yates.[12][11] He missed two weeks after breaking his ribs in September.[13] He returned to the starting eleven at centre-back on 15 November, helping the "Valiants" to a 1–0 win over Rochdale at Vale Park.[14] He was picked out as the star player in the following week's 1–0 defeat to Milton Keynes Dons.[15] He joined Port Vale on a permanent basis on 7 January 2015, after being released by Ipswich.[16] On 21 February, he scored his first goal in professional football with a speculative effort from 30 yards (27 m) in a 3–0 home win over Doncaster Rovers.[17] The goal helped him to be named in the English Football League team of the week.[18] He was offered a new contract of £1,000-a-week, but turned it down.[3]
Lugano
In July 2015, Veseli rejected a contract offer from Port Vale and instead signed a 12-month deal with Swiss Super League side Lugano following a successful two-week trial.[19] He played 33 of the club's 36 league games in the 2015–16 season, as Lugano avoided relegation by finishing just one point above bottom club FC Zürich. Lugano also reached the final of the Swiss Cup at Letzigrund, where Veseli was sent off in stoppage time after receiving two yellow cards in a 1–0 defeat to Zürich.[20] He rejected the club's contract offer of 7,000-Swiss francs-a-month and the club unsuccessfully sued him, which prevented him from playing professional football until October 2016.[3]
Empoli
Vesli signed a two-year contract with Serie A club Empoli in August 2016.[21] He played 17 games for the "Azzurri", but was an unused substitute on the last day of the 2016–17 as Empoli were relegated with a 2–1 defeat at Palermo.[22]
Following the club's relegation, Veseli was one of only three survivors of a cull to the playing squad and was named as a vice-captain.[23] On 25 August 2017, he renewed his contract with Empoli until 30 June 2021.[24] He made 30 appearances across the 2017–18 campaign as Empoli made an immediate return to the top-flight as champions of Serie B under the stewardship of Aurelio Andreazzoli.[25] He then featured 31 times in Serie A during the 2018–19 campaign as Empoli were relegated on the final day of the season.[26]
On 26 August 2020, he signed a two-year contract with Serie B club Salernitana.[30] He played 23 league games in the 2020–21 season, scoring one goal, as Fabrizio Castori's Salernitana secured promotion into Serie A with a second-place finish in Serie B.[31] However, it was a difficult season on a personal level as he injured his knee, his calf, fractured his ankle and contracted COVID-19 throughout the campaign.[3] He played nine games as Salernitana managed to avoid relegation in the 2021–22 season, with all but one of his appearances coming under Stefano Colantuono, who succeeded Castori as head coach in October only to be replaced by Davide Nicola in February.[31]
Benevento
On 27 August 2022, Veseli moved to Benevento in Serie B.[32] He featured 21 times in the 2022–23 campaign as Benevento were relegated in last place.[31]
Although he has Swiss citizenship, Veseli declared to the media that he would welcome a call-up from Albania, given his Albanian ethnicity.[36] He had also been contacted several times by Kosovo coach Albert Bunjaki, but refused to commit himself to Kosovo.
Albania
On 7 November 2015, Veseli received his first call up to Albania by coach Gianni De Biasi for the friendly matches against Kosovo and Georgia on 13 and 16 November 2015.[37] He made his first appearance against Kosovo as a substitute in the 63rd minute for Berat Djimsiti.[38][39]
Euro 2016
On 21 May 2016, Veseli was named in Albania's preliminary 27-man squad for UEFA Euro 2016,[40] and in Albania's final 23-man UEFA Euro 2016 squad on 31 May.[41] He appeared as an 86th-minute substitute against hosts France in Albania's second group game, which ended in a 2–0 defeat.[42] Albania finished the group in the third position with three points and with a goal difference –2, and was ranked last in the third-placed teams, which eventually eliminated them.[43]
Style of play
Speaking in July 2014, Port Vale manager Micky Adams stated that Veseli was "quick, he can handle the ball and he's got decent pedigree".[44]