McFarlane's voice roles include JJ in Bob the Builder, Bulgy and Beresford in Thomas & Friends and PC Malcolm Williams in Fireman Sam.
[4][5][6] McFarlane's first professional television role was in 1985 with a three episode guest stint, as Detective Sergeant Watson, in ITV's hit police procedural Dempsey and Makepeace.
[7] From there, he would go on to feature in London Weekend Television's made-for-TV film Dutch Girls, alongside Colin Firth and fellow Outlander alumni Bill Paterson.
[8] The next year he featured in an episode of London Weekend Television's maternity mini-series To Have and To Hold, which focused on a surrogate mother carrying a child for her sister.
[20][21][22] His numerous TV credits include Judge John Deed, Jonathan Creek, Casualty, Death in Paradise, Father Brown and Holby City.
McFarlane has also made numerous appearances in Doctor Who, voicing the Heavenly Host in the Christmas special "Voyage of the Damned" and playing Moran in the "Under the Lake" and "Before the Flood" episodes of the ninth series[24] from 2015.
[33] His best-known voice roles include JJ and Skip in the original series of Bob the Builder, and as the narrator on the ITV gameshow The Cube.
He has also voiced Jonah in the 1997 animated series Captain Pugwash, Bulgy the Double Decker Bus and Beresford the Crane in Thomas & Friends and its 2017 feature film Journey Beyond Sodor.
[34][non-primary source needed] In addition, he played the part of Elvis the horse in Iconicles, Sparky the dragon in Mike the Knight, voiced several characters in the episode "The Sweater" of The Amazing World of Gumball,[citation needed] and as well as Police Constable Malcolm Williams in the twelfth series of Fireman Sam and its 2020 1-hour special, Norman Price and the Mystery in the Sky.
In 2013, McFarlane appeared with Lenny Henry in a critically acclaimed revival of August Wilson's Fences at the Duchess Theatre in London's West End.