Opportunity: Cython+ Developer

  • Last Update:2021-02-22
  • Version:001
  • Language:en

Details

  • Task:Efficient compilation of Python using type-interference
  • Preferred location:Lille, Paris
  • Type:Internship
  • Function:Developer
  • Duration:3-6+ Months/Permanent
  • Reference:Offer-2021-Cython

Description

Nexedi offers internships for students or future engineers interested in open source software with possible employment at the end of the internship. The content of each internship is adapted to each personality and to the duration of the internship.

These internship topics can also be the first mission when hiring a confirmed developer on a permanent contract who is already heavily involved in the field of open source software.

We are currently working on a version of Cython with automatic memory management, GIL-less operation and type inference. Cython is the language in which a large part of scikit-learn or the lxml library is written. Progress on Cython+ is already quite advanced. They are referenced on the site : https://www.cython.plus/

Today we are able to write programs in Cython+ that have performance and multi-core execution properties comparable or superior to equivalent programs in Go or Rust. We also manage to compile Cython+ code without depending on the CPython runtime and therefore without latency at launch: https://lab.nexedi.com/xavier_thompson/scan-filesystem

We would now like to move forward in three directions :

  • validate the "no lock" concurrent model
  • extend the standard Cython+ library
  • automate python code type analysis

We introduced in 2020 a competitive execution model without locks, inspired by Rust and Pony, after finding that the locks previously used led to execution congestion at the CPU level. We wish to explore this model in 2021 and validate it in a practical or theoretical way.

We wish to extend the standard library of Cython+ to have tools similar to those available with the standard library of Python in the input/output domain. 

We would also like to be able to automatically detect, through static analysis, subsets of python code that can be compiled in Cython+ with good performance. The idea, sometimes called progressive typing, is to be able to significantly accelerate large python code bases automatically, without losing the ability to "script", as is the case in go for example. We are particularly interested in the work of LIP6 in this field: https://rmonat.fr/ 

References

About Nexedi

Nexedi is (probably) the leading European open source software publisher with a portfolio of open source technologies of more than 15 million lines of code. Nexedi's open source software makes it possible to avoid any dependence on GAFAM in the field of enterprise computing. They also enable telecom networks to be deployed on open source hardware and with open source software

Liste des principaux logiciels libres de Nexedi

Extras

We have a zen office with adjacent appartment for remote workers visiting. Office perks include, rubbber ducks to pose your questions, trips to development sprints, office barbecue, quality sustainable coffee and hand-picked tea from our Japanese and Chinese colleagues plus all kind of French tickets we qualify for (Resto, Cadeaux, Wiismile).

Interested?

We would be happy to hear from you, so drop us a line (along with your CV) at jobs(at)nexedi.com and we will get in touch with you.

Nexedi SA
147 Rue de Ballon
59110 La Madeleine
France

Phone+33 629 02 44 25
Mailinfo@nexedi.com
Webwww.nexedi.com