jobapplier

Software Engineer (Go/Kubernetes, Sharding Team)

Neo4j

Skills

Required

  • Kubernetes
  • Go
  • databases / compilers / query languages
  • developing production-level software
  • Pods
  • Deployments
  • StatefulSets
  • scripting
  • Java
  • Scala
  • JVM
  • Google Cloud Platform / AWS / Azure

Preferred

  • cloud
  • control planes / multi-tenant platforms / database-as-a-service
  • modern continuous integration
  • configuring pipelines that

Join Neo4j, the leading graph database platform, as a Software Engineer on the Sharding Engineering team. In this role, you will work on Infinigraph and Composite, making them work as managed offerings on Aura, Neo4j's cloud platform. You will build and evolve the Aura control plane for sharded and composite databases in Go, manage their lifecycles through Kubernetes, and collaborate with a fun and energetic team of engineers.

About Neo4j

Concevoir et mettre en œuvre de nouvelles fonctionnalités pour Neo4j sur Aura, en construisant et en faisant évoluer le plan de contrôle d'Aura pour les bases de données shardées et composites en Go.

Responsibilities

  • Travailler sur l'exécution de requêtes distribuées, en concevant et en mettant en œuvre des services Go et des mécanismes Kubernetes qui provisionnent, évoluent et exploitent des clusters shardés et composites sur Aura.
  • Collaborer avec une équipe d'ingénieurs pour résoudre des problèmes complexes, participer à des réunions de conception inter-équipes et suivre les dernières recherches en matière de bases de données.
  • Experience with modern continuous integration: configuring pipelines that take software from a merged PR to a running production environment, and building and running Docker images

Requirements

Experience developing production-level software

  • Ability to communicate about, and collaborate on, complex topics
  • Strong Kubernetes experience, including the built-in resources such as Pods, Deployments, and StatefulSets, and what it takes to run stateful workloads on them
  • Strong Go experience across multiple projects, from scripting through to larger microservice-style applications, plus some knowledge of the Go build and packaging system
  • Ability to work independently within a flexible software development organisation
  • Java, Scala, or other JVM experience. Much of the database itself is written in Java, so this helps you go deeper over time
  • Familiarity with the operator pattern in Kubernetes and extending the API through Custom Resources
  • Understanding of the internals of databases, compilers, or query languages

Experience with asynchronous and reactive programming

  • Experience integrating software with Google Cloud Platform, AWS, or Azure
  • Experience of distributed systems through usage, administration, or development, and an interest in recent distributed systems developments, academic or industrial
  • Experience with common observability practices: tracing, logging, and metrics exporting

Preferred

  • Experience building or operating managed cloud services (control planes, multi-tenant platforms, or database-as-a-service)