CNCF LFX Mentorship — My Big Learning Experience with WasmEdge.

Omkar Acharekar
6 min readNov 27, 2022

--

Fall 2022 was one of the most life-changing experiences for me, I graduated from the Linux Foundation’s CNCF Mentorship Program.

In this blog, I will be sharing my experience encapsulating my journey, from the application process to the right end. Also, some tips for you to get into this internship, do great work, and make your mark on the open-source world.

If you are like me -

  • Excited for Open Source Software! 😃
  • Hesitant or scared to contribute to open source software as you are a beginner ? 😱
  • Looking for someone’s help to guide you in your initial phase ? 💁‍♂️

Then LFX Mentorship is a great opportunity to get started with open source software and learn many amazing skills.

LFX Mentorship? What’s that? 🤔

LFX Mentorship program is an initiative by the Linux Foundation to help developers to learn, experiment, and contribute effectively to open source communities. By participating in a mentorship program, mentees have the opportunity to learn from Mentors who are experienced open source contributors. Any student or working professional can take part as a mentee where they have to work for a term of 3 months. You also receive a stipend so that you can focus on the work.

The Internship gives you amazing opportunities to expand your network and get job opportunities upon graduation. The Projects you work on are high impact work that can go on your resume for years to come :)

💡 Mentorship guide : lfx.linuxfoundation.org/mentorship/guide

💡 For the CNCF organization, all project ideas get listed on GitHub cncf/mentoring repository.

My Application and Acceptance 📝

I applied for the LFX Mentorship 2022 to work on CNCF WasmEdge -Support Serialize and deserialize in WasmEdge Project.

What is WasmEdge ? 🤔

WasmEdge is a cloud-native WebAssembly runtime hosted by the CNCF. It is widely used in modern web application architectures (Isomorphic & Jamstack applications), microservices on the edge cloud, serverless SaaS APIs, embedded functions, smart contracts, and smart devices.

WasmEdge is written in C++, and has SDKs for C/C++, Rust, Golang, and JavaScript. Learn more about technical highlights of WasmEdge.

Resources : Website, Github, Docs.

Community: Twitter, Discord, Meetings.

I chose this project because:

  • I was very interested to learn WebAssembly and Cloud Native technologies and was familiar with Serializing techniques and had good experience with C++ Programming.
  • The use-cases that motivated the Serialize project were also the reasons that encouraged me to work on this project.

Application ✍

I was very interested about this particular project and community. Once the application started, I drafted a cover letter expressing about my interest in this project…What are my experience and knowledge about the topic…What I hope to get out of this mentorship etc.

For WasmEdge , they have several pretest for each of their project to demonstrate that you capable to handle the project and have the desired skills and most important the passion needed which I believe is primary motive of those tasks. In my case the pretest was to Serialize C++ Class . I completed pretest and submitted way before the deadline.

Considering my educational background, I was not expecting to get selected for the mentorship. But had a hope with my performance in pretest.

Finally, I got accepted for WasmEdge Project. It was a great and exciting feeling to start this journey!

💡 From my experience with WasmEdge community your resume or educational background hardly matters for Mentors to make the selection. Your passion and Enthusiasm really does.

My 3 Months Journey ! 📅

I will write another blog on my detailed journey on implementation.

In Brief:

  • Before starting my project in 1st week , I had laid out my implementation plans , studied Wasm Binary Format , had meeting with mentors and constructed my own system design to handle the serializing of the detailed components.
  • The WasmEdge AST Module which represents Wasm Module contains lot of sections to serialize. So I decided to break down whole problem into small sections so that everything is in the place and I would able to finish milestones in proper time.
  • During the implementation process, there have been changes in my timeline sometimes I try too many ways, experimented with many techniques, thinking about code quality etc. But I believe that’s important part of the learning process.
  • Implementing the unit tests and following TDD(Test-Driven Development) are very important in open source project and it also helps in finding implementation issues.
  • You have to remember communication with your mentor is very important in the process. I had weekly meetings with my Mentors Sir YiYing He and Sir Hydai to talk about the progress and next steps. They every time answered all my doubt, resolved my blockers and are always pushed me do be better.
  • They reviewed my commits many times , gave me valuable feedbacks and are great teachers, great professional developers and most importantly good human being from whom I learned many things in short span which I truly believed would be helpful in future.
  • In spite of the fact that I was not so aware about Web Assembly, Cloud Native I was able to learn during the internship duration and started loving the technology which makes the experience less intimidating than it initially seems.

After 12 weeks of Focused work, I was able to complete my project.

Graduation 👨‍🎓

12 weeks — the time really flies. I didn’t want this program to end. This program opened up a new world of open source and WebAssembly for me. But every good thing comes to an end. I successfully graduated from the program

Mentorship Graduation

Scope for Improvement 🤖

As I was new to WebAssembly and the project scope was so wide , I was not able to complete all the tasks during the 3-month mentorship keeping in mind the code quality in terms of speed, maintainability etc. But I will continue my work on it even after the mentorship period ends. Also there are still ways to optimize the code architecture the way the data structure is serialized by removing certain loopholes. I will try to refactor to make better performance.

Thanks and further reading 🙏

And that’s a wrap, Thank you so much for continuing reading this long on my journey as an LFX mentee for CNCF: WasmEdge. It was an amazing experience that I would cherish throughout my career.

I would be forever grateful to my mentor Sir Yi-Ying He and Sir Hydai for believing and providing me this opportunity. Without their continuous support and patience this wouldn’t have been possible. Also, Heartfelt gratitude to WasmEdge, LFX, and CNCF community for your contribution to the open source world by bringing this amazing experiences for us.

Finally, Future applicants, I believe you now will be passionate to explore more and I hope I will be reading your blog about your experience with this mentorship . If you have any queries, connect with me on GitHub or Twitter. I would be happy to help you out : )

Remember ! To be successful all you need is passion and enthusiasm for learning and growing .

--

--