Shi hatte seinen ersten internationalen Erfolg bei den Juniorenweltmeisterschaften 2011 in Courmayeur. Dort gewann er über 1000 m und im 1500 m Superfinale jeweils die Bronzemedaille. Seine ersten Weltcuprennen lief er in der Saison &lt;a href="Shorttrack-Weltcup%202011/12"&gt;2011/12&lt;/a&gt; in Salt Lake City. Dabei belegte er den 25. und den 16. Platz über 1500 m. Bei den Olympischen Winterspielen 2014 in Sotschi holte er die Bronzemedaille mit der Staffel. Zudem errang er den 35. Platz über 1500 m. Im März 2014 gewann er bei den Weltmeisterschaften in Montreal die Silbermedaille im 3000 m Superfinale. In der Saison &lt;a href="Shorttrack-Weltcup%202014/15"&gt;2014/15&lt;/a&gt; erreichte er in Dresden mit dem dritten Platz mit der Staffel seine erste Podestplatzierung im Weltcup. Beim folgenden Weltcup in Erzurum holte er mit der Staffel seinen ersten Weltcupsieg. In der Saison kam er bei allen Teilnahmen im Einzel über 500 m unter die ersten Zehn und erreichte damit den siebten Platz im Gesamtweltcup über 500 m. Bei den Weltmeisterschaften 2015 in Moskau gewann er Bronze über 1000 m. Zu Beginn der Saison &lt;a href="Shorttrack-Weltcup%202015/16"&gt;2015/16&lt;/a&gt; erreichte in Montreal mit dem zweiten Rang über 1000 m seine erste Weltcuppodestplatzierung im Einzel. Dort holte er ebenfalls mit der Staffel seinen zweiten Weltcupsieg. Im weiteren Saisonverlauf kam er mit der Staffel einmal auf den zweiten und einmal auf den dritten Platz. Die Saison beendete er auf dem sechsten Rang im Gesamtweltcup über 1000 m. Beim Saisonhöhepunkt den Weltmeisterschaften 2016 in Seoul holte er die Goldmedaille mit der Staffel. Im folgenden Jahr gewann er bei den Winter-Asienspielen in Sapporo ebenfalls die Goldmedaille mit der Staffel.