Ferreira went to Despatch High School in his home town of Despatch and was selected to represent Eastern Province at the Under-16 Grant Khomo Week tournaments in 2005 and 2006.
He then moved to Pretoria, where he finished his schooling at Afrikaanse Hoër Seunskool. He was selected in the Blue Bulls squad that played at the Under-18 Craven Week competition in 2008; at the conclusion of that tournament, he was also included in a South African Under-18 Elite Squad and was included in the South Africa Schools squad for 2008. He was also named in the Blue Bulls U19 squad that played in the Under-19 Provincial Championship later that year.
He was once again included in the Under-19 squad for their 2009 campaign, as well as appearing for them at Under-21 level in the same season. In 2010, Ferreira made one appearance for UP Tuks during the 2010 Varsity Cup competition and was a key player for the Blue Bulls U21 side in the 2010 Under-21 Provincial Championship, scoring two tries in thirteen starts for the side. This included a try in their semi-final match against the Sharks U21 that proved to be decisive in a 39–35 victory, but Ferreira missed out on the final.
He made one appearances for university side TUT Vikings in the 2011 Varsity Cup competition and was also included in the Blue Bulls squad for the 2011 Vodacom Cup. However, despite being named on the bench for their match against Western Province, he failed to make any senior appearances for the Blue Bulls.
In search of top-level rugby, he moved to Bloemfontein to join the Cheetahs in 2012. Despite never making a Currie Cup or Vodacom Cup appearance, he went straight into the Cheetahs squad for the 2012 Super Rugby season, starting their opening match of the season, a 25–27 defeat to the Lions in Johannesburg. He made a total of fourteen appearances for the Cheetahs and also scored his first senior try in their match Round Ten match against the Highlanders. He made his first senior appearance in domestic rugby during the 2012 Currie Cup Premier Division, starting their match against former side the Blue Bulls and scoring a try in the first minute of the match for help his side to a 32–18 victory. He made two more starts in the Currie Cup before a knee injury curtailed the remainder of his season.
Upon his return from injury, he found himself behind former Leopards lock Lood de Jager in the pecking order and he was limited to three appearances for the Free State Cheetahs in the 2013 Vodacom Cup. He also made on appearance on loan at the Griffons during the 2013 Currie Cup First Division before a shoulder injury ruled him out for the rest of the season.
He returned to Super Rugby action during the 2014 Super Rugby season, making six appearances – only two of those being starts.
It was then announced that Ferreira would join Italian Pro12 side Zebre for the 2014–15 Pro12 season. He played in eight matches for Zebre – six in the Pro12 and a further two appearances in the 2014–15 European Rugby Challenge Cup – but his contract was cancelled by mutual consent on 31 December 2014.
He returned to South Africa and signed a two-year contract with Johannesburg-based side the Golden Lions.
After the 2015 Super Rugby season, Ferreira joined Japanese Top League side Toyota Industries Shuttles for the 2015–16 season. He made three appearances, scoring one try in their match against Kubota Spears.
In September 2016, Ferreira joined Top 14 side Toulon as a medical joker following an injury to Juan Smith.