Software Engineer, Canonical
Oct, 2021 - Present
Working mainly on Ubuntu Core and system snaps, and as well as helping on Snapd.
I am a software engineer, C++ developer, FOSS contributor, build expert, hardware enthusiast, with an academic background in programming languages.
Software Engineer, Canonical
Oct, 2021 - Present
Working mainly on Ubuntu Core and system snaps, and as well as helping on Snapd.
Software engineer, Codethink
Jun, 2018 - Sep, 20213 years 3 months
Working as consultant to help customers on build, CI and deployment systems. Improving FOSS tooling for building software.
Developer, Vizrt
Aug, 2011 - Jun, 20186 years 10 months
Working on the Media Sequencer which is a soft real-time middleware.
Researcher, Uni Research
Jan, 2011 - Dec, 201111 months
I have been making an automated concept-based testing C++11 library to demonstrate the power of concepts as specification, and concept-driven development.
Researcher, University of Bergen
Jan, 2010 - Dec, 201011 months
The big part of my research was to explore the use of expression templates applied to generic program transformation, expressing concepts for Stratego/XT, Rascal and other similar project into a pure C++ library. The project coming with a bootstrapped generalized LL parser generator.
Part-time engineer, University of Bergen
Mar, 2009 - Dec, 20099 months
Helping on project project Magnolia, which is an experimental programming language. Along with being teaching assistant while finishing my PhD.
Intern, Lawrence Livermore National Laboratory
May, 2007 - Oct, 20075 months
Under supervision of Dan Quinlan on ROSE.
I developed a ROSE backend for Stratego/Spoofax. ROSE is a framework for C++ source analysis and transformation. Stratego is a programming language for program transformation.
Intern, LIP6
Jan, 2005 - Jun, 20055 months
Under supervision of Mikal Ziane on RNTL Lutin (Automatic refactoring)
Automatic refactoring of Java source code based on violation of rules written in hybrid modal logic.
Intern, Télécom Paris
Sep, 2003 - Feb, 20045 months
Under supervision of Jacques Sakarovitch and Sylvain Lombardy on Vaucanson (Generic finite state machine framework)
XML serialization of finite state machines.
Nov, 2019 - Present
Contributing on GNOME OS and GNOME build metadata. I mainly work on the boot, secure boot, encryption and updates.
Oct, 2017 - Present
Freedesktop SDK is the runtimne of Flatpak applications. I have done the migration from Yocto+Flatpak-Builder to BuildStream. I have been a maintainer.
Computer science, PhD, University of Bergen
Jan, 2005 - Jan, 2009
Computational Science and Images, Engineer's degree, École pour l'Informatique et les Techniques Avancées
Jan, 2000 - Jan, 2005
Testing with Axioms in C++ 2011 , Journal of Object Technology
Published on: Jan 01, 2011
Unit testing is an important part of modern software development, where individual code units are tested in isolation. Such tests are typically case-based, checking a likely error scenario or an error that has previously been identified and fixed. Coming up with good test cases is challenging, particularly when testing generic code, and focusing on individual tests can distract from creating tests that cover the full functionality. Concepts provide a generic way of describing code interfaces for generic code. Together with axioms, program behaviour can be specified algebraically in a formal or semi-formal way. In this paper we show how concepts and axioms can be expressed in standard C++ 2011, and explore how to generate generic unit tests, by treating the axioms as code to be evaluated with test data. We also show a generic way to generate test data for axiom-based testing in C++ 2011.
C-Transformers: a framework to write C program transformations , ACM's Crossroads
Published on: Mar 01, 2006
Program transformation techniques have reached a maturity level that allows processing high-level language sources in new ways. Not only do they revolutionize the implementation of compilers and interpreters, but with modularity as a design philosophy, they also permit the seamless extension of the syntax and semantics of existing programming languages. The C-Transformers project provides a transformation environment for C, a language that proves to be hard to transform. We demonstrate the effectiveness of C-Transformers by extending C’s instructions and control flow to support Design by Contract. C-Transformers is developed by members of the LRDE: EPITA undergraduate students