À propos du service
TraduitJe suis développeur Haskell et j'écris des services serveur qui sont corrects par construction, pas par accident. Mon approche repose sur les plus grandes forces du langage : un puissant système de types statiques, la pureté des fonctions et des effets explicites. Lorsque je modélise votre domaine avec des types de données algébriques et que je laisse le compilateur rejeter les états invalides, toute une catégorie d'erreurs d'exécution cesse simplement d'exister. Ce n'est pas de l'idéalisme académique, mais une manière pratique de livrer un logiciel qui se comporte le vendredi soir de la même manière qu'il l'a fait lors des tests, et qu'un nouveau membre de l'équipe peut refactoriser en toute confiance parce que les types les maintiennent dans les limites.
Au fil des ans, j'ai construit des API HTTP, des travailleurs en arrière-plan, des pipelines de traitement de données et des utilitaires en ligne de commande en Haskell. Je suis à l'aise avec l'écosystème de base : Servant et Yesod pour le web, STM et async pour la concurrence, persistent et hasql pour les bases de données, et les outils familiers GHC, Cabal et Stack. Je me soucie également de la performance : je profile avec les outils GHC, je réfléchis consciemment à la paresse et à la rigueur, je sais quand opter pour des types de données stricts, des vecteurs non emballés ou des bibliothèques de streaming pour garder la mémoire plate et le débit élevé. Les tests de propriété via QuickCheck sont pour moi un outil de conception, pas une formalité.
Vous obtenez de ma part une base de code qui est réellement un atout : de petites fonctions composables, des frontières de module claires et une documentation que l'équipe peut maintenir. Je suis également à l'aise pour créer un nouveau service à partir d'un dépôt vide jusqu'à la production et pour rejoindre un projet Haskell existant pour corriger des bugs, apprivoiser la dette technique, accélérer le code et amener l'équipe vers des modèles fonctionnels idiomatiques. Si un logiciel correct et sûr à modifier compte pour vous, je vous aiderai.
— APIs HTTP backend avec Servant et Yesod
— Modélisation de domaine avec des types algébriques et des classes de types
— Concurrence via STM, async et threads
— Accès aux bases de données via persistent, hasql et PostgreSQL
— Tests de propriété avec QuickCheck et Hspec
— Profilage, analyse de rigueur et optimisation
— Construction avec GHC, Cabal, Stack et Nix
Au fil des ans, j'ai construit des API HTTP, des travailleurs en arrière-plan, des pipelines de traitement de données et des utilitaires en ligne de commande en Haskell. Je suis à l'aise avec l'écosystème de base : Servant et Yesod pour le web, STM et async pour la concurrence, persistent et hasql pour les bases de données, et les outils familiers GHC, Cabal et Stack. Je me soucie également de la performance : je profile avec les outils GHC, je réfléchis consciemment à la paresse et à la rigueur, je sais quand opter pour des types de données stricts, des vecteurs non emballés ou des bibliothèques de streaming pour garder la mémoire plate et le débit élevé. Les tests de propriété via QuickCheck sont pour moi un outil de conception, pas une formalité.
Vous obtenez de ma part une base de code qui est réellement un atout : de petites fonctions composables, des frontières de module claires et une documentation que l'équipe peut maintenir. Je suis également à l'aise pour créer un nouveau service à partir d'un dépôt vide jusqu'à la production et pour rejoindre un projet Haskell existant pour corriger des bugs, apprivoiser la dette technique, accélérer le code et amener l'équipe vers des modèles fonctionnels idiomatiques. Si un logiciel correct et sûr à modifier compte pour vous, je vous aiderai.
— APIs HTTP backend avec Servant et Yesod
— Modélisation de domaine avec des types algébriques et des classes de types
— Concurrence via STM, async et threads
— Accès aux bases de données via persistent, hasql et PostgreSQL
— Tests de propriété avec QuickCheck et Hspec
— Profilage, analyse de rigueur et optimisation
— Construction avec GHC, Cabal, Stack et Nix