Koshwal attended Boyz II Men Academy in Chicago. He averaged a double-double in each of his three high school seasons – 15 points and 10 rebounds as a sophomore, 18 points and 15 rebounds as a junior and 18 points and 10 boards as a senior.
In 58 career games over his freshman and sophomore seasons, Koshwal averaged 12.0 points and 9.1 rebounds while starting 56 times. He totaled 16 double-doubles and 42 career games in double-figures. Koshwal ranked among DePaul's all-time leaders in rebounding average (t11th – 9.1 rpg) and field goal percentage (t12th – .514).
In April 2009, Koshwal declared for the 2009 NBA draft, but he later withdrew his name and returned to DePaul for his junior season.
Koshwal played in 36 games during his junior season, averaging 16.1 points, 10.1 rebounds, 2.0 assists and 1.8 steals per game. In April 2010, he declared for the 2010 draft, forgoing his final year of college eligibility.
After going undrafted in the 2010 NBA draft, Koshwal joined the Detroit Pistons for the 2010 NBA Summer League. He later signed with La Laguna Socas Canarias of Spain for the 2010–11 season. In 25 games for Canarias, he averaged 7.3 points and 4.5 rebounds per game.
On November 3, 2011, Koshwal was drafted with the eighth overall pick in the 2011 NBA Development League Draft by the Bakersfield Jam. However, his contract was later terminated by the Jam on November 23 prior to the start of the regular season.
In July 2012, Koshwal joined the New Orleans Hornets for the 2012 NBA Summer League. On November 1, 2012, he was reacquired by the Bakersfield Jam, but was waived again prior to the regular season.
On April 30, 2013, Koshwal signed with the Rochester Razorsharks for the rest of the 2013 PBL season. He went on to help the team reach the Finals, where they were defeated 2–0 by the Bloomington Flex.
On September 28, 2013, Koshwal signed with the Philadelphia 76ers. However, he was later waived by the 76ers on October 25 after appearing in three preseason games. On November 2, he was reacquired by the Bakersfield Jam. In 49 games for the Jam in 2013–14, he averaged 7.2 points, 6.2 rebounds and 1.2 assists per game.
Koshwal returned to the Jam for the 2014–15 season and averaged 11.0 points, 10.0 rebounds, 1.9 assists and 1.6 steals in 54 games. On November 27, 2015, he was again reacquired by the Jam.
On January 12, 2016, Koshwal was traded to the Santa Cruz Warriors in exchange for the rights to Dominique Sutton. He made his debut for the Warriors later that night in a 101–91 loss to the Idaho Stampede, recording four points, two rebounds and one steal in 20 minutes of action off the bench. On March 24, he was waived by Santa Cruz.
Koshwal is the son of Martion Koshwal and Franda Akja.