12

Software Engineers (Core), Senior/Lead – London to 100k

London, United Kingdom (UK), EMW [EMW-SECSLL]

Field(s) of expertise
Software Engineering
Job type
Contract
Education
Bachelor
Deadline
Closed

About this job

As a Software Engineer (Core), you will be building a distributed database, the query language, and all the technology infrastructure in the organisation.

Their distributed database is a distributed knowledge graph: a logical database that allows companies to organise large and complex networks of data as one body of knowledge. It provides the knowledge engineering tools for developers to easily leverage the power of Knowledge Representation and Reasoning when building complex systems. Ultimately, it serves as the knowledge-base foundation for cognitive and intelligent systems.

Their query language provides an expressive knowledge schema language through an enhanced entity-relationship model, transactional queries that perform deductive reasoning in real-time, and analytical queries with native distributed Pregel and MapReduce algorithms. It provides a strong abstraction over low-level data constructs and complex relationships.

It is distributed as an open-source technology, while their distributed database comes in two forms: Core – which is also open-source, and an enterprise Knowledge Graph Service, available through Google Cloud and Amazon AWS.

Under-the-hood, their technology is built with open-source and distributed technology stacks: from ANTLR to TinkerPop, Hadoop, Spark, Cassandra, Akka, gRPC, Bazel, and Kubernetes. They are also still evolving the distributed database architecture to be even more scalable and will be adopting new frameworks that could revolutionise performance. Main (back-end) development language is Java, but they also provide the database client drivers in Python and Node.js as well, and intend to support the top 10 languages. They automate entire build and release pipeline, and treat them as a first-class citizen in their work and architecture.

Responsibilities

Your work as a Software Engineer (Core) will span across all aspects of software engineering; from programming and debugging, to architecture design, build engineering, release engineering, documentation, workflow automation, PRs & code reviews, as well as R&D. Your goal is to build the most intelligent, powerful, scalable and simple database of this generation.

Profile

  • Bachelors degree in Computer Science or Software Engineering
  • 5+ years of working experience as a Software Engineer
  • Demonstrable experience in leading a team or mentoring others
  • Solid programming experience in OOP languages
  • Proven experience in back-end systems with multithreading and parallel programming
  • Proven experience in distributed systems and cloud environments
  • Proven experience in working with parallel and distributed computing framework such as TinkerPop, Hadoop, Spark, Cassandra, Kafka, RabitMQ, Akka, Storm, JanusGraph, Giraph, gRPC, Protobuf, Bazel, Kubernetes, Zookeeper, etc.
  • Proven experience in build and release (CI/CD) engineering
  • Proven experience in working with database systems
  • Familiarity with client-server architecture
  • Familiarity with full-stack software development
  • Familiarity with large-scale software architectures that spans across multiple repositories
  • Familiarity open-source software development and community
  • Strong communication, documentation, writing, and presentation skills
  • Bonus skills (any advanced degree or experience in developing):
    • Programming or Query Languages
    • Knowledge Representation Systems
    • Automated reasoning
    • Formal Logic
    • Database Systems

For information on how the personal data in your application is processed, please see the EMW Privacy Policy.