AUTOGRIFF

AUTOGRIFF est une start-up en pleine croissance qui propose une plateforme de gestion des sinistres impliquant de la carrosserie automobile. Nous proposons un service innovant et de qualité, qui est rendu possible par notre infrastructure informatique.

Nous sommes une startup à taille humaine, où chaque employé·e est un rouage essentiel. Nous donnons les moyens à chacun·e de réaliser ses missions de manière autonome et efficace.

Pour parler franchement, ici, c’est l’équipe technique qui prend les décisions techniques, pas question de se faire imposer des contraintes arbitraires et qui nous gonflent. On nous fait confiance, à nous de produire un système qui répond aux besoins de l’entreprise.

Le défi: Programmation fonctionnelle

Theme:

Conception/Développement

Lot:

1000€ en bons d'achats, 500€ pour la première équipe, 300€ pour la seconde, 200€ pour la troisième.

L'éminent John Backus nous l'a dit en 1978 dans sa Turing Lecture, la programmation doit se libérer d'un modèle impératif pour se diriger vers un modèle déclaratif qui se prête à raisonner efficacement sur le code, pour être capables de produire du code robuste et composable. C'est ce qu'offre la programmation fonctionnelle, basée sur la transparence référentielle et les structure de données immutables.

C'est pourquoi l'équipe d'AUTOGRIFF a choisi de réaliser ses développements avec de la programmation fonctionnelle : Haskell côté backend avec une configuration en Dhall, Elm côté frontend, le tout développé et déployé avec Nix pour avoir des environnements aussi reproductibles que possible. Même le stockage est fonctionnel, puisque notre architecture repose sur de l'Event Sourcing.

À votre tour de proifter des avantages de la programmation fonctionnelle pour réaliser la solution de la Nuit de l'Info !

Elements attendus

Soit le backend soit le frontend de la solution (ou les deux, c'est ce qu'on fait à AUTOGRIFF avec Haskell et Elm) doit être réalisé dans un langage de programmation fonctionnelle :

  • Agda
  • Clojure
  • Common Lisp
  • Coq
  • Elixir
  • Elm
  • F#
  • Haskell
  • Idris
  • ML
  • OCaml
  • Purescript
  • Racket
  • ReasonML
  • Scala
  • Scheme

Mode de restitution

L'équipe devra rendre disponible le code source complet de la solution, accompagné d'un texte présentant quels outils et patterns de la programmation fonctionnelle ont été mis en œuvre. Nous serons particulièrement attentifs au fait que le code adhère à un style fonctionnel. N'hésitez pas à nous décrire ce qui vous a semblé naturel de faire dans le cadre de la PF et ce qui vous a causé plus de difficulté !