DEV Community

Edwin Kys
Edwin Kys

Posted on • Edited on

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

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

Hybrid vector database with flexible SQL storage engine & multi-index support.

OasysDB Use Case

GitHub Stars Discord Documentation Crates.io

Introducing OasysDB 👋

Quickstart 🚀

Contributing 🤝

The easiest way to contribute to this project is to star this project and share it with your friends. This will help us grow the community and make the project more visible to others who might need it.

If you want to go further and contribute your expertise, we will gladly welcome your code contributions. For more information and guidance about this, please see Contributing to OasysDB.

If you have a deep experience in the space but don't have the free time to contribute codes, we also welcome advices, suggestions, or feature requests. We are also looking for advisors to help guide the project direction and roadmap.

If you are interested about the project in any way, please join us on Discord Server. Help us grow the community and make OasysDB better 😁

Disclaimer

This project is still in the early…

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

GitHub logo tensorlakeai / indexify

A realtime serving engine for Data-Intensive Generative AI Applications

Indexify

Tests Discord

Create and Deploy Durable, Data-Intensive Agentic Workflows

Indexify simplifies building and serving durable, multi-stage workflows as inter-connected Python functions and automagically deploys them as APIs.

A workflow encodes data ingestion and transformation stages that can be implemented using Python functions. Each of these functions is a logical compute unit that can be retried upon failure or assigned to specific hardware.


PDF Extraction Demo

To give you a taste of the project, in the above video - Indexify running PDF Extraction on a cluster of 3 machines.
top left - A GPU accelerated machine running document layout and OCR model on a PDF,
bottom left - chunking texts, embedding image and text using CLIP and a text embedding model.
top right - A function writing image and text embeddings to ChromaDB.
All three functions of the workflow are running in parallel and coordinated by the Indexify server.

Note

Indexify is the Open-Source core…

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 😁

Top comments (5)

Collapse
 
bbkr profile image
Paweł bbkr Pabian

Congratulations!

I've also decided to add Rust to my portfolio. I come from Perl and Raku land and it took me 2 weeks of watching tutorials and doing examples to publish first simple module on crates.io. It was hard. Switching from very permissive languages to very idiomatic one with strict set of rules. But I like it so far. There is a breakthrough point - compiler messages are awesome and helpful if and only if you know what they are about. So there is brick wall of Option / Result / borrow checker / lifetimes / fat Enums / traits / macros philosophy to climb up first.

I wish you (and you project) all the best.

Collapse
 
edwinkys profile image
Edwin Kys

Thank you!

When building a project in Rust, you always need to fight the borrow checker 😂
When maintaining it or building on top of it though, the borrow checker suddenly become your friend.

Collapse
 
dev188007 profile image
Winston Sosa

Wow! Great~!! ❤️

Your experience and story are truly impressive! I am currently self-learning Azure, Rust, and front-end technologies. With over 5 years of extensive experience in software development across various fields such as MERN Stack, PHP Frameworks, Python, ASP.NET, and JAVA, I initially decided to specialize my services for startup companies. However, I soon realized that my existing software engineering skills were not sufficient for success in this endeavor.

I've been struggling to choose open-source projects to contribute to recently, feeling a bit stuck in that regard. Your live story is truly awe-inspiring and highly relatable for me. I'm truly grateful for the confidence your experience has given me. It's clear that contributing to open-source projects is a powerful way to expand my network and enhance my job prospects.

I'm eager to learn more about your story and I wish you the best of luck in your endeavors. I'll definitely be following your path.
Thank you once again! 👏

Collapse
 
edwinkys profile image
Edwin Kys

Hey, thank you for your kind words! Definitely try creating or contributing in open source. You don't need to be a programming wiz to bring value for other people 😁

Collapse
 
dev188007 profile image
Winston Sosa

Thanks for your reply.
Looking forward to your next valuable experience. ✍️