Engineer F/H: Development of a Software Architecture

Inria
Canton of Talence, France
27 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Compensation
€ 32K

Job location

Remote
Canton of Talence, France

Tech stack

Information Theory
Software Engineering
Enterprise Software Applications

Job description

With the help of Alexandra Jurgens (Inria) and a to-be-recruited postdoctoral researcher (Inria), the recruited engineer will work to analyze an existing code base and identify the relevant code to be incorporated into a package appropriate for broad dissemination. The requirements for the package will be formalized in discussion with the team, but at minimum this package will perform kernel embedding of conditional distributions on arbitrary time series input, perform dimension reduction, and produce basic visualization. Additional goals for this position are to perform iterative improvements to the package, including but not limited to: the ability for end users to select hyper-parameters 'on the fly', an advanced visualization suite, and the integration of new mathematical methods (for instance, calculation of new statistical descriptors) as developed together with the team., Responsibilities : The person recruited will be responsible for software development and will adopt best practices from the team including continuous integration and reproducibility.

Requirements

Technical skills: A major activity of this work is software development and publishing in Python. Knowledge of (or interest in learning) software engineering best practices is required. The best candidate would be excited to play an active role in identifying new technologies to improve the software package during development.

Interdisciplinary skills: Ability to communicate with colleagues from mathematics, physics, and ecology will be necessary. In particular, interest in physics-especially in complexity, chaos, information theory, and/or stochastic thermodynamics-or nonlinear dynamics would be an advantage.

Languages: Candidates must be at ease in scientific English and eager to publish their results in scientific journals. The team uses English.

Benefits & conditions

We are developing a software package based on existing code that implements our inference algorithm using kernel embedding of conditional probability distributions [4, 8]. The algorithm takes in arbitrary time series (including observations from multiple sources or heterogeneous data) and returns the inferred causal state set in the form of similarity matrices, which are then dimension reduced for visualization and analysis [8]. This software package is to be disseminated to the public. It is also to be used in the framework of a partnership between Inria and Inrae to improve modeling of carbon flux dynamics in ecosystems.

[1] P.W. Anderson. More is different. Science, 177(4047):393-396, August 1972.

[2] M. Gu, C. Weedbrook, A. Perales, and M. Nielsen. More really is different. Physica D, 238(9-10):835-839, May 2009.

[3] James P. Crutchfield. The calculi of emergence: Computation, dynamics, and induction. Physica D, 75:11-54, 1994.

[4] Nicolas Brodu and James P. Crutchfield. Discovering causal structure with reproducing-kernel Hilbert space \epsilon-machines. Chaos: An Interdisciplinary Journal of Nonlinear Science, 32(2):023103, 02 2022.

[5] Samuel P. Loomis and James P. Crutchfield. Topology, convergence, and reconstruction of predictive states. Physica D: Nonlinear Phenomena, 445:133621, 2023

[6] C. R. Shalizi. Causal Architecture, Complexity and Self-Organization in Time Series and Cellular Automata. PhD thesis, University of Wisconsin, Madison, Wisconsin, 2001., * Document use cases and define test cases based on interviews and conversations with team

  • Analyze existing code and identify code to be incorporated into the package
  • Define and implement a software package that meets required use cases and is validated on test cases, with appropriate documentation
  • Disseminating as a package on a PyPi
  • Iteratively improve package based on new methods developed in discussion with the rest of the team

Additional activities:

  • Present progress of ongoing work to colleagues and partners
  • Suggest new directions for package improvements based on technical knowledge
  • Discuss with scientific collaborators, * Subsidized meals
  • Partial reimbursement of public transport costs
  • Possibility of teleworking and flexible organization of working hours
  • Professional equipment available (videoconferencing, loan of computer equipment, etc.)
  • Social, cultural and sports events and activities
  • Access to vocational training
  • Social security coverage

Apply for this position