He previously played for the Pittsburgh Penguins, New Jersey Devils and Montreal Canadiens of the National Hockey League.
During his sophomore season he was named Hockey Night in Boston Sophomore MVP, Eagle-Tribune Player of the Year, ISL Division II MVP, and was named to The Boston Globe All-Scholastic and All-New England Prep Division II teams.
[4] Farnham finished the season with 11 points and led all AHL rookies with 274 penalty minutes in 65 regular-season games.
[5] On July 5, 2013, the Pittsburgh Penguins of the National Hockey League (NHL) signed Farnham to a one-year two-way contract.
[6] Farnham made his NHL debut on December 11, 2014, for the Pittsburgh Penguins in a game against the Columbus Blue Jackets.
[10][11] On January 14, 2016, Farnham was suspended for four games by the NHL's Department of Player Safety for an illegal hit on St. Louis Blues' forward Dmitrij Jaskin.
[13] As a free agent in the off-season, on July 22, 2016, Farnham signed a one-year, two-way deal with the Montreal Canadiens.
On August 22, 2017, as an un-signed free agent, Farnham signed a professional try-out to attend the training camp of the New York Rangers.
On October 24, 2017, Farnham agreed to a professional tryout contract with the Springfield Thunderbirds of the AHL, affiliate to the Florida Panthers.