Senior Frontend Engineer

Job description

Frontend Engineering at Phase goes well beyond “typical frontend work” (i.e. implementing a fairly standard interface in common frameworks). In Phase, the front end is much more involved and much more challenging.

We’re building large, custom codebases with high-performance client-side data manipulation. How do we compute the result of multiple, high-performance, runtime-computed interactions? That’s the front end at Phase. How does our editor let users create a reflowing and responsive layout in their design? That’s the front end at Phase. And much more…

This is a role for the frontend engineer who isn’t afraid of tough challenges.

Responsibilities

Here's some of what we might expect of a new hire:

  • Capable of taking the lead role in architecting own code, which fits correctly into the larger system architecture.

  • Provide useful code review (consistent with our company’s standards) on other engineers’ Merge Requests.

  • Proactive participation in group planning, meetings, and other discussions.

  • Capable of communicating a detailed explanation of our product vision (broken into specific features).

  • Complete a full BDD process (alongside designers, product, and QA) correctly completing the engineering role’s responsibilities in BDD.

Job requirements

Required Skills

  • 5+ years minimum experience in the following:
    • Developing highly interactive and responsive web applications in JavaScript (min ES6+) or TypeScript, HTML5, CSS

    • Using web UI libraries and frameworks in JS or TS: React, Vue, Svelte, etc.

    • Performance optimization of UI components

    • Installing, compiling, and bundling web applications with Webpack, Yarn, Node.js and NPM

    • TDD using Enzyme, Chai, Jest, or Mocha for both business logic and UI components

  • Experience architecting complex software systems

  • Expert knowledge of various data structures and algorithms

  • Extensive experience optimizing event-based systems and writing performance-critical code in web applications

  • Experience developing real-time multi-user SPAs with offline support (including WebSocket, WebRTC, WebStorage, Web Workers, etc.)

  • Experience in profiling web applications with Chrome DevTools for debugging and performance optimisation

  • Experience using git workflow with code hosting services such as GitHub or GitLab

Recommended Skills

  • Experience extending create-react-app based applications with styled-components and TailwindCSS

  • Experience developing interactive graphical applications combining web UI frameworks with Canvas and WebGL

  • Experience of developing and integrating WebAssembly modules or applications (using C++, Rust, or similar languages)

  • Experience designing solutions for concurrency conflicts in real-time multi-user applications

  • Experience designing and building version control systems with custom user data

  • Experience implementing custom responsive UI layout models (like CSS flexbox, CSS grid, Flutter or Android layout, etc.)

  • Experience integrating telemetry tools in web applications and working with custom telemetry data analytics

  • In-depth knowledge and understanding of UX and design principles

  • Familiarity with OSX / Linux / Windows 10 / WSL2 shell scripting

  • Experience working with Docker and K8s related technologies

  • Knowledge of BDD workflow and functional testing principles


We believe in fair Shared Ownership.