Cookies Psst! Do you accept cookies?

We use cookies to enhance and personalise your experience.
Please accept our cookies. Checkout our Cookie Policy for more information.

How I got my first Rust job by doing open-source

Hi everyone πŸ‘‹

I just want to share my story and my most recent achievement about landing on a Rust-oriented software engineering position at a startup by creating and maintaining an open-source project, OasysDB, an embedded vector database.

I initially posted this on Reddit and it received more attention than I could ever imagine. I also got a lot of questions from the community about starting an open-source projects or getting hired in general.

So, in addition to the content in my original Reddit post, I will expand it a bit more to answers some of these stuff.

Around 2 weeks ago now, someone opened an issue on OasysDB to integrate it to his platform, Indexify, an open-source platform to extract and process various unstructured data from different sources for generative AI apps in real-time.

He also connected with me via LinkedIn (my username is the same across all platforms πŸ˜‚). He noticed that I had my #OpenToWork badge on and asked me if I'm looking for a job.

I was like Yes! and told him that if his company is hiring, I'd love to apply. Apparently, he was actually hiring. We then scheduled a call and chatted about Indexify and OasysDB, The motivation behind it, the goal, and some other stuff.

We also had another call the day after. An interview of some sort but way more casual. We discussed about the team, the vision, and other stuff related to the role. He made the decision to bring me in so fast that it kind of mindblowing 🀯

We discussed the compensation over the weekend and after signing in some paperwork, I got my first Rust-oriented job! I started working last Monday and so far, I'm loving it. The team is also very helpful and friendly making the orientation period much more enjoyable.

I just want to say, if you're currently struggling to land a software engineering position, it might be worth it to try expanding your network by doing different stuff. Contributing or creating an open-source project is one of them 😁

Anyway, if you have any question, feel free to ask me in the comment!

I add some extra content below. Don't forget to check it out :)

  • Why I created OasysDB
  • Improving a chance to get hired (Community)

Why I created OasysDB

I initially created OasysDB to learn more about Rust and vector indexing. I had no prior experience with Rust and the only experience I had with vector databases was using them at the previous startup I worked at to build a custom RAG pipeline.

So, yeah. I don't even know what got into me πŸ˜‚

I came from Python and Typescript and my whole professional experience as a software engineer revolves around working with startups. One that I started myself and the other as a co-founder/founding engineer.

So with that, I have a pretty diverse skillset from web development both frontend and backend, devops, other engineering-related skills to UI/UX designs and even administrative stuff like incorporation.

Anyway, my point is that I'm adaptable and willing to learn.

After I got laid off from my previous job (the startup didn't take off), I decided that I wanted to add a new programming language to my arsenal.

I watched a couple of YouTube videos and read a couple of blog posts and decided to give Rust a try.

My favorite way to learn something new is to create a project using it. Since I read that Rust is a good language to create a database in and I have some experience with vector database, I decided to make just that.

Oh what a rough couple of weeks following that simple-minded decision πŸ˜…

I ended up learning more than just Rust and vectors. I learned a lot about creating and growing a open-source community, supporting the early users of OasysDB, and many other things both engineering and non-engineering related.

Overall, it is a wholesome experience that I would recommend anyone to try.

Self-promotion really quick 🀣, this is OasysDB now:

GitHub logo oasysai / oasysdb

An embedded vector database designed to run on edge devices. Lightweight and fast with HNSW indexing algorithm.

OasysDB Use Case

GitHub Stars Discord Crates.io PyPI License Contributor Covenant

πŸ‘‹ Meet OasysDB

OasysDB is a lightweight and easy-to-use embedded vector database written in Rust. With its simple API, it requires no learning curve to understand and use. OasysDB also requires no server setup and configuration. It is designed to be embedded directly inside your AI application simply by adding it as a dependency.

# Rust via Crates.io
cargo add oasysdb
# Python via PyPI
pip install oasysdb

Use Cases

OasysDB is very flexible! You can use it for systems related with vector similarity search such as:

  • Local RAG (Retrieval-Augmented Generation) pipeline with an LLM and embedding model to generate a context-aware output.
  • Image similarity search engine to find similar images based on their semantic content. See Python demo.
  • Real-time product recommendation system to suggest similar products based on the product features or user preferences.
  • Add your use case here 😁

Features

Core Features

πŸ”Έ Embedded Database: Zero…

View on GitHub

Also, this is Indexify, the open-source platform I'm currently working at:

GitHub logo tensorlakeai / indexify

A scalable realtime and continuous indexing and structured extraction engine for Unstructured Data to build Generative AI Applications

Indexify - Extraction and Retreival from Videos, PDF and Audio for Interactive AI Applications

Tests Discord

Indexify High Level

LLM applications backed by Indexify will never answer outdated information.

Indexify is an open-source engine for buidling fast data pipelines for unstructured data(video, audio, images and documents) using re-usable extractors for embedding, transformation and feature extraction. LLM Applications can query transformed content friendly to LLMs by semantic search and SQL queries.

Indexify keeps vectordbs, structured databases(postgres) updated by automatically invoking the pipelines as new data is ingested into the system from external data sources.

Why use Indexify

  • Makes Unstructured Data Queryable with SQL and Semantic Search
  • Real Time Extraction Engine to keep indexes automatically updated as new data is ingested.
  • Create Extraction Graph to describe data transformation and extraction of embedding and structured extraction.
  • Incremental Extraction and Selective Deletion when content is deleted or updated.
  • Extractor SDK allows adding new extraction capabilities, and many readily…
View on GitHub

Improving a chance to get hired (Community)

In addition to, of course, applying for jobs via some job boards like Indeed or LinkedIn, these are some other things you can try to get hired.

By the way, if you have things that work for you that I don't have in this list, please share and I'll add it to the list so that this list can help more people too 😁

  • Creating an open-source project: The project also functions as your portfolio of some sort. When people use your project, connect with them and help them succeed using it.

  • Local professional networking: Meeting people in person builds a deeper connection faster. Exchange contacts and don't forget to keep in touch with them.

  • Volunteer teaching how to code: There are programs like Code in Place teaching people how to code where you can volunteer as a teacher and connect with other teachers.

  • Comment your own experience 😁

Last Stories

What's your thoughts?

Please Register or Login to your account to be able to submit your comment.