Software Engineer - Node.js
Neo4j
London
2 months ago
From our products to our team members, Neo4j is centered around relationships.

We hire candidates who are fundamentally wired to connect – whether that's a business opportunity, an innovative customer solution, or a feat of data engineering.

We're looking for a talented person to join the Neo4j team and help us further the Neo4j vision to help the world make sense of data.

Who is Neo4j?

Neo4j is the clear leader in the rapidly emerging graph database category.

Our internet-scale graph platform helps companies around the world connect data to reveal invisible contexts and hidden relationships that drive breakthrough applications and analytics.

As the #1 platform for connected data, Neo4j has over fifty million downloads, the world’s largest graph developer community, and thousands of graph-powered applications in production.

Here at Neo4j, we’re on the lookout for an experienced software engineer to join our Driver Engineering Team. As a driver engineer, you’ll primarily be responsible for the Node.js library, which acts as an adapter between the binary protocol transmitted over the network and the language API consumed by client applications. You will also be involved with development work on other language drivers, the Neo4j server networking component, our build and test infrastructure, and technical documentation.

As well as software development, you’ll also have the opportunity to support community projects, run meetups and hackathons, write blog posts, and help with training and other events.

Hear from Nigel Small, about what this role is all about!

We're looking for 3+ years' practical experience in:

  • Javascript (well versed in ES6+)
  • NodeJS platform and ecosystem
  • Writing scalable, extensible NodeJS applications and libraries
  • Working with high-volume throughput over HTTP(S) and WebSockets

You will ideally have experience and interest in:

  • Typescript and functional reactive programming
  • Network communication and protocols, and how to reduce latency and overhead
  • Database management systems, Database design, and server-side consumption of data.
  • Distributed system design
  • API design (both HTTP and programmatically), and how APIs scale over time
  • Working with typed languages and debugging compile-time errors

You may have also worked with some or all of:

  • Modern Dependency Injection frameworks such as Angular or NestJS
  • Javascript optimisation and underlying implementation (how the V8 engine works)
  • Working in distributed/clustered environments (Docker, kubernetes, etc.)
  • Other backend languages and layers, or generally find system design interesting

Country

  • GB
You’ll be based in either our engineering HQ in Malmö, Sweden or our office in London, and will travel on occasion between the two. The Driver Team itself is distributed across multiple locations, so expect to be pairing and joining design discussions using online collaboration software on a regular basis.

At Neo4j, you’ll work in a fun and flexible environment alongside an exceptional international team. If we sound like a good match, then get in touch and tell us about yourself.

Why Join Neo4j?

At Neo4j, you get the opportunity to build and lead on the edge of what's new in the world of technology.

You have the opportunity to work alongside diverse and talented colleagues from around the globe. Our engineering headquarters are located in Malmö, Sweden and London, UK.

Please submit your CV and Cover letter in English.

We hire candidates who reflect the following Neo4j core values:

We Value Relationships
We Focus on User Success
We Thrive in a Culture That Is Open and Inclusive
We Assume Positive Intent
We Welcome Intellectually Honest Discussions
We Deliver on Our Commitments

Intrigued by this role? We encourage you to apply even if you don't fit 100% of the listed qualifications. Neo4j is an equal opportunity employer and is committed to protecting and respecting your privacy. Please read the Privacy Notice Regarding Neo4j's Recruitment Process to understand how the personal data that you provide is handled.