Sparta Rotterdam Mahi was born in
The Hague and began his career as a footballer there with SC REMO, which he later left for HSV Escamp and then
HV & CV Quick. In 2011, he moved to
Sparta Rotterdam, where he was promoted to the first team a year later. He made 18 appearances that season, mostly as a substitute. On 16 May 2013, in the promotion playoffs, he scored his first goal for Sparta against
Helmond Sport. During a friendly match with
Jong Utrecht on 12 August 2013, he suffered a serious knee injury to his meniscus. He underwent surgery and was ruled out for six months. He made his comeback against
Excelsior Maassluis in the
KNVB Cup on 11 January 2014. In the 21 matches that followed, he scored six goals and provided three assists. He ended his time at Sparta with seven goals and four assists in 41 matches. On 24 August, he made his debut for Groningen against his hometown club
ADO Den Haag in a 3–0 defeat. His first goal for the club came on 17 December in a
cup match against
Volendam, where he also provided an assist. On 22 March 2015, he scored his first Eredivisie goal against
Twente in a 2–2 draw. He started as a
left winger for Groningen in the
2015 KNVB Cup final against defending cup winners
PEC Zwolle on 3 May. Groningen won the match 2–0, marking their first-ever major trophy win and securing qualification to the
UEFA Europa League for the
following season. However, Mahi played little in the
2015–16 season due to three different injuries to his thigh, calf, and knee in succession. Despite this, he managed impressive statistics, scoring five times in the first ten matches of the season. However, in October 2017, Groningen temporarily removed Mahi and
Oussama Idrissi from the squad due to unacceptable behavior. Nine days later, they returned to the first team. Mahi remained an important player for Groningen that season with seven goals and six assists in the Eredivisie. He made his debut for the club on 21 July, replacing
Salim Khelifi during half-time in a 4–0 home loss against
FC Lugano. For Zürich, Mahi played in 18 out of 36 possible league games and one cup game that
season.
Utrecht After one year in Switzerland, Mahi returned to the Netherlands, where he signed a four-year contract with
FC Utrecht. On 17 January 2023, Mahi joined
Cambuur on loan for the rest of the season.
De Graafschap On 10 August 2023, Mahi signed a three-year contract with
De Graafschap. On 6 August 2025, the contract was mutually terminated.
SVV Scheveningen After about half a year of remaining without a club Mahi signed for third division tier club
SVV Scheveningen. ==International career==