He was born in Kapchorwa. By June 2006 he had run the 800 metres in 1:45.0 minutes, at a meet in Kampala. With this he was the season's world leader for juniors—athletes aged nineteen and less. With electronic timing his best time was 1:45.44 minutes, achieved in a meet in Heusden. He competed at the 2006 World Junior Championships in Beijing, and won the bronze medal, having led the race halfway through but been outsprinted near the end by two Kenyan runners. In the 2006–07 indoor season he ran the 800 metres in 1:46.91 minutes in Stuttgart. This was a Ugandan indoor record. He opened the outdoor season by winning the IAAF Grand Prix in Dakar. He also won the Grand Prix meet in Hengelo, and finished third at the Super Grand Prix meet in Doha, the Golden Spike Ostrava and the Bislett Games. Then, in July 2007 he achieved a new personal best time of 1:44.78 minutes at the Grand Prix meet in Athens. A fifth place at the All-Africa Games was followed by the entrance in the 2007 World Championships. Chepkirwok reached the final round, and in an unusually tight race, where all eight runners finished in the range of 1 minute 47 seconds, Chepkirwok finished fourth with 1:47.41. This was 0.02 seconds behind the bronze medalist, and 0.01 second ahead of the fifth placer. Rounding off the season, Chepkirwok finished seventh at the 2007 World Athletics Final. In the 2007–08 indoor season Chepkirwok competed at the 2008 World Indoor Championships. He reached the semi-final round, finished fourth there but did not progress to the final. During the summer he performed better. He opened with a second place in Doha, then won the ISTAFGolden League meet in Berlin. He then finished second at the Grand Prix meets in Madrid and Athens, and won the Super Grand Prix meet in Crystal Palace, London. In Madrid he had achieved a personal best time is 1:43.72 minutes, which is also the Ugandan record. Entering the 2008 Olympic Games, then, Chepkirwok was the only middle distance runner in the Ugandan squad. In the 800 metres competition he did not reach the final, however. He rounded off the season with a second place at the 2008 World Athletics Final. In early 2009 it was announced that Chepkirwok was a candidate for the title Ugandan Athlete of the Year. He eventually finished second runner-up for the award, behind Moses Kipsiro and Benjamin Kiplagat. In February 2009 he set a national indoor record in the 1000 metres, running in 2:18.18 minutes in Stuttgart. Chepkirwok is represented by PACE Sports Management, and is coached by Ricky Simms.