Internship : Interactive source code view in Odoc

Intern / Student, Full-time · Paris, Remote, Cambridge, Chennai

Your Mission

Success Criteria

  • Source code view displays the expression type on mouse hover.

  • Source code view reacts to clicks by redirecting the user to the implementation.

  • Clicking on a symbol displays a menu dialog to choose to go to definition, to documentation, or to the symbol occurrences.


Background


Odoc 3 added a powerful feature which links documentation entries to their definition in the source code. It provides syntax highlighting , a file explorer sidebar to help users navigate, and partial support for go-to-implementation. To increase usability and traversals of the source code, the goal of this internship is to further develop the interactive elements in the source code view. This builds on top of existing Odoc 3 features to cover the main navigation needs.


Tasks

  • Understand Odoc 3 source code generation and how it's integrated with the go-to-definition links in the documentation.

  • Complete the implementation of Odoc 3 go-to-definition to link source code symbols to their implementation.

  • Combine the highlighted source code with the OCaml compiler `cmt` files, which contains a typed AST, to produce on hover type hints.

  • Learn to use Odoc 3 occurrences to generate a list of occurrences in the rest of the project

  • Develop a contextual menu offering more navigation options to users: go to definition, to documentation, and to occurrence usage list.

Your profile

Skills

  • Experience programming in a functional language, ideally OCaml

  • Experience with ASTs and datastructures traversal

  • Basic experience with web development (html, css, js)

Why us?
  • An opportunity to have an impact on a growing company and change the industry to use safer, more reliable, and more performant tools.
  • Nice offices in the centre of Paris and Cambridge 
  • Flexibility to work remotely 
  • International team with 15 different nationalities
  • Regular events with the whole team (Bi-yearly offsite, Monthly All-Hands meeting, monthly team-building event ...) 
Our recruiting process' steps
If shortlisted, you will have two online interviews starting with a general interview with HR, followed by a technical discussion with the hiring manager.
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.
About us

Tarides is an international software company with offices in Cambridge (UK), Paris (France), and Chennai (India), founded in 2018 by pioneers of systems and functional programming. We have a worldwide presence with collaborators working remotely from the US, Australia, Canada, India, Japan, and across Europe. We have a solid academic background with connections to the University of CambridgeInria, and IIT Madras. Our diverse team of 80+ people performs groundbreaking innovation, feature development, and crucial maintenance of OCaml-based projects.

Tarides was previously part of Station F's Founder program in 2018 and was selected for the “Concours d’Innovation i-Lab,” organised by the French Ministry of Higher Education, Research, and Innovation in partnership with Bpifrance. Tarides was also recognised during the FIC (International Cybersecurity Forum) 2020 fair, the leading European event on cybersecurity. These awards acknowledge the high quality solutions developed by Tarides and emphasise the interest they have gained from the cybersecurity community.

In 2022, OCaml Labs (a spinout from the University of Cambridge) and Segfault Systems (a spinout from IIT-Madras) both joined Tarides, aligning towards a shared goal: empowering developers, communities, and organisations to adopt OCaml as their primary programming experience by providing training, expertise, and development services.

We are looking forward to hearing from you!
Thank you for your interest in Tarides. Please fill out the following short form. 
Uploading document. Please wait.
Please add all mandatory information with a * to send your application.