Senior Backend Engineer

Job description

Our backend team members are the architects and the backbone of our product, maintaining infrastructure across multiple secure and scalable interconnected services. We're looking for engineers who are able to provide enterprise-grade solutions to non-standard problems on a large scale.

What’s a non-standard problem? How about building a version-control system from scratch, for multi-dimensional design files. Which works seamlessly with a real-time collaboration system, which can accept and resolve offline changes from multiple clients.

These are the types of tough challenges our backend engineers work on.

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 development experience in the following:
    • Developing backend applications in JavaScript (min ES6+) and Node.js

    • Using web frameworks in Node.js (Express, Next.js, Nest, or Meteor)

    • Expert knowledge of database design (SQL & NoSQL)

    • RESTful API development and testing

    • Unit testing using Enzyme, Chai, Jest, or Mocha

    • Container technologies (Docker)

    • Microservice architecture

  • Extensive experience in installing, compiling, and bundling web applications with Node.js, Webpack, NPM, or Yarn.

  • Vertical scalability: experience of working with Redis, Memcached

  • Horizontal scalability: experience in setting up load-balancing and building cluster/distributed computing applications

  • Experience in developing real-time multi-user collaboration web applications (WebSocket, WebRTC) that ensure data integrity and consistency

  • Experience in Mac OSX / Linux / Windows 10 / WSL2 shell scripting and administration

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

Recommended skills

  • 3+ years of backend application development experience in Go or Python

  • Experience in using web frameworks in the above languages

  • Experience in distributed message queue systems like Kafka, RabbitMQ, or similar

  • Experience setting up build toolchains for web applications using Node.js, Webpack, NPM, Yarn, or similar

  • Experience working with and configuring Kubernetes and Helm

  • Experience in cloud infrastructure and integrating services like EC2, S3, Lambda, EKS (or their equivalents in GCP)

  • Experience in writing scripts in Python or Go, and using testing frameworks in those languages

  • Experience in working with K8s tools like Tilt, Scaffold, or Garden

  • Knowledge of Terraform

  • Experience in infrastructure security and development of secure applications

  • Experience integrating microservices and backend architecture with Elasticsearch and data visualization tools like Kibana or Grafana

  • Experience in working with GCP BigQuery or AWR Redshift big data platforms

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

  • Experience in building version-control systems

We believe in fair Shared Ownership.