Job description
The Company
Vaticle is a team of people driven to empower engineers to solve complex problems. We are the creators of the strongly-typed database, TypeDB, and its query language, TypeQL. Our technology helps organizations in various industries, including Life Sciences, Defence & Security, Financial Services and Robotics, to build intelligent systems that tackle complex problems. 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 data and knowledge.
We've built a pioneering developer community of 12,000+ engineers, spread over 20 countries, and 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.
The Role: Software Engineer (Mid-level)
As a Software Engineer, you will be working on various products that make up our technology stack, which includes (but is not limited to):
- TypeDB: our strongly-typed database with a rich and logical type system, that empowers you to tackle complex problems, with TypeQL is its query language. TypeDB is built with open-source distributed technology stacks: RocksDB, ANTLR, SCIP, Bazel, and GRPC. Today, TypeDB is written in Java, but we are in the process of rewriting it in Rust, with clients implemented in multiple languages, such as Java, Python, and Node.js. The extensive build system of TypeDB is built with Kotlin and Bazel.
- TypeDB Cluster: the distributed version of TypeDB, using the same open-source distributed technologies (plus ZeroMQ), built through a reactive architecture implementing the Raft replication algorithms. TypeDB Cluster serves as our commercial offering that provides TypeDB users with scalability, security, configurability and management tools to effectively use TypeDB in a production environment. Today, TypeDB Cluster is written in Java, but we're now rewriting it in Rust. The extensive build system is also built with Kotlin and Bazel.
- TypeDB Studio: the Integrated Development Environment (IDE) of TypeDB. Studio allows developers to manage their TypeDB project source code (e.g. schema and data), interactively manage the database schema, data and users, as well as query the database to produce graph visualizations of their data. Studio is built using Kotlin and Jetpack Compose.
- Vaticle Factory: the in-house built CI platform that automates our entire software development life cycle from testing, benchmarking, tracing, quality checking, dependency upgrading, verifying (releases), and releasing. Vaticle Factory is designed for engineering teams building distributed systems on multi-repo architectures that require performance benchmarking. Vaticle Factory is built in the cloud, using the Kubernetes technology stack. Today, Vaticle Factory is written in Java and React, but we're now rewriting it in Rust, Angular, and TypeScript.
- Vaticle Cloud: the cloud platform in which TypeDB will be automatically deployed, managed, and orchestrated in any of the popular cloud services: GCP, AWS, or Azure. Similar to Vaticle Factory, Vaticle Cloud is built in the cloud, using the Kubernetes technology stack. Vaticle Cloud is also built in Rust, Angular, and TypeScript.
Across all technologies, your primary languages for development will be Rust, Kotlin, and TypeScript.
As a Software Engineer, you will be assigned to one technology at a time from the list above, rotating to various other projects over time, to acquire the skills and experience to grow as a Software Engineer, and impact various technologies in the company. Each assignment will be decided based your interest, skillset, experience, and the team development needs at the time. Your work will span across all aspects of software engineering; from programming and debugging, to architecture design, build engineering, release engineering, documentation, workflow automation, code reviews, as well as R&D.
Culture
You will be joining a team that cares deeply not just about the intelligence of the technology, but also the elegance and simplicity of the solution. We have a strong sense of urgency, but we always care about "why" something needs to be developed, and we make sure that we work purposefully. Although we are expected to be independent in delivering our responsibilities, we collaborate in perfecting our ideas and solutions. Every time we have an opportunity to improve our workflow, infrastructure or architecture to achieve better performance, user experience or developer productivity, we take that opportunity, and we grow.
Workplace
This job requires you to be fully vaccinated and in the office, following government guidelines.
Compensation
- The salary range for this position is £65,000 to £85,000 per annum
- Generous equity stock options package
Requirements
- Bachelors degree in Computer Science or Software Engineering
- 3+ years of working experience as a Software Engineer
- Strong in developing low-level systems in C, C++, Java, Kotlin, or Rust (most ideally)
- Strong in developing OOP architectures
- Strong in multithreading and concurrent programming
- Strong in database systems
- Strong communication, documentation, writing, and presentation skills
- Experience in working with distributed computing frameworks (such as Hadoop, Spark, Cassandra, Kafka, ZeroMQ, Akka, Kubernetes, Zookeeper, etc.)
- Experience in using cloud infrastructures tools like Kubernetes, Docker, Terraform, and/or Nomad
- Experience in using a cloud service: AWS, Google Cloud, or Microsoft Azure
- Experience with client-server architectures
- Experience with open-source software development and community
- Proficient in working with Unix systems (e.g. macOS, Linux)
Strongly desirable (i.e. bonus) skills:
- Experience in developing distributed systems and cloud environments
- Experience in build and release (CI/CD) engineering
- Experience in developing build systems using Bazel
- Familiarity with large-scale software architectures that span across multiple repositories
- Any advanced degree or experience in developing: Language Compilers, Type Systems, Automated Reasoning, Formal Logic, Database Systems
Benefits
- Driven by a strong sense of purpose and vision
- Talented, collaborative and ambitious team
- Work with developers, to serve developers
- Open-source at heart - what we use, and what we produce
- Comprehensive health and dental insurance - we take good care of our team
- Company pension plan
- Equity stock options - we share the success
- Frequent team lunches, and a fully stocked kitchen
- Beautiful office space in Soho, London
- Travel around the world and meet the community
- Visa sponsorship and relocation support
- Annual salary reviews, we ensure we continually reward
- Season ticket loan