À propos du service
TraduitJe crée des systèmes rapides et corrects en OCaml et choisis ce langage précisément pour ce qui compte sous charge: typage statique strict, correspondance de motifs exhaustive, et performance proche de C. Lorsque le compilateur accepte mon code, toute une classe d'erreurs est déjà éliminée, et la logique qui atteint les utilisateurs est celle que j'ai réellement réfléchie, pas une collection d'hypothèses optimistes. Je travaille sur des compilateurs et des outils de langage, des moteurs financiers où les erreurs d'arrondi sont inacceptables, et des backends qui doivent rester opérationnels pendant que tout autour d'eux change.
J'aborde la plupart des tâches en rendant les états invalides inexpressibles. Je modélise le domaine du problème avec des types variant et des enregistrements afin que la structure de données elle-même impose les règles, et la correspondance de motifs couvre chaque cas connu du compilateur. Cette habitude transforme des exigences vagues en un design où il est difficile de faire des erreurs, et garde le code honnête à mesure que le nombre de fonctionnalités augmente. Je prends aussi la performance au sérieux: allocation mémoire prévisible, structures de données denses, et profilage avant optimisation afin que les chiffres s'améliorent là où ils sont mesurés, pas là où cela semble juste lent.
Vous obtenez des modules lisibles et bien documentés, un ensemble de tests qui exercent exactement les chemins complexes, et une construction qu'un collègue peut mettre en place sans une semaine de connaissances tribales. Je suis à l'aise pour interfacer avec du code C existant, intégrer un service dans une grande pile, ou déployer un projet depuis zéro à partir d'un dépôt vide. Nommez la contrainte qui vous inquiète, et je concevrai le système autour d'elle en premier.
— Compilateurs, analyseurs, langages spécifiques au domaine, et analyse statique
— Backends financiers et de trading à faible latence
— Modélisation de domaine par types et refactoring
— Interfaçage avec C, profilage, et réglage
J'aborde la plupart des tâches en rendant les états invalides inexpressibles. Je modélise le domaine du problème avec des types variant et des enregistrements afin que la structure de données elle-même impose les règles, et la correspondance de motifs couvre chaque cas connu du compilateur. Cette habitude transforme des exigences vagues en un design où il est difficile de faire des erreurs, et garde le code honnête à mesure que le nombre de fonctionnalités augmente. Je prends aussi la performance au sérieux: allocation mémoire prévisible, structures de données denses, et profilage avant optimisation afin que les chiffres s'améliorent là où ils sont mesurés, pas là où cela semble juste lent.
Vous obtenez des modules lisibles et bien documentés, un ensemble de tests qui exercent exactement les chemins complexes, et une construction qu'un collègue peut mettre en place sans une semaine de connaissances tribales. Je suis à l'aise pour interfacer avec du code C existant, intégrer un service dans une grande pile, ou déployer un projet depuis zéro à partir d'un dépôt vide. Nommez la contrainte qui vous inquiète, et je concevrai le système autour d'elle en premier.
— Compilateurs, analyseurs, langages spécifiques au domaine, et analyse statique
— Backends financiers et de trading à faible latence
— Modélisation de domaine par types et refactoring
— Interfaçage avec C, profilage, et réglage