The versatile defender joins from Barnsley, where he signed his first professional deal in July 2017, shortly after being named 2015/16 Academy Player of the Year at Oakwell.
The 26-year-old spent part of his youth career with Fulham and Crystal Palace and cited the ambition of the club as one of the reasons for making the move North.