- 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
- 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 visualisations 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.
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 organisations 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 9,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.
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.