He holds a Bachelor's degree in Mathematics from the massachusetts Institute of Technology and a Master's degree in Engineering from Northwestern University. His professional career has included ten years of system software design as well as teaching computer science and writing for computer magazines.