It’s a nice Monday morning and I’m all charged to code up our startup dreams. I’m surprised that we have an unusual meeting with the founder in the morning, hop into the Gmeet room and the mood is not good. The founder starts telling how much he has thought about this and how painful it is for him and I can’t even believe this is happening. It was like a scene from a gloomy movie
In short, the startup was shutting down and I was out of a job. I let my parents down and this has left me thinking about all my life choices. I’m back to square one, applying to jobs and getting rejected or not hearing from them at all. Seeing everyone doing well in jobs they love and wondering if I would even get one. Going through job posting after job posting with requirements I’m sure I haven’t even heard of. This is going to be depressing.
Then it struck, this is not the worst thing that could have happened, I have a small savings pool and a really slow burn rate. This is my chance to start over again and maybe, with enough luck and willpower, I can even transform this thing into the best thing that happened. So pick myself up, and started putting together a plan to use open-source to find my next job.
Software has taken over the world and is essential to almost everything we do today. Just imagine this situation, all of the software that was ever written suddenly vanishes this very second. Think about how this will unfold. Your favourite shows on Netflix and youtube are gone. Without Twitter and Google, you won’t even be able to find out what hit you. Any sort of communication with anyone who is not in the same room will be impossible. Government institutions and Banks are down. We will be sent back 100 years but the shock will be so severe that it will be chaos all around and there is nothing we can do to help. This is how much the modern world is dependent on software to function. Now if software is what is running the world today, open-source software is its lifeblood. Every major service today is built on top of a slew of open-source software to support it. All the major programming languages, frameworks, libraries, the OS that runs your phone to the one that powers the world’s best supercomputers, all are built and maintained by an army of individual contributors working together to build and maintain these critical systems. Technologies used by all organisations from banks to governments to Fortune 500 companies are being powered by open-source. What started as a nerdy movement by some kids has literally taken over the world.
For an aspiring dev like me, this is gold. I want to be able to build up experience working on projects that have an impact on others and work with people who I respect and can learn from. Working open-source is just that. I’ll be working on projects that matter, everybody is welcome as long as they contribute something but the people I would work with will make it even more special. These are people who are doing what they love and have put in the 10k hours to master it. They are also keen to help out new devs who are looking to contribute to the projects they maintain. They will help you get started and guide you and they are incentivized to do so. The more developers that contribute to a project the better and stronger the project and the community becomes.
A word of caution, the maintainers of projects are also humans and they might not have the bandwidth to help and hold hands with every new dev that comes on board, be kind and understanding. The common rule of any group is give first, then ask. There is also a nice article that explains this.
So in short by investing your time in open-source, you are getting 1. the experience of working on software used by others 2. The guidance and mentorship of much more experienced devs and slowly as you progress 3. you are becoming an expert and will be viewed as one in the subfield that you want to work on.
Choosing the right Projects
Choosing a good project is critical. There are a billion different project that is doing a million different things so getting into a project that fits your skillset and tastes can be a challenge. But there is a right one out there. Let me explain how I find a new organisation to work with.
The best projects are ones that you are already a user of and use frequently. If you have some suggestions/improvements in mind even better! This is how open-source naturally works, where people go in and contribute fixes and improvements because they want it for themselves. Look into your toolbox and try to pick out projects that you love and would want to help out. Go to their Github issues page or slack/discord servers to interact with the community and get a feel of how the people there are. Try sharing your ideas in these groups and see their response, let them know that you are looking to contribute to this improvement. Maintainers love new contributors.
If you found nothing that fits you don’t worry. Google runs Google Summer of Code (GSoC) which is an actual internship that Google funds so you can spend the summer working on an open-source project. It’s pretty cool and If you’re in school this is a pretty solid opportunity. It is also a good place to find organisations that are looking for new contributors and will have projects for you. Go to the organizations page, which has a list of these organisations and try to find one that resonates with you. There are also other such programs you can consider
Check out organisations that these programs work with and you will have a large pool of awesome organisations to choose from. These programs, esp GSoC can be really competitive, the lucrative payouts attract a lot of people so it might be hard to get into. But the amount of exposure and credibility you get is unmatched.
You can also try to focus on other projects and organisations that are not partnering with these too. You can go to the Github explore page and find trending projects that tackle a wide range of problems. These would typically be smaller projects and hence will have more beginner-friendly issues open and the maintainers will give more time to help you get started and contribute to these projects. This is in my opinion more fun and rewarding since you are going to be a part of a tight group. This is the route I took in order to find Bentoml . This is was an upcoming project that was gaining a lot of traction and was the perfect project for me to learn more about ML and deploying ML models in production. These are the skill I would need for the type of jobs I’m looking for, ML Engineering.
Once you have found a project that works for you, stay consistent. Starting out is going to be hard, there is a lot of new things to learn and this can be intimidating. Take it slowly and set small milestones. Choose an issue marked as
good first issue if you can’t find any, talk with the maintainers and they will help you figure out the best ones. If you want a better guide on how all this works check out this video by the guys at freecodecamp.
Sharing your open-source works
Once you have your first pull request merged, that’s it! You have started on this wonderful journey into open-source. This is just the starting, go figure out the next issue to work on or maybe help refactor a section of the code or work on a new feature request. You’ll be learning and relearning a TON during each of this and this is good. You are slowly building up real experience working on a real project that has an actual impact.
Now, that you’re doing interesting work it’s important that you share your work and learnings. This is an important part of the process because it brings the good work that you are doing in front of others and they will provide feedback and second it slowly helps you show yourself as an expert in the field you work on. Both help you a lot when job hunting and in fact, if you are consistent at it, opportunities will start coming to you. I’ve seen this work for a lot of people, when you put yourself and your work in public it attracts others who have the same interests as you. They can be your leads to interesting jobs and connections that you didn’t even dream of. You’re increasing the chances for luck to act in your favour.
Sharing can be anything, a tweet, a blog post, a vlog on youtube, Instagram reels, anything. This is your chance to be creative and find something that works for you. I choose to work with Twitter since most of the people I look up to are on that platform and writing is the area I suck the least. I plan to write blogs and small tutorial series for Bentoml based on what I learn and the features I build. I’m also thinking of actively sharing my journey on Twitter to keep myself accountable and if I can inspire one person to do the same that will be all I need. If you are like me and sharing your work is something you’re not super comfortable with, check out Show Your Work by Austin Kleon to get some ideas. You can also check out the Embedded Entrepreneur by Arvid Kahl for some practical tips on how to engage with your audience.
Keeping yourself accountable
I’m one lazy dude. I tend to work best when in groups where I can be held accountable and we can help motivate each other during challenges like these. Even blogging about this and sharing my plan is a way for me to be held accountable and this will encourage me to stay consistent on this journey. This is something that I picked up from the #BuildinPublic community over at Twitter. They share all their progress publically and this keeps them motivated and accountable.
If you are also like me and need an extra push, a couple of friends have also decided to start a discord server for people who are doing the challenge so we can help each other out. Seeing other motivated people doing incredible work is really a good way to keep yourself on track. If you are interested reach out to me and I’ll send you an invite.
so this is my plan for the next couple of months. Work on Bentoml full-time and keep sharing my journey and learning from the same. Keep building my expertise in MLOps and let’s see what happens. If you are also like me and need an extra push, a couple of friends and I have started a discord server for people who are doing something similar so we can help each other out. Seeing other motivated people doing incredible work is really a good way to keep yourself on track. If you are interested reach out to me and I’ll send you an invite.
Catch you soon!