W JPL zajmował się m.in. modelami komputerowymi systemów optycznych statków kosmicznych.
Kariera astronauty 1998 – 4 czerwca został przyjęty do 17 grupy astronautów NASA. 1999 – w sierpniu zakończył przeszkolenie podstawowe i uzyskał kwalifikacje specjalisty misji. Następnie został skierowany do Biura Astronautów NASA, gdzie pracował w Centrum Kontroli Lotów. Był operatorem łączności (tzw. CAPCOM) podczas pierwszych siedmiu wypraw na ISS oraz podczas lotów wahadłowców STS-104, STS-108 i STS-112. Później pracował nad rozwojem przyszłych misji i pojazdów kosmicznych. 2006 – w czerwcu został wyznaczony specjalistą misji (MS-4) w załodze STS-122. 2008 – 7 lutego wystartował do misji STS-122 promem Atlantis. Załoga promu dostarczyła do Międzynarodowej Stacji Kosmicznej laboratorium Columbus przygotowane przez Europejską Agencję Kosmiczną. 2008–2011 – pracował jako operator łączności (CAPCOM) podczas czterech ekspedycji na ISS (17, 18, 22 i 26) oraz podczas ośmiu lotów wahadłowców aż do STS-135 – ostatniego lotu programu Space Shuttle.