He has also been a software engineer and technical consultant for IBM at various customer sites in the United States, Canada, France, and China. From 1983-1996, he worked for IBM in San Jose as a staff software engineer, a senior associate engineer, and an associate software engineer.