Solving the world's most complex problems, through knowledge engineering
Software Engineer (Core): Distributed Knowledge Graph and Reasoning Engine
Grakn Labs is a team of people driven by a purpose: to solve the world's most complex problems, through knowledge engineering. We are the inventors of the Grakn knowledge-base and the Graql query language. Our technology helps organisations in various industries, including Life Sciences, Defence & Security, Financial Services and Robotics, to build intelligent systems that we believe will change the world. From financial analytics to drug discovery, cyber threat detection to robotics disaster recovery, our technology empowers engineers around the world to tackle a higher order of complexity in knowledge, and solve the world's most complex problems.
In 2017, we were awarded Product of the Year by the University of Cambridge. After only a few years, our pioneering community has grown to 5K+ engineers, spread across 10+ countries around the globe -- and we're still counting. To continue pursuing this vision, we need to build a team of individuals who are not just the best and brightest in what they do, but also driven by a strong sense of purpose and compassion for the world.
Software Engineer (Core)
As a Software Engineer (Core) at Grakn Labs, you will be building a distributed database - Grakn, the query language - Graql, and all the technology infrastructure in the organisation.
Grakn is a distributed knowledge graph: a logical database that allows you to organise large and complex networks of data as one body of knowledge. Grakn provides the knowledge engineering tools for developers to easily leverage the power of Knowledge Representation and Reasoning when building complex systems. Ultimately, Grakn serves as the knowledge-base foundation for cognitive and intelligent systems.
Graql is Grakn's query language. 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 Grakn comes in two forms: Grakn Core - which is also open-source, and Grakn 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 Apache TinkerPop, Apache Hadoop, Apache Spark, Apache Cassandra, JanusGraph, gRPC, Protobuf, Bazel, Kubernetes and Zipkin. We are also still evolving the Grakn architecture to be even more scalable and we'll be adopting new frameworks that could revolutionise our performance. Our main (back-end) development language is Java, but we also provide our database client drivers in Python and Node.js, and we intended to support the top 10 languages. We automate our entire build and release pipeline, and we treat them as a first-class citizen in our 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.
You will be joining a team that cares deeply not just about the intelligence of the code, but also the elegance and simplicity of the solution. We have a strong sense of urgency, but we always know "why" something needs to be developed, and we make sure that we work purposefully. Although we are expected to be independent in the common engineering tasks, we collaborate in perfecting our ideas and solutions. Every time we have an opportunity to change our workflow, infrastructure or architecture to improve our technology performance, user experience or developer productivity, we take that opportunity, and we grow.
Start Date: 1st July 2020
- Bachelors degree in Computer Science or Software Engineering
- Demonstrable experience of leading a team
- 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 Hadoop, Spark, Cassandra, Akka, Storm, RabbitMQ, Giraph, Kafka, 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
Senior/Lead Software Engineers additional requirements:
- 5+ years of working experience as a Software Engineer
- Demonstrable experience in leading a team or mentoring others
Bonus skills (any advanced degree or experience in developing)
- Programming or Query Languages
- Knowledge Representation Systems
- Automated reasoning
- Formal Logic
- Database Systems
- Driven by a strong sense of purpose and vision
- Talented, collaborative and ambitious team
- Equity stock options - we share the success
- Flexible working hours, and fully stocked kitchen
- Open-source at heart - what we use, and what we produce
- Travel around the world and meet the community
- Work with developers, to serve developers
- Visa sponsorship, and relocation support