My experience in Summer of Bitcoin 2022
Tags: internship, summerofbitcoin, lightningnetwork
Published: 2022-08-25 04:29:00

**Hi! I’m Leonardo Cumplido**

Since May 23rd, 2022, till August 15th I worked as a data science assistant in **LN Capital**, a startup that built <u>Torq</u>, a capital management software for routing nodes. This opportunity was possible thanks to [**Summer of Bitcoin**](https://www.summerofbitcoin.org/) (SoB) internship program. SoB is 
> a global, online summer internship program focused on introducing university students to bitcoin open-source development and design.

SoB has come to an end, so I'm wrapping up my experience in the program in this post. I hope you like it, and that it encourages you in some way to apply maybe next year :smiley:

## Admission process
When I got to know SoB, thanks to Adi, the SoB founder, I didn’t really know much about Bitcoin, and nothing about the Lightning Network (LN). I decided it was a good idea to explore the different organizations and projects I could apply to. 
At the very beginning, I was kind of lost. I didn’t really know where to start, because almost every project required some skills I didn’t have. Then, I found the right project for me: _Routing node research and automation_, from LN Capital :rocket:

### The reason I liked this project
Currently, I’m studying a Bachelor of Science in data science in **Tecnológico de Monterrey** :ram:. I’d love to become a data scientist because I like how you can find solutions to business problems, and how you can predict future behaviors, based on data, by manipulating that data with smart algorithms that come from a pure mathematical background :grin:

The project from LN Capital fitted my interests and current skills at that moment. The requirements where to know Python :snake:, have experience with Jupyter and Pandas, and have basic analytical skills and some experience cleaning and wrangling data into useful features :computer:. During my winter break I took a data science course in Coursera platform, and also read some books about Pandas library. So, I had just acquired those skills. It fitted like a glove.

### Competency test
Before writing my project proposal, a competency test was asked to be done :fearful:. It involved some basic data manipulation to calculate some things regarding the LN. Although the coding part didn’t bring trouble to me, learning about the LN did. As I mentioned already, I knew nothing about it then, so I began to learn what it is, what it is used for, why it’s a game changer in the Bitcoin ecosystem, and more technical stuff around how it works. 

### Project proposal
After completing the competency test and getting good feedback, I began my project proposal. It is titled _Clustering and outlier detection for tagging, automation and alerts_, and you can find it here: [Project proposal](https://docs.google.com/document/d/1rAoizpIDd-Jxct5f0Y5wV-H5q7iXYrZCmu-wk_NlKgI/edit?usp=sharing). The main objective was to produce interesting articles about the procedures, findings, and insights obtained from the data analysis. 

Henrik Skogstrøm, the CEO of LN Capital and **the mentor** of the project, liked my proposal, and after some days, I was told by him that I was accepted as a SoB intern at LN Capital :zap: :zap: :zap:

## First steps
The internship began on May 23rd. At that time, I was still attending classes at my university, so the first month of the program was a little chaotic for me. During that month I kept learning about the LN, specifically about routing nodes, their channels, and the transactions behavior in the network. I was handed 5 databases containing data from a real routing node, as well as data representing all the transactions that node has participated in. I began by exploring the data to create new features involving the channels behavior of the node. These features were useful for a more concise analysis, and the writing of an article.

One thing I loved about the SoB program is that they didn’t just connect us with the organizations and then left us alone, but they also offered weekly seminars about Bitcoin. So, with LN Capital I got to know the LN, and with the weekly seminars I learned about Bitcoin in a more deeply way than I could imagine learning by myself. 

When my courses were over, I had plenty of time to concentrate on my work and really get the most out of the internship.

## Clustering task and first article written
This was for me probably the most interesting work I did during SoB. It consisted of searching for a suitable clustering algorithm to group the channels of our routing node based on their features similarities. I liked this task for several reasons:

1. I was able to explore and apply different ML models to a dataset.
2. After selecting the appropriate ML model, I managed to visualize the clusters in a way that helped me understand why the model was giving these outputs.
![Visualizing clusters](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mfdozfkeadpm6fzgl4u8.png) 
3. Previous work was retaken to help gain insights from the clusters.

![Chart of the behaviour of 3 clusters](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v4ezqdj2bkdiu2k62xbk.png)
4. I wrote a first article, titled _Increasing our lightning node activity_, explaining the whole process, the whys of the analysis, the outcomes, and the conclusions. 

![Article](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wqvks95znqetjfbccsbv.png)

I published the article in my LinkedIn profile, where I reached 1,764 impressions, and in [my Twitter account](https://twitter.com/LeonardoCM219), where I reached 5,737 impressions. If you want to read the article, you can find it here: [Increasing our lightning node activity](https://drive.google.com/file/d/1G954CT7QNUrNHyatrPKDEUzB72HqmUWD/view?usp=sharing).

## The rest of my work
After writing the mentioned article, the middle evaluation period began. I uploaded all my work, in form of Jupyter notebooks, to a repository in [my GitHub account](https://github.com/LeoCumpli21). I passed the evaluation, and this gave me confidence to keep on working with the same quality as the last task. 

From then onwards, I worked on creating interactive visualizations of payment routes. First, I used Altair library for building a cool way of visualizing one or more payment attempts, whether they’ve been successful or not. This is useful because you can see which paths are taken more often, which are being the most successful ones, which channels charge the most fees, which nodes might not be reliable based on their forwarding behavior, etc. I wrote an article on this here: [Visualizing Lightning Network payments](https://dev.to/leocumpli21/visualizing-lightning-network-payments-1pfi).

Then, Henrik asked me to search for a way of visualizing the potential paths when rebalancing a channel. We find this interesting because it would be great to have a tool that helps node owners visualize potential paths to rebalance their channels. With it, they could select which paths to probe by filtering and sorting the data of the different possible routes. You can find the article I wrote about this here: [Visualizing Lightning Network payments](https://dev.to/leocumpli21/visualizing-potential-paths-for-rebalancing-channels-in-the-lightning-network-1d8l).

## Overall experience
I loved Summer of Bitcoin. I had the opportunity to begin a journey working with an emerging technology like is Bitcoin. I really like what LN Capital is building with Torq, and I really enjoyed my role with them during this internship. I learned a lot from these months, and I think I couldn’t have a better first experience working in a real project as someone analyzing data and extracting important features from it, to gain insights that help a user make better decisions with its routing node. 

I’m incredibly grateful with Henrik, my mentor. He had been supportive the whole duration of the internship. What I’ve done wouldn’t have been possible without his mentoring. 

Now that I got to know these technologies, I'm eager to learn more about them, and to continue this journey. Thanks SoB and LN Capital for giving me the opportunity to learn and grow as a developer, and as a person.

## How can you contribute to LN Capital
You can start by joining their Telegram group at ln.capital/telegram, and asking anything there. It's a very active group and Henrik is always solving doubts regarding Torq. 
You could also DM them in [their Twitter account](http://twitter.com/ln_capital).

Those could be the first steps in reaching LN Capital. If you're a node owner, then you could try Torq, and point all the things you consider are the best features, the weakest features that can be improved, and the things that are not still there that could be very useful for managing your node's data. All kind of input is welcomed and encouraged. Remember that Torq is a product in development, so having opinions on the product is very good for it to be improved.

On the other hand, if you are a developer and want to contribute to an open-source project, you could visit Torq's repository on [GitHub](https://github.com/lncapital/torq) and start exploring the way it's built. 
![Torq repo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/otl8lokfktifedqd5276.png)

The main programming languages used for Torq are TypeScript and Go. Check it out!