back-end developer
Role details
Job location
Tech stack
Job description
We are looking for a back-end developer to grow our development team. The candidate must be fluent in the Python programming language, with a strong interest in Free/Open Source Software (FOSS). The candidate will join our archive development team to work first on optimization of our current git ingestion platform and on expanding the archival to new sources of source code., As a member of the Software Heritage team, the candidate will participate in the software development of the Software Heritage platform. As part of this position the candidate will primarily work on:
- implementing new Software Heritage features according to project roadmap and specifications provided by the management team,
- maintaining a healthy code base using state-of-the-art software development best practices (DVCS, continuous integration, unit tests, refactoring, documentation, code review, etc.),
- actively participating in the FOSS communities of software components used by Software Heritage,
- design the architecture of upcoming components of the Software Heritage software ecosystem.
Requirements
The candidate should have experience in participating in existing FOSS projects, in any capacity (developer, community organizer, technical writer, etc.). According to the candidate experience, we expect self-organisation and autonomy skills. Software development good practices should be well known or mastered, especially in the context of FOSS development.
The candidate will be:
- fluent with Python and Python ecosystem tools (pypi, pip, virtualenvs, etc.),
- familiar with the GNU/Linux environment, preferably Debian (or derived distros),
- rigorous in day-to-day organisation, especially using know software forge (GitLab, GitHub, etc.),
- comfortable with the customs of FOSS development communities (distributed organization, IRC and mailing list based communication, sprints, etc.)
This set of skills is expected:
- Python
- Good knowledge of GNU/Linux systems
- Working knowledge of Postgres or other RDBMS
- Working knowledge of distributed software architectures
- Design principles of REST and microservices architectures
- Working knowledge of container technologies (docker, docker-compose, kubernetes, etc.).
- Good English level (written and oral)
- Good relational and communication skills
Knowledge and experience with the following will be considered a plus:
- Experience with large scale object storage solutions (Ceph, Cloud-based blob storage, ZFS, Swift, etc.)
- Rust programming language
- Functional programming
- Experience with distributed scheduling technologies (RabbitMQ, Kafka, etc.)
Benefits & conditions
We are a team of 15 people, including 9 technical staff (5 developers and 4 sysadmins). Autonomy, transparency and consultation are at the heart of our values (the project is free and Open Source).
Most of the team is based at the Inria center in Paris, but the position is open to any location in France close to an Inria center (Bordeaux, Lille, Lyon, Grenoble, Rennes, Saclay, Sofia Antipolis, Nancy).
The contract is a 2-year renewable full-time fixed-term contract, with the prospect of permanent employment.
- Telecommuting: 90 days/year (average 2 days a week)
- Vacation: 35 days + 10 days RTT
- Salary range: 30 to 70 k€ depending on profile and experience.