slateremote

Horizon Assset Investments · Anywhere in the World

Front-End Developer (Full-Time, Remote)

frontendmidVeröffentlicht: 2026-04-28
Auf der Unternehmensseite bewerben
<img src="https://we-work-remotely.imgix.net/logos/0171/4987/logo.gif?ixlib=rails-4.0.0&w=50&h=50&dpr=2&fit=fill&auto=compress" /> <p> <strong>Headquarters:</strong> Remote <br /><strong>URL:</strong> <a href="https://www.horizonassetinvestments.com/">https://www.horizonassetinvestments.com/</a> </p> <p class="MsoNormal"><strong><span lang="EN-US">Front-End Developer (Full-Time, Remote)</span></strong></p> <p class="MsoNormal"><span>&nbsp;</span></p> <p class="MsoNormal"><span lang="EN-US">We are seeking a Front-End Developer to design and build the user-facing components of our high-performance trading platform. You will play a key role in creating intuitive, data-rich interfaces that enable traders and analysts to work efficiently and effectively.</span></p> <p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p> <p class="MsoNormal"><span lang="EN-US">You will collaborate closely with the Back-End Development Team and the Project Manager to deliver seamless, integrated systems. A key factor is the front end developer’s ability to deeply discuss approaches, trade-offs, limitations, and pros/cons with the development team, rather than reliance on any specific pattern or library.</span></p> <p class="MsoNormal"><span lang="EN-US"></span></p> <p class="MsoNormal"><strong><span>&nbsp;</span></strong></p> <p class="MsoNormal"><strong><span lang="EN-US">Key Responsibilities</span></strong></p> <ul> <li class="MsoNormal"><span lang="EN-US">Develop and maintain the front-end applications of our trading platform.</span></li> <li class="MsoNormal"><span lang="EN-US">Collaborate with back-end developers and the project manager to ensure smooth integration across systems.</span></li> <li class="MsoNormal"><span lang="EN-US">Design and implement multi-page layouts, menus, and workflows that balance usability with efficiency.</span></li> <li class="MsoNormal"><span lang="EN-US">Contribute to the design and user experience of the trading platform, performance &amp; risk manager, and backtesting engine.</span></li> <li class="MsoNormal"><span lang="EN-US">Implement and optimize charting and data visualization features, leveraging libraries such as TradingView or D3.js to support a wide variety of chart types (tables, multi-line chart packs, etc.).</span></li> <li class="MsoNormal"><span lang="EN-US">Continuously refine the UI/UX to ensure clarity, speed, and intuitive navigation for end users.</span></li> </ul> <p class="MsoNormal"><span lang="EN-US"></span></p> <p class="MsoNormal"><strong><span>&nbsp;</span></strong></p> <p class="MsoNormal"><strong><span lang="EN-US">Qualifications</span></strong></p> <ul> <li class="MsoNormal"><span lang="EN-US">Strong communication skills and the ability to collaborate effectively with developers, project managers, and business stakeholders.</span></li> <li class="MsoNormal"><span lang="EN-US">A keen eye for design, simplicity, and efficiency, with the ability to translate complex requirements into clean, user-friendly interfaces.</span></li> <li class="MsoNormal"><span lang="EN-US">Knowledge of financial systems or trading concepts is preferred.</span></li> </ul> <p class="MsoNormal"><strong><span lang="EN-US">&nbsp;</span></strong></p> <p class="MsoNormal"><strong><span lang="EN-US">Core stack (mandatory)</span></strong></p> <ul> <li class="MsoNormal"><span lang="EN-US">React 18 + Next.js (App Router), TypeScript, TailwindCSS.</span></li> <li class="MsoNormal"><span lang="EN-US">Strong command of state management for high-frequency data (e.g., Zustand, Redux Toolkit, useSyncExternalStore).</span></li> </ul> <p class="MsoNormal"><strong><span lang="EN-US">&nbsp;</span></strong></p> <p class="MsoNormal"><strong><span lang="EN-US">Real-time data &amp; performance</span></strong></p> <ul> <li class="MsoNormal"><span lang="EN-US">Hands-on with WebSockets / SSE and reconnection/backoff strategies; handling authenticated socket connections and topic resubscriptions.</span></li> <li class="MsoNormal"><span lang="EN-US">Experience implementing backpressure, buffering, coalescing, and windowing to prevent UI thrash under thousands of updates/minute.</span></li> <li class="MsoNormal"><span lang="EN-US">Data virtualization (react-virtualized, react-window) for large tables (orders, positions, trades).</span></li> <li class="MsoNormal"><span lang="EN-US">Familiar with Web Workers / OffscreenCanvas and message passing to keep the main thread responsive.</span></li> <li class="MsoNormal"><span lang="EN-US">Awareness of latency budgets and frame-time profiling using React DevTools and browser performance tools.</span></li> </ul> <p class="MsoNormal"><strong><span lang="EN-US">&nbsp;</span></strong></p> <p class="MsoNormal"><strong><span lang="EN-US">Charting &amp; visualization</span></strong></p> <ul> <li class="MsoNormal"><span lang="EN-US">Practical experience with professional charting libs (e.g., TradingView Charting Library, Lightweight Charts, Highcharts, D3).</span></li> <li class="MsoNormal"><span lang="EN-US">Real-time overlays: best bid/ask, order book depth, last OHLCV, order/position annotations.</span></li> <li class="MsoNormal"><span lang="EN-US">Multi-pane layouts (price, volume, indicators) with synchronized crosshairs and time scales.</span></li> </ul> <p class="MsoNormal"><strong><span lang="EN-US">&nbsp;</span></strong></p> <p class="MsoNormal"><strong><span lang="EN-US">Architecture &amp; data access</span></strong></p> <ul> <li class="MsoNormal"><span lang="EN-US">Client-side caching and invalidation (e.g., TanStack Query / React Query).</span></li> <li class="MsoNormal"><span lang="EN-US">Schema-driven UI for instruments and venues.</span></li> <li class="MsoNormal"><span lang="EN-US">Use of Error Boundaries, Suspense, and progressive hydration/streaming for large Next.js pages.</span></li> </ul> <p class="MsoNormal"><strong><span lang="EN-US">&nbsp;</span></strong></p> <p class="MsoNormal"><strong><span lang="EN-US">Auth, security, and roles</span></strong></p> <ul> <li class="MsoNormal"><span lang="EN-US">Strong understanding of OIDC/JWT flows, token refresh/rotation, and WebSocket authentication.</span></li> <li class="MsoNormal"><span lang="EN-US">Role-based feature gating (read-only vs trading permissions).</span></li> </ul> <p class="MsoNormal"><strong><span lang="EN-US">Testing, quality, and reliability</span></strong></p> <ul> <li class="MsoNormal"><span lang="EN-US">Unit tests for critical transforms/parsers (e.g., Playwright/Vitest for E2E/interaction flows)</span></li> <li class="MsoNormal"><span lang="EN-US">Experience with feature flags, staged rollouts, and monitoring with Sentry/OpenTelemetry.</span></li> </ul> <p class="MsoNormal"><strong><span lang="EN-US">&nbsp;</span></strong></p> <p class="MsoNormal"><strong><span lang="EN-US">Nice-to-haves</span></strong></p> <ul> <li class="MsoNormal"><span lang="EN-US">Experience with desktop-class layouts (drag-to-dock panels, resizable grids).</span></li> <li class="MsoNormal"><span lang="EN-US">Exposure to WASM for heavy computations (e.g., indicator calculations).</span></li> <li class="MsoNormal"><span lang="EN-US">Familiarity with FIX/crypto venue nuances (tick sizes, lot sizes, trading sessions).</span></li> </ul> <p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p> <p class="MsoNormal"><span lang="EN-US">Screening Questions<br>Keep answers **4–8 sentences** each. Bullet points allowed if clear.</span></p> <p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p> <p class="MsoNormal"><span lang="EN-US">1) **UI migration (hrzk → Next.js):**<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">Pick ONE area from the provided `hrzk.html` (e.g., Orders+Trades, Positions table, Equity/Drawdown).<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">Explain how you’d migrate it to **React 18 + Next.js (App Router) + TypeScript + Tailwind**.<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">Include folder structure and what you’d make **client vs server components**.<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">(We care about your trade-offs, not “the one true way”.)</span></p> <p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p> <p class="MsoNormal"><span lang="EN-US">2) **Real-time data ingestion:**<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">Describe how you’d handle **WebSockets/SSE** for high-frequency updates:<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">reconnect/backoff, authenticated sockets, and topic resubscriptions.<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">What failures do you expect in production?</span></p> <p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p> <p class="MsoNormal"><span lang="EN-US">3) **Backpressure + UI thrash prevention:**<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">Assume **thousands of updates/minute** for orders/positions/trades.<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">Explain how you’d implement buffering/coalescing/windowing so the UI stays responsive.<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">Mention how you’d combine this with **state management** (e.g., Zustand/RTK/useSyncExternalStore) and **virtualization** (react-window / react-virtualized).<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">What would you measure to prove it works?</span></p> <p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p> <p class="MsoNormal"><span lang="EN-US">4) **Charting approach:**<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">We need fast, readable, data-rich charts (equity/drawdown, doughnut/bars, etc.).<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">Pick a chart type from `hrzk.html` and explain:<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">- which charting library you’d choose (TradingView Lightweight Charts / Highcharts / D3 / etc.)<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">- update frequency strategy<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">- performance risks + mitigations</span></p> <p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p> <p class="MsoNormal"><span lang="EN-US">5) **Auth + role gating:**<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">Explain how you’d handle JWT/OIDC token refresh and **WebSocket authentication**, then implement role-based gating (read-only vs trading).<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">Use an example like “Cancel All Orders” or “Stop/Start Execution”: when do you hide vs disable vs show a warning?</span></p> <p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p> <p class="MsoNormal"><span lang="EN-US">6) **Remote ownership + teamwork:**<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">Give one example where you took ownership remotely on an ambiguous task.<span>&nbsp; </span></span></p> <p class="MsoNormal"><span lang="EN-US">Then describe how you’d work with a small dev team: how you ask clarifying questions, communicate risk early, and avoid shipping “local optimum” code that breaks other parts of the system.</span></p> <p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p> <p class="MsoNormal"><span lang="EN-US">What to expect (our interview process):</span></p> <p class="MsoNormal"><strong><span>&nbsp;</span></strong></p> <p class="MsoNormal"><span>Our hiring process is mostly async and focused on real work.<br>You’ll start with a CV submission and a short, structured application.<br>Shortlisted candidates complete an async technical screen.<br>Finalists complete a paid, time‑boxed work sample aligned to the role.<br>End‑to‑end, the process typically runs 4–6 weeks.</span></p> <p class="MsoNormal"><span>&nbsp;</span></p> <p class="MsoNormal"><span>FAQs</span></p> <p class="MsoListParagraphCxSpFirst"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>Do I need to respond to the questions?</span></p> <p class="MsoListParagraphCxSpMiddle"><span>Yes, please respond to the questions ideally in an open format via a cover letter. This is mandatory for vetting.</span></p> <p class="MsoListParagraphCxSpMiddle"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>Do I need to attend live interviews?<br>Most stages are async to reduce scheduling friction. Live calls are minimal.</span></p> <p class="MsoListParagraphCxSpMiddle"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>Do I need to be on camera for the sample work?<br>No — screen + voice is sufficient.</span></p> <p class="MsoListParagraphCxSpMiddle"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>What tools can I use to submit recordings?<br>Any common screen‑recording or file‑sharing tool is fine, as long as the video is easy to view.</span></p> <p class="MsoListParagraphCxSpLast"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>Is the final task paid?<br>Yes. Final shortlisted candidates complete a paid, time‑boxed work sample.</span></p> <p><strong>To apply:</strong> <a href="https://weworkremotely.com/remote-jobs/horizon-assset-investments-front-end-developer-full-time-remote">https://weworkremotely.com/remote-jobs/horizon-assset-investments-front-end-developer-full-time-remote</a></p>

Sister site · slowmadly.com

Got the job? Pick a basecamp.

Country guides for nomads who stay a while.

Read on slowmadly.com