Donald made his professional Ajax debut under manager Henk ten Cate on 14 February 2007, in the UEFA Cup clash against SV Werder Bremen.
Donald made his Eredivisie debut on 23 September 2007 in a match against AZ, coming on as a substitute for Klaas-Jan Huntelaar.
[5][6] Donald made no appearances in the Eredivisie in the 2008–09 season under manager Marco van Basten, after being badly injured in pre-season at the Amsterdam Tournament in a challenge on Inter's Adriano, but he reestablished himself in the squad following the appointment of Martin Jol.
[13] Playing with Willem II, Donald collected 18 appearances at total, including 4 matches in relegation play-off.
[14] Donald made his official debut for Roda JC replacing Laurent Delorge in 3–0 defeat against Feyenoord on 13 August 2011.
[17] On 27 July 2017, Donald became the first foreign captain in the club history, leading the team in 2–0 victory over Sparta Prague.
[19] Scoring a goal in 2–1 away victory over Vojvodina on 7 March 2018, Donald archived his 104 match for Red Star Belgrade, equalizing with Carlos Eduardo de Fiori Mendes as a most capable foreign footballer in the club history.
Replacing Nemanja Radonjić in 81 minute of the Eternal Derby, Donald noted his 105th official game with Red Star Belgrade.
[23] On 19 May 2018, Donald scored in the final match of the 2017–18 Serbian SuperLiga season, against Voždovac for winning the second trophy with the club.