Horizon Assset Investments

HQ: Remote

more jobs in this category:

  • -> Website & App Tester @ PingPong
  • -> Entry Level Content Writer @ Jerry
  • -> Code Challenge Reviewer - Review Code In Your Spare Time - £50 Per Hour @ Geektastic
  • -> Frontend Developer (React) @ Cake
  • -> Frontend Developer and Flutter developer @ Appy Ventures

Nous recherchons un(e) Développeur(se) Front-End à temps plein afin de concevoir et construire les parties visibles par les utilisateurs de notre plateforme de trading à haute performance. Vous contribuerez à créer des interfaces claires et riches en données, permettant aux traders et analystes de travailler de manière efficace et performante.

Vous collaborerez étroitement avec l’équipe de Développement Back-End et le/la chef(fe) de projet pour livrer des systèmes bien intégrés. Un élément clé de ce rôle est votre capacité à discuter ouvertement des approches de solution, des compromis, des limites et des avantages/inconvénients avec l’équipe—pas seulement à suivre un schéma ou une bibliothèque donnée.

## Responsabilités clés
– Développer et maintenir les applications front-end de notre plateforme de trading.
– Travailler avec les développeurs back-end et le/la chef(fe) de projet pour garantir une intégration fluide entre les systèmes.
– Concevoir des interfaces multi-pages, des menus et des workflows qui équilibrent utilisabilité et efficacité.
– Contribuer à façonner le design et l’expérience utilisateur de la plateforme de trading, du gestionnaire performance & risque, et du moteur de backtesting.
– Construire et optimiser les fonctionnalités de graphiques et de visualisation des données, en utilisant des bibliothèques telles que TradingView ou D3.js afin de supporter de nombreux types de graphiques (y compris des tableaux et des packs de graphiques multi-séries).
– Améliorer en continu le UI/UX pour plus de clarté, de rapidité et une navigation intuitive.

## Qualifications
– De solides compétences en communication et la capacité de collaborer efficacement avec des développeurs, des chefs de projet et des parties prenantes métier.
– Un fort sens du design—simplicité et efficacité—avec la capacité de transformer des besoins complexes en interfaces propres et faciles à utiliser.
– La connaissance des systèmes financiers ou des notions de trading est un plus.

## Stack principale (requise)
– React 18 + Next.js (App Router), TypeScript, TailwindCSS.
– De solides compétences en gestion d’état pour des données à haute fréquence (ex. Zustand, Redux Toolkit, useSyncExternalStore).

## Données temps réel & performance
– Expérience concrète avec WebSockets/SSE, incluant reconnexion/backoff, connexions socket authentifiées et réabonnements aux topics.
– Expérience dans l’implémentation de mécanismes de backpressure, de buffering, de coalescing et de windowing afin d’éviter le « thrashing » de l’UI sous des milliers de mises à jour par minute.
– Expérience en virtualisation des données (ex. react-virtualized, react-window) pour de grands tableaux comme les ordres, positions et transactions.
– Familiarité avec les Web Workers/OffscreenCanvas et la communication par messages pour garder le thread principal réactif.
– Compréhension des budgets de latence et profilage du temps de frame à l’aide de React DevTools et des outils de performance du navigateur.

## Graphiques & visualisation
– Expérience pratique avec des bibliothèques de charting professionnelles (ex. TradingView Charting Library, Lightweight Charts, Highcharts, D3).
– Superpositions temps réel telles que meilleur bid/ask, profondeur du carnet d’ordres, derniers OHLCV, et annotations d’ordres/positions.
– Dispositions multi-panneaux (prix, volume, indicateurs) avec des crosshairs synchronisés et des échelles de temps partagées.

## Architecture & accès aux données
– Mise en cache côté client et invalidation (ex. TanStack Query/React Query).
– UI pilotée par schéma pour les instruments et venues.
– Utilisation de Error Boundaries, Suspense, et d’un rendu progressif/streaming pour les grandes pages Next.js.

## Auth, sécurité et rôles
– Bonne compréhension des flux OIDC/JWT, du refresh/rotation des tokens, et de l’authentification WebSocket.
– Filtrage des fonctionnalités selon les rôles (lecture seule vs autorisations de trading).

## Tests, qualité et fiabilité
– Tests unitaires pour les transformations/parsers critiques (ex. Playwright/Vitest pour les parcours bout en bout/interaction).
– Expérience avec les feature flags, les déploiements progressifs et le monitoring via Sentry/OpenTelemetry.

## Atouts
– Expérience avec des interfaces type desktop (panneaux à glisser pour « dock », grilles redimensionnables).
– Exposition à WASM pour des calculs lourds (ex. calculs d’indicateurs).
– Familiarité avec des détails des venues FIX/crypto comme les tailles de tick, les tailles de lot et le comportement des sessions de trading.

## Questions de sélection
Merci de limiter chaque réponse à 4 à 8 phrases. Les puces sont autorisées si elles sont claires.

1) **Migration UI (hrzk → Next.js) :**
Choisissez UN domaine parmi `hrzk.html` (ex. Orders+Trades, table des positions, Equity/Drawdown). Expliquez comment vous le migreriez vers React 18 + Next.js (App Router) + TypeScript + Tailwind. Indiquez votre structure de dossiers et ce que vous construiriez côté client vs serveur (client/server components). Nous valorisons vos compromis, pas une seule méthode « correcte ».

2) **Ingestion de données temps réel :**
Expliquez comment vous géreriez WebSockets/SSE pour des mises à jour à haute fréquence, incluant reconnexion/backoff, sockets authentifiés et réabonnements aux topics. Quels échecs anticipez-vous en production ?

3) **Backpressure + prévention du thrash UI :**
Supposons des milliers de mises à jour par minute pour les ordres/positions/transactions. Décrivez comment vous implémenteriez buffering/coalescing/windowing pour garder une UI réactive. Expliquez comment vous combineriez cela avec la gestion d’état (ex. Zustand/RTK/useSyncExternalStore) et la virtualisation (react-window/react-virtualized). Qu’est-ce que vous mesureriez pour prouver que cela fonctionne ?

4) **Approche de charting :**
Nous avons besoin de graphiques rapides, lisibles et riches en données (ex. equity/drawdown, doughnut/bars). Choisissez un type de graphique depuis `hrzk.html` et expliquez quelle bibliothèque vous utiliseriez, votre stratégie de fréquence de mise à jour, ainsi que les risques de performance et vos mesures d’atténuation.

5) **Auth + gating par rôles :**
Expliquez comment vous géreriez le refresh JWT/OIDC des tokens et l’authentification WebSocket, puis implémentez un gating par rôles (lecture seule vs trading). Utilisez un exemple comme « Cancel All Orders » ou « Stop/Start Execution » et expliquez quand masquer, désactiver ou afficher un avertissement.

6) **Responsabilité à distance + travail d’équipe :**
Partagez un exemple où vous avez pris la responsabilité à distance sur une tâche ambiguë. Ensuite, décrivez comment vous travailleriez avec une petite équipe : comment vous posez des questions de clarification, comment vous communiquez les risques tôt, et comment vous évitez de livrer un code “local optimum” qui pourrait casser d’autres parties du système.

## À quoi s’attendre (processus d’entretien)
Notre processus est majoritairement asynchrone et met l’accent sur du travail réel. Vous commencerez par une soumission de CV et une courte candidature structurée. Les candidat(e)s présélectionné(e)s réalisent un test technique asynchrone. Les finalistes réalisent un exercice de travail rémunéré, cadré dans le temps, aligné sur le poste. L’ensemble du processus dure généralement 4 à 6 semaines.

## FAQ
– **Dois-je répondre aux questions ?** Oui. Merci de répondre de manière ouverte, idéalement sous forme de lettre de motivation. C’est obligatoire pour la sélection.
– **Ai-je besoin d’entretiens en direct ?** La plupart des étapes sont asynchrones afin de réduire les frictions liées à la planification ; les appels en direct sont limités.
– **Dois-je être face caméra pour l’exercice ?** Non—screen + voix suffisent.
– **Quels outils puis-je utiliser pour soumettre des enregistrements ?** N’importe quel outil courant d’enregistrement d’écran ou de partage de fichiers convient, tant que la vidéo est facile à visionner.
– **La tâche finale est-elle rémunérée ?** Oui. Les candidat(e)s présélectionné(e)s finalisent un exercice rémunéré, cadré dans le temps.

Apply info ->

To apply for this job, please visit the application page

Shopping Cart
There are no products in the cart!
Total
 0.00
0