Are you looking for a challenge in the summer? Apply for Google Summer of Code, learn about Open Source development and contribute to Weaviate!
Read more about the program and apply at the Google Summer of Code website.
Weaviate is an open-source vector search engine that stores both objects and vectors, allowing for combining vector search with structured filtering with the fault-tolerance and scalability of a cloud-native database, all accessible through GraphQL, REST, and various language, clients.
We value initiative, creativity, and motivation. To show your initiative, creativity, and motivation, add your ideas on how you would approach this challenge to your submission. Please also mention your previous projects (if any) and which technologies and tools you are comfortable with. In addition, don't forget what you want to learn during the Summer of Code competition, both in terms of technology and other (soft) experiences.
Don't hesitate to contact us for questions about the challenge and the Open Source project Weaviate.
If you’re interested, You can apply through our form, and don't forget to apply on the GSoC website.
Depending on the challenge, different skills are preferred. It does not mean that you should be an expert in these technologies, but make sure to show strong motivation for what you want to learn.
1. Make a new multi-model example with weaviate (e.g. images and text), using the CLIP model or a new multi-modal ML model.
Description & Required Skills: The ability to understand Weaviate’s Core and its vector search structure are crucial. Understanding of multi-modal ML Models, medium-advanced knowledge of phyton, a basic understanding of docker and docker-compose (containerization) are required.
Topic: Python, New Feature, Machine Learning, NLP
Difficulty Level: Hard
Documentation link:
Developers · Weaviate Documentation
Modules · Weaviate Documentation
CLIP · Weaviate Documentation
Description & Required Skills: It’s a beginner-level project. Ability to experiment with new features to add new examples using either an existing module or via a new module. Ability to understand Weaviate’s Core and its vector search is important. Being proficient in Python is required.
Topic: Python, New Feature, Machine Learning, Demo
Difficulty Level: Easy
Documentation links:
Awesome Weaviate · GitHub
Description & Required Skills: Creating a Weaviate.js Module to be able to work on web browsers and make enhancements to the weaviate-js module.
Future Enhancements: Making a dashboard like Weaviate Python Client but a dashboard from where people can interact with weaviate cloud instances.
Topic: Web/Fronted, New Feature, Dashboard
Difficulty Level: Medium
Documentation:
JavaScript · Weaviate Documentation
Weaviate CLI · Weaviate Documentation
4. Make a new Weaviate module (e.g. gene2vec, or a new type of ML model)
Description & Required Skills: Creating a new type of weaviate module by using our Weaviate.go module. Basic knowledge of golang is required.
Topic: Golang
Difficulty Level: Easy
Documentation:
Gene2vec · GitHub
Description & Required Skills: Check the Go Documentation and Modules Documentation below to get an understanding of how to create new/custom modules. The knowledge of Machine Learning & NLP Based Models like text2vec, word vectors, etc. is important. Medium-advanced knowledge of golang is desired.
Topic: Golang, New Feature
Difficulty Level: Hard
Documentation:
Go · Weaviate Documentation
Custom modules · Weaviate Documentation
Modules · Weaviate Documentation
Description & Required Skills: Create a new CLI or improve upon the existing CLI to make it more User Friendly, and be able to interact with Weaviate instances (running in the cloud) in a better manner. Medium knowledge of phyton required.
Topic: Enchantment, New Feature, CMD, CLI, Phyton
Difficulty Level: Easy
Documentation:
Weaviate CLI · Weaviate Documentation