Solista Opery i Filharmonii Podlaskiej. Współpracuje z najważniejszymi scenami operowymi w Polsce, m.in. z Teatrem Wielkim Operą Narodową w Warszawie, gdzie występował w Umarłym Mieście E.W. Korngolda (Frank/Pierrot), Madame Butterfly G. Pucciniego (Sharpless), Królu Rogerze K. Szymanowskiego (Edrisi) oraz Halce S. Moniuszki (debiut w roli Janusza) w reżyserii M. Trelińskiego. Jest wieloletnim solistą Opery Bałtyckiej w Gdańsku, a na scenie tego teatru występował w licznych spektaklach reżyserowanych przez Marka Weissa (Grzesińskiego), takich jak: Carmen G. Bizeta (Escamillo), Eugeniusz Oniegin P. Czajkowskiego (Oniegin), Madame Curie E. Sikory (Langevin), Otello G. Verdiego (Jago), Così fan tutte W.A. Mozarta (Guglielmo). Na scenie gdańskiej opery wystąpił również w Graczach D. Szostakowicza w reż. Andrzeja Chyry oraz w Ubu Rex K. Pendereckiego w reż. J. Wiśniewskiego. Udany debiut w Operze Wrocławskiej w tytułowej roli w Eugeniuszu Onieginie przyniósł angaże do kolejnych produkcji. Tomasz Rak wystąpił m.in. w Poławiaczach pereł G. Bizeta (Zurga), Cyruliku sewilskim G. Rossiniego (Figaro), Kopciuszku G. Rossiniego (Dandini), a także jako Escamillo w widowisku operowym Carmen zrealizowanym na Stadionie Śląskim we Wrocławiu dla 25-tysięcznej widowni. Artysta współpracuje również z Teatrem Wielkim w Łodzi, gdzie kreował role: Figara w Cyruliku sewilskim G. Rossiniego, Eisensteina w Zemście nietoperza J. Straussa oraz Maksimiliana w Kandydzie L. Bernsteina. W Operze i Filharmonii w Białymstoku wystąpił dotąd w Cyganerii G. Pucciniego (Marcello), Zemście nietoperza J. Straussa (Eisenstein), Wesołej wdówce F. Lehára (Daniło) oraz Via Crucis/Cavalleria rusticana P. Łukaszewskiego / P. Mascagniego (Alfio).