Internship - Memory-bounded traversals for large Irmin graphs

Tarides 

Tarides is a tech start-up founded in Paris in 2018 by pioneers of programming languages and cloud computing. Tarides develops a software infrastructure platform to deploy secure, distributed applications with strict resource constraints and low-latency performance requirements. Today, Tarides is composed of a diverse team of 35+ people.

Tarides has been part of the Founder program of Station F in 2018 (6% acceptance rate) and has been selected in France within “Concours d’Innovation i-Lab” organized by the French Ministry of Higher Education, Research and Innovation in partnership with Bpifrance (15% acceptance rate). This national contest awards company creation and innovative technologies. Tarides was also recognised during the FIC 2020 fair (International Cybersecurity Forum) which is the leading European event on cybersecurity. These awards acknowledge the innovation of the solutions developed by Tarides and emphasize the interest from the cybersecurity community.”


Internship at Tarides 

Tarides internships are an excellent opportunity to participate in open-source functional programming with tangible real-world applications.

Our interns each work on a personal project that will have a meaningful impact on the project and the wider OCaml open-source ecosystem. Each intern is assigned a mentor at Tarides to give advice and guidance when necessary. Below are ideas for potential internship topics. These are intended as suggestions only; if you're excited about a particular aspect of our work at Tarides, let us know and we'll do our best to accommodate you.


Context

Irmin stores objects as DAGs. As the store grows, the size of the graphs become quite large and cannot be traversed with limited memory. Several applications in Irmin need to traverse the store: exporting a snapshot containing the last commit, garbage collection copies all alive objects in a new fresh, clean store, integrity checks that verify the arrows between parents and children and the integrity of each node in the graph. Depending on the application, several strategies are possible: using lrus, bloom filters, partitioning the graph and visiting it in several passes, or using the disk as a backup to the memory.

The goal of the internship is to investigate efficient graph traversals of large Irmin graphs and propose alternatives depending on additional constraints (time, IOs, number of times objects are visited, etc).

    Resources

    - Memory bounded marking for GC in section 4 of GC for Irmin

    - Memory bounded graph traversal using the disk and with minimal IO

     

    Qualifications 

    (You don’t have to fill 100% of the qualifications to apply.)

    - Non-trivial functional programming experience

    - Ability to read scientific publications and implement concepts described in them

      

    What we offer

    Nice office in Paris (Place de la Contrescarpe, Paris 5)

    • Flexible working hours and possibility to work remotely
    • Supportive team environment with experienced Technical and Team Leads
    • A “ticket restaurant” card 
    • 100% of public transportation pass reimbursed


    Process

    If shortlisted, you will have two online interviews starting with a general interview, followed by a technical interview. 

    We welcome applications from people of all backgrounds. We strive to create a representative, inclusive and friendly team, because we know that different experiences, perspectives and backgrounds make for a better workplace.

    Apply