Skip to content

Instantly share code, notes, and snippets.

@valentindavid
Last active November 13, 2023 14:54
Show Gist options
  • Save valentindavid/683398df99fcb02d6b9d4aee376af381 to your computer and use it in GitHub Desktop.
Save valentindavid/683398df99fcb02d6b9d4aee376af381 to your computer and use it in GitHub Desktop.
{
"meta": {
"theme": "elegant"
},
"awards" : [],
"basics" : {
"summary": "I am a software engineer, C++ developer, FOSS contributor, build expert, hardware enthusiast, with an academic background in programming languages.",
"email" : "me@valentindavid.com",
"location" : {
"city" : "Bergen",
"countryCode" : "NO"
},
"name" : "Valentin David",
"profiles" : [
{
"network" : "Twitter",
"username" : "@valentindavid"
},
{
"network" : "LinkedIn",
"url" : "https://www.linkedin.com/in/jesus/"
},
{
"network" : "Gitlab.com",
"username" : "valentindavid"
},
{
"network" : "Github.com",
"username" : "valentindavid"
}
],
"url": "https://valentindavid.com"
},
"certificates" : [],
"education" : [
{
"institution": "University of Bergen",
"area": "Computer science",
"studyType": "PhD",
"startDate": "2005",
"endDate": "2009"
},
{
"institution": "École pour l'Informatique et les Techniques Avancées",
"area": "Computational Science and Images",
"studyType": "Engineer's degree",
"startDate": "2000",
"endDate": "2005"
}
],
"interests" : [],
"languages" : [
{
"language": "French",
"fluency": "Native"
},
{
"language": "English",
"fluency": "Fluent"
},
{
"language": "Norwegian",
"fluency": "Elementary"
}
],
"projects" : [
{
"name": "GNOME Foundation",
"url" : "https://gnome.org",
"roles": [
"Member"
],
"startDate" : "2019-11",
"description": "Contributing on GNOME OS and GNOME build metadata"
},
{
"name" : "Freedesktop SDK",
"url" : "https://freedesktop-sdk.io",
"description" : "Freedesktop SDK is the runtimne of Flatpak applications. I have done the migration from Yocto+Flatpak-Builder to BuildStream. I have been maintaining it since.",
"startDate" : "2017-10",
"roles" : [
"Maintainer"
],
"type" : "FOSS project"
}
],
"publications" : [
{
"name": "Testing with Axioms in C++ 2011",
"publisher": "Journal of Object Technology",
"releaseDate": "2011",
"url": "http://dx.doi.org/10.5381/jot.2011.10.1.a10",
"summary": "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."
},
{
"name": "C-Transformers: a framework to write C program transformations",
"publisher": "ACM's Crossroads",
"releaseDate": "2006-03",
"url": "https://doi.org/10.1145/1144366.1144369",
"summary": "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"
}
],
"references" : [],
"volunteer" : [],
"skills": [],
"work" : [
{
"startDate": "2021-10",
"name": "Canonical",
"company": "Canonical",
"position": "Software Engineer",
"summary": "Working on Ubuntu Core"
},
{
"startDate": "2018-06",
"endDate": "2021-09",
"name" : "Codethink",
"company" : "Codethink",
"position" : "Software engineer",
"summary" : "Working as consultant to help customers on build, CI and deployment systems. Improving FOSS tooling for building software."
},
{
"startDate" : "2011-08",
"endDate" : "2018-06",
"location" : "Bergen, Norway",
"name" : "Vizrt",
"company" : "Vizrt",
"position" : "Developer",
"summary" : "Working on the Media Sequencer which is a soft real-time middleware."
},
{
"startDate" : "2011-01",
"endDate" : "2011-12",
"location" : "Bergen, Norway",
"name" : "Uni Research",
"company" : "Uni Research",
"position" : "Researcher",
"summary" : "I have been making an automated concept-based testing C++11 library to demonstrate the power of concepts as specification, and concept-driven development."
},
{
"startDate" : "2010-01",
"endDate" : "2010-12",
"location" : "Bergen, Norway",
"name" : "University of Bergen",
"company" : "University of Bergen",
"position" : "Researcher",
"summary" : "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."
},
{
"startDate" : "2009-03",
"endDate" : "2009-12",
"location" : "Bergen, Norway",
"name" : "University of Bergen",
"company" : "University of Bergen",
"position" : "Part-time engineer",
"summary" : "Helping on project project Magnolia, which is an experimental programming language. Along with being teaching assistant while finishing my PhD."
},
{
"startDate" : "2007-05",
"endDate" : "2007-10",
"location" : "Livermore, CA, USA",
"name" : "Lawrence Livermore National Laboratory",
"company" : "Lawrence Livermore National Laboratory",
"position" : "Intern",
"summary" : "Under supervision of Dan Quinlan on ROSE.\nI 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."
},
{
"startDate" : "2005-01",
"endDate" : "2005-06",
"location" : "Paris, France",
"name" : "LIP6",
"company" : "LIP6",
"position" : "Intern",
"summary" : "Under supervision of Mikal Ziane on RNTL Lutin (Automatic refactoring)\nAutomatic refactoring of Java source code based on violation of rules written in hybrid modal logic."
},
{
"startDate" : "2003-09",
"endDate" : "2004-02",
"location" : "Paris, France",
"name" : "Télécom Paris",
"company" : "Télécom Paris",
"position" : "Intern",
"summary" : "Under supervision of Jacques Sakarovitch and Sylvain Lombardy on Vaucanson (Generic finite state machine framework)\nXML serialization of finite state machines."
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment