He received his B.Sc. (Honours) in computer science from University of New Brunswick, Saint John in 2004. Later he moved to Calgary to pursue graduate studies and completed his Master's in 2006. He worked as a research associate for 2 years, and enrolled in the doctoral program in University of Calgary in 2008. He graduated with a Ph.D. in computer science in 2012. Since then, he has been working in the Department of Computer Science at the University of Auckland.