Ham wurde im August 1998 für das Astronautenprogramm der NASA ausgewählt. Er war als Verbindungssprecher (CapCom) für diverse Space-Shuttle- sowie ISS-Missionen tätig.
Im Frühjahr 2007 wurde Ham als Pilot für seinen ersten Raumflug ausgewählt. Der Start von STS-124 erfolgte am 31. Mai 2008.
Bei seinem zweiten Raumflug erhielt er das Kommando der Mission STS-132. Der Start erfolgte am 14. Mai, die Landung am 26. Mai 2010. Dies war der zweitletzte Flug der Raumfähre Atlantis.
Nach der NASA
Ham verließ die NASA am 31. Mai 2012 und kehrte an die United States Naval Academy zurück, wo er unterrichtete.[1]
Ham arbeit seit Juli 2014 für Bigelow Aerospace am BA 330 Crew and Cargo Programms.
Privates
Ham ist zum zweiten Mal verheiratet und hat zwei Kinder aus erster Ehe.