José Proença

José Proença

Senior Researcher


I am currently a postdoc at CISTER, ISEP, Portugal, working on formal models for component-based systems. Until January 2019 I worked in HASLab, INESC TEC & University of Minho, working with Luís Barbosa, and was affiliated with Distrinet, KU Leuven, until January 2016, working mainly with Danny Hughes and Dave Clarke. My work has been mainly on coordination of distributed components, often associated to the Reo coordination language, and on formal approaches to software product line engineering. More recently I have been working on component models for embedded devices in the context of the LooCI middleware and micro PnP (now part of VersaSense), and in the context of the VirtuosoNext RTOS.

Before I graduated in University of Minho, Portugal, for a 5 year degree in Mathematics and Computer Science. I studied abroad for 6 months as an Erasmus student in Bristol University, UK. I defended my PhD in Leiden University in May 2011, for my work carried in CWI, Amsterdam, in the group for Foundations of Software Engineering.


  • Formal methods
  • Concurrency
  • Coordination
  • Software engineering
  • Software product lines
  • Real-time Embedded systems
  • Programming in Scala


  • PhD in Concurrent & Distributed Computing, 2011

    Leiden University, the Netherlands

  • BSc+MSc in Mathematics & Computer Science, 2005

    University of Minho, Portugal

Research Experience


Senior Researcher


Feb 2019 – Present Porto, Portugal
Coordination and monitoring of components in Cyber-Physical Systems

Post-doctoral Researcher

HasLAB (INESC TEC & Univ. Minho)

Nov 2015 – Jan 2019 Braga, Portugal
Coordination and monitoring of components in Cyber-Physical Systems

Post-doctoral Researcher

DistriNet (KU Leuven)

Feb 2010 – Oct 2015 Leuven, Belgium
Specification and analysis of both variability in a concurrent language and component models for embedded devices.

PhD Researcher

CWI (Leiden)

Jan 2006 – Dec 2009 Amsterdam, the Netherlands
Synchronous Coordination of Distributed Components

Teaching Experience


Invited Assistant Professor


Sep 2019 – Present Porto, Portugal

Lab lessons for the following topics:

  • APROG Introductory course on Algorithms and Programming
  • SCOMP Concurrency control mechanisms in C

Invited Assistant Professor

University of Minho

Feb 2016 – Feb 2019 Braga, Portugal

  • Software Architecture and Design Calculi (MSc level) - Prepared and lectured (2016, 2017, 2018)

  • Mathematics for Computer Science (requalification of software scientists) Prepared and lectured (2017).

  • In charge of lab classes of the courses:

    • Functional Programming (2016/17 and 2017/18);
    • Laboratory of Informatics I - functional programming (2016/17, 2017/18, 2018/19);
    • Laboratory of Informatics II - imperative programming (2017/18);
    • Program Calculation - advanced functional programming (2016/17).

Post-doctoral Researcher

KU Leuven

Feb 2010 – Oct 2015 Leuven, Belgium

  • P&O - Practical project with constrained devices (13/14, 14/15)
  • SWOP - Software design in object-oriented languages (11/12, 12/13, 13/14)
  • CPL - Comparative Programming Languages (12/13)
  • BS - Operating Systems (12/13)
  • OGO - Introduction to the object-oriented paradigm (11/12)