My experience of Summer Of Bitcoin'21
Sharing my Summer of Bitcoin experience from the application stage, getting shortlisted, projects I worked on, and what I learned as a mentee.
On June 26, I received an email saying that I was one of the 50 students selected for the Summer of Bitcoin 2021 program. I was really happy and felt proud of myself because to be very honest I didn't have high hopes at that point. In this blog, I will cover the selection process, and my experience at Summer of Bitcoin and will also share some tips for those who are interested in this program.
About the Summer of Bitcoin
A global program that matches students with open source, free software, and technology-related organizations working on bitcoin to write code and become part of these communities while making some BTC along the way! The organizations provide mentors who act as guides through the entire process, from learning about the community to contributing code. Students get involved in and become familiar with the bitcoin open-source community and put their summer break to good use.
To know more visit the Summer Of Bitcoin website.
🪴Selection Process
How I came to know about the program
I was scrolling through LinkedIn when I came across a post about the Summer Of Bitcoin. There was a form attached to it. It had some basic questions and a couple of essay questions like why do you want to take part etc. My tips for filling out the form would be to:
Be truthful and original. You have to understand that those who will select you are way more experienced than you so don't just copy-paste from random sites.
Make sure you don't make any grammatical errors. What I usually do is first write it down in Google Docs and use spell-check. You can also install the Grammarly extension to avoid typos and grammatical errors.
Gather information. Go through the official websites, or take help from past participants. In my case, this was the first time, so there wasn't much public information available, but yeah I did visit the official website. The reason I am saying this is you can understand what the motive of the program is and then write your essays on the same line.
1️⃣ Round 1: Problem-Solving
We are not supposed to discuss the problem and our approaches, so I would refrain from giving details
It was not a typical CP question, rather was more real-life and bitcoin-related. We had to find an optimal solution but satisfy the conditions specified. And then submit our code. After spending around 2 days on the problem I was somewhat satisfied with my result, and I thought of submitting it. I also described my approach in a README file.
2️⃣ Round 2: Follow-up question
Then the next day I received a follow-up question in the email where I had to explain in detail a better approach to my previous solution. I had one more approach in my mind which I then explained and also proved how theoretically it is supposed to give a better solution.
And a few days later I received this mail:
Yayy !! My solution was in the top 1% among thousands of applicants. At this point, I was pretty confident.
3️⃣ Round 3: "Navigating Ambiguity"
We were asked to find an issue in the official Bitcoin repo and explain what approach we would take to solve it. So I went to the issues tab and I didn't understand a single word since I was an absolute beginner. But I spent around 2 days trying to figure out the issues, even while doing this I learned a lot about stuff like fuzzing, AFL, and many other concepts. I picked one particular issue, tried to understand it end to end, researched a little bit, and came across an approach that I then explained.
4️⃣ Round 4: Telephonic Interview
2 days later I received a calendly link for a telephone round. In the telephonic round, I was asked to give a brief introduction of myself, my past experiences, and achievements, technical skills, and projects. Also, I was asked some questions like why I wanted to be a part of this program and what my expectations are.
After the call, my interviewer sent me a link for a video interview which was scheduled an hour later.
5️⃣ Round 5: Final Interview
Here I was asked more about my knowledge of Bitcoin and Blockchain, which programming aspects I like to work on, and some more HR questions. I also asked him questions regarding the program.
I prepared myself by researching a little bit on Bitcoin, going through the Bitcoin whitepaper, and watching a couple of introductory videos.
At the end of the conversation, I was pretty confident that I was able to ace it, cause I was getting positive vibes and my interviewer also shared some resources to get started (I have added them below).
📼 Sessions
We had some really amazing sessions with folks who are associated with Bitcoin for years. They have made contributions to Bitcoin Core and other bitcoin-related projects, and every one of them shared their perspective towards Bitcoin and how revolutionary this concept of a "Decentralised monetary system" is.
Here are some of the links to the recorded sessions:
The CS in Bitcoin with Sanket Kanjalkar
Deep Dive Into Bitcoin Mechanics with Matthew Zipkin
Decentralized open-source development with Amiti Uttarwar
Layering to Scale Bitcoin with Will Clark
You will find more on the Summer Of Bitcoin Youtube Channel.
Then we had some lectures which were given by Kalle Rosenbaum, he is the author of the book Grokking Bitcoin. I would suggest this book to any beginner. The book explains how a system of Cookie Token used in a Cafe can be improved step by step and we will end up with a system like Bitcoin. The last day of the first week ended with experimenting with the bitcoin-cli
. We created our own bitcoin full node in our machine and created a wallet. For testing purposes, we used the signet. Kalle gave us some coins which we then used to make transactions among our peers.
In between the lectures we used to have Breakout rooms that would give us a chance to discuss with peers and solve questions and resolve each other's doubts.
By the end of the first week, I went from having very little knowledge about Bitcoin to having a good grasp on fundamentals like consensus (proof-of-work), the P2P network, how bitcoin protocol upgrades take place, and innovations taking place in Bitcoin like the SegWit, Taproot, etc.
📦 Project Matching
Everyone was matched with a mentor and was assigned a Project. I was assigned the amazing 0xB10C and my project was to improve the "User-Space, Statically Defined Tracing" (USDT) support for Bitcoin Core. For the next few weeks, we collaborated with our mentors and made contributions to the various projects at the same time reviewing each other's work. I worked on adding some utxocache
tracepoints for events like flush
, addCoin
, spendCoin
etc. I learned a lot about the eBPF (extended Berkeley Packet Filter) technology, tracepoints, Linux Observability, navigating through large codebases like Bitcoin, and about open source in general.
🗓️ Weekly Seminars
For the first 5 weeks, we also had weekly seminars on Bitcoin and Lightning Protocol Development. I was in the Bitcoin Protocol Development, so we had these topics:
Week 1: Welcome to Bitcoin Protocol Development
Week 2: Segwit
Week 3: Mining & Network Block Propagation
Week 4: P2P
Week 5: Script & Wallets
Every week, we would be matched with a random peer and assigned a particular question on the topic we had that week. We have to work with our partners to brainstorm answers to that question. Then every week we will meet in a breakout room and discuss our findings with everyone else. It was so much fun learning and sharing our research with our peers.
📚 Resources
Mastering Bitcoin for more technical insights.
Bitcoin Whitepaper (must read !!)
After you have a good understanding of the fundamentals you can also dive into chaincode.gitbook.io/seminars to get into the depth of each concept.
📝 Takeaways
Prior to this Summer Of Bitcoin, I had very little experience with cryptocurrency, blockchain, and also open-source. It was not just a bitcoin learning experience but we had career-building, resume, and interview prep sessions too. I also kept a talk on Bitcoin Script. To make things even more amazing we also got some swags !! T-shirt and a Hardware Crypto Wallet.
But the most important takeaway would be the new connections I made, I made a lot of new friends who are really amazing at what they do, and I am still working with my mentor 0xB10C
and I will be joining back this summer as a student coach for the next cohort.
Final Notes
Since I was a part of the first cohort of Summer Of Bitcoin, the procedure was a bit different. This time they have made some updates to their application procedure and have also introduced Designer Track. You will find the new timeline on their website. To keep getting updates follow @summerofbitcoin.
I would love to extend my gratitude to Adi Shankara, Caralie Chrisco, and Adam Jonas for giving us this amazing opportunity and to my mentor 0xB10C for always helping me with my doubts. 0xB10C is very active in the Bitcoin Development Community you should definitely check out his work at b10c.me and follow him @0xB10C.
For those who are looking forward to applying for the next cohort of Summer of Bitcoin, all the very best. If you have any doubts or questions feel free to contact me, my DMs are always open.
(Source: summerofbitcoin.org)
I was recently invited to a podcast where I shared my Summer of Bitcoin experience and advice for the application rounds. We also discussed the future of Bitcoin and job opportunities in this space. You can check out the podcast as well 👇