I study how people interact with their computing systems, and how computing systems can be leveraged to augment human capabilities. My research focuses on complex activities that require the use of elaborate software integrating diverse functions. I have contributed to reduce human errors, extend user capabilities, and facilitate critical users tasks. My approach can be broken down in three main categories: expressive interaction techniques, investigating how to adapt interaction to the constraints of challenging environments, and how automation and artificial intelligence can augment user capabilities.