Pracował jako samodzielny fizyk w Instytucie Fizyki UJ w latach 1985-86, specjalista w Uczelnianym Ośrodku Elektronicznej Techniki Obliczeniowej Akademii Rolniczej w Krakowie (1987-1990), w Instytucie Informatyki UJ (1990-1991 jako specjalista, 1991-2000 na stanowisku asystenckim, 2000-2009 na stanowisku adiunkta, 2009-2010 na stanowisku starszego wykładowcy, 2010-2012 na stanowisku adiunkta habilitowanego, od 1 marca 2012 do 30 września 2012 na stanowisku profesora nadzwyczajnego). W 1993 roku odbył tygodniowy staż naukowy na Politechnice w Atenach w ramach programu SOCRATES. Następnie w ramach tego samego programu i na tej samej uczelni odbył dwa staże: 5-miesięczny w 1994 roku oraz 7-tygodniowy w 1995 roku. W 1999 roku był zatrudniony jako adiunkt na Uniwersytecie Illinois w Chicago.