£45000 - £100000 per annum
Role: Software Engineer (Core)
Salary: up to £100.000
Software Engineer (Core)
As a Software Engineer will be building a distributed database, the query language, and all the technology infrastructure in the organisation. Distributed knowledge graph: a logical database that allows you to organize large and complex networks of data as one body of knowledge. We provide knowledge engineering tools for developers to easily leverage the power of Knowledge Representation and Reasoning when building complex systems. Ultimately, serves as the knowledge-base foundation for cognitive and intelligent systems. It 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. Graql provides a strong abstraction over low-level data constructs and complex relationships. Graql is distributed as an open-source technology, while we come in two forms: Grakn Core - which is also open-source, and KGMS - our enterprise Knowledge Graph Management Service, available through Google Cloud and Amazon AWS. Under-the-hood, our technology is built with open-source and distributed technology stacks: from ANTLR to TinkerPop, Hadoop, Spark, Cassandra, Akka, gRPC, Bazel, and Kubernetes. We are also still evolving the architecture to be even more scalable and we'll be adopting new frameworks that could revolutionize our performance. Our main (back-end) development language is Java, but we also provide our database client drivers in Python and Node.js as well, and we intended to support the top 10 languages. We automate our entire build and release pipeline, and we treat them as first-class citizens in our work and architecture. 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 our generation.
- Bachelor's 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 frameworks 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
- Graph Computing
- Knowledge Representation
- Automated Reasoning
- Expert Systems
If this is something you would be interested in, please send your application or call me on 0117 332 8100.