John has a Ph.D. in Computer Science and is a professional software engineer and consultant, as well as a computer science university professor and department chair.