Graduated from Braden River High School in Bradenton, Fla. in 2013...named a 2013 Florida Region Honorable Mention by Perfect Game...Attended St. Johns River State College and played two seasons collegiately...hit .413 with 16 steals and a .472 on-base percentage in his sophomore season (2015) en route to First Team Mid-Florida Conference honors...also named the MFC Defensive Player of the Year...Selected by the Astros in the 12th round of the 2015 draft...signed by Astros scout John Martin...Was added to the Astros Major League roster on Sept. 15, 2018...is signed to a one-year contract for the 2020 season.
Played in 56 games with the Astros across four stints with the club...went 8-for-9 in stolen base attempts (88.9%)...played in 18 games in the outfield (12 starts: 8 in CF, 3 in LF, 1 in RF)...made his first career appearances in the infield, appearing in 26 games at shortstop (14 starts) and four games at second base (1 start)...began his season at Triple A Round Rock...was recalled to Houston on May 29...optioned to Triple A on Aug. 1...recalled to Houston as the 26th man for the club's doubleheader on Aug. 13...optioned to Triple A following the games on Aug. 13...recalled to Houston on Aug. 21 and optioned to Triple A on Aug. 25...recalled to Houston for a final time on Sept. 5...went 3x4 with three stolen bases and three runs scored on June 2 at OAK...set single-game career highs for hits and steals...marked the first three-stolen base game by an Astros player since Jose Altuve on May 8, 2016 vs. SEA...scored the game-winning run in the 12th inning...became the fifth player in Astros history to have a game with at least three hits, three runs and three steals, and the first since Altuve on Sept. 10, 2013 at SEA... played his first-career Major League game at shortstop on June 4 at SEA...struck out for the first time in his career on June 5 at SEA...went his first 24-career plate appearances without a strikeout, the longest start-of-career streak by an Astros hitter since C J. R. Towles in 2007 (42 plate appearances)...hit his first-career triple in the 14th inning on June 6 at SEA, before scoring the game-winning run on Yuli Gurriel's sac-fly ...flew around the bases at 30.5 feet/second, and made it from the batters box to third base in 11 seconds flat for the fastest triple by an Astros player in the Statcast era (since 2015)...made the Astros ALDS roster but did not appear in a game.
Made his Major League debut with the Astros as a September call-up...played in nine games in the outfield, making two starts (1 in LF, 1 in RF)...pinch-ran four times, scoring three runs, with one stolen base as a pinch-runner...per Statcast, posted an average sprint speed of 25.8 feet per second, the top mark on the club... began the season at Double A Corpus Christi before moving up to Triple A Fresno in June...was selected to the Astros Major League roster on Sept. 15...made his Major League debut on Sept. 15 vs. ARI as a pinch-runner... scored the first run of his career on Sept. 21 vs. LAA...recorded his first-career steal on Sept. 22 vs. LAA...went 2x3 in his first Major League start on Sept. 26 at TOR, going 2x3...recorded his first-career hit on a single in the 5th inning...homered in his next start on Sept. 29 at BAL in Game 2 of Houston's doubleheader...made the Astros roster for the ALDS...did not get an at-bat, but scored a run and a stole a base in two games...entered both games as a pinch-runner (Games 1 and 2)...split his minor league season between Triple A Fresno (66g) and Double A Corpus Christi (65g), combining to hit .291 (150x516) with 95 runs, 17 doubles, six triples, one homer, 31 RBI and a .381 OBP...led all of minor league baseball with 70 stolen bases...went 70-for-79 in steal attempts (88.6%)...marked the most steals by an Astros minor league player since Delino DeShields Jr. swiped 101 bags in 2012...had separate five-hit games at Double A, going 5x5 on May 26 vs. Tulsa and 5x5 on April 21 at Frisco...was a Texas League Midseason All-Star.
Received Class A Advanced Carolina League Midseason and Postseason All-Star recognition after hitting .295 (129x437) with 36 steals and a .412 onbase percentage in 114 games with Buies Creek...led the Carolina League in on-base percentage...was promoted to Double A at the end of the season, playing in 13 games with the Hooks...named the MiLB.com Carolina League Player of the Month for June...hit .375 (36x96) with 12 steals and a .958 OPS (.479 OBP/.479 SLG) in 24 games during the month.
Tabbed by Baseball America as a Low Class A All-Star after leading the minors with a .358 (124x346) batting average...added 21 steals and a .423 on-base percentage in a season at Class A Quad Cities (68g) and Class A Advanced Lancaster (19g)...named Quad Cities Player of the Month for June and July...hit .326 (28x86) in June, and .423 (44x104) with a .478 OBP in July.
Hit .268 (56x209) with 22 stolen bases and a .355 on-base percentage in 58 games with Rookie Level Greeneville.