Vieira was born in Lisbon in 1979 where he started his academic career. He graduated in Computer Science Engineering at the New University of Lisbon in 2002 and received his PhD in Computer Science also from the New University of Lisbon in 2010. From 2010 up to 2014 he served as an assistant professor at the New University of Lisbon and at the University of Lisbon. His research interests include programming language approaches for concurrent distributed systems, in particular rigorous software verification techniques. Vieira adds to his teaching interests fundamental programming methodologies and algorithms.