Ian Slane
Ian Slane Summer of Bitcoin Batch of 2024, worked on LDK

My Summer of Bitcoin Journey: Reflections on Open Source, Git, and Remote Work

As the summer comes to a close, I find myself thinking about the incredible journey I’ve had interning with the Lightning Dev Kit (LDK). My time at LDK, working on the LDK Node project has been amazing for me and my growth as a developer. This summer, I dove into bitcoin and the lightning network, working on the challenge of integrating BIP21 Unified QR code support into our node library. From working with complex payment protocols to collaborating with an amazing team, this experience has deepened my understanding of lightning, Git, and has sharpened my skills as a software developer! In this post, I want to share some highlights and personal insights from my time at LDK, without getting too technical, but instead focusing on the journey and the growth that came with it.

OPEN SOURCE

Entering the open source world can be pretty intimidating for new developers. The prospect of having your code visible to a large audience of experienced developers can be nerve-racking, especially when dealing with imposter syndrome. The fear of asking “dumb” questions only adds to the challenge. But, with time and persistence, navigating this space becomes much easier. I experienced these feelings firsthand. Unlike many of my peers who pursued computer science degrees, my academic journey took a different path. I initially studied psychology before dropping out and later returning to school after discovering a passion for hard money and coding. To save time, I transitioned to community college to earn my associate’s degree. Despite this unconventional route, I often felt gaps in my coding knowledge. Working with LDK and the LDK Node project has been instrumental in acclimating me to the open source environment. I vividly remember the anxiety of introducing myself to the LDK team during meetings. But, as I became more involved, I realized that it wasn’t so bad (although the nerves never fully go away!). This experience has significantly boosted my confidence — not just in coding, but in discussing and sharing my work openly. In just a few months, I’ve become much more comfortable pushing changes and participating in discussions, even if most of my comments are questions. The key is to take nothing personally; reviewers are there to help and provide feedback! Recently, while applying for jobs, I noticed a position that mentioned “Rust” and was associated with an open source company. After applying, I explored their issues and found a suitable first issue to tackle. I made the fix and had my pull request merged within an hour. It was refreshing to contribute so easily; just a year ago, I was a nervous wreck at the thought of just pressing “fork”!

GIT

Heading into my internship, I thought I was reasonably proficient with Git. I quickly discovered how mistaken I was. While I knew how to commit changes, that was about the extent of my Git skills. My previous experience with LDK involved a lot of Googling to figure out which commands to use and why. Looking back, I’m amazed at how basic my understanding was. For example, I used to stage all changes with git add ., blindly adding everything to a commit without considering the review process. I feel genuinely sorry for anyone who had to review my early commits (and I still feel a bit guilty for the reviewers of my current ones). Nowadays, using git add -p file.rs has been a game-changer for me, as it allows me to selectively stage changes and makes the review process much smoother. Additionally, I’ve improved my commit messages significantly. I used to write vague messages like “fix this thing” without much detail. Even so, I still struggle with writing commits in the imperative mood. Fortunately, the contributors at LDK provided valuable resources on crafting good commit messages. I occasionally get carried away and find my commit messages lacking, but I’m continuously learning and improving. Compared to when I started the Summer of Bitcoin, my commit messages are much more informative. One of my favorite aspects of Git is interactive rebasing. I spent countless hours this summer fixing my commit history. I vividly recall four separate days dedicated entirely to fixing commit history or splitting commits. It’s definitely an art form. Despite feeling accomplished with the results, I’d often find issues when checking the logs (git log -p), such as parts of code ending up in the wrong commits (this happened just yesterday). My relationship with interactive rebase has evolved from a bit of a struggle to an incredibly positive experience. It’s a powerful tool that I now thoroughly enjoy using and am proud to have mastered. I’ve heard that some computer science programs don’t teach Git in-depth, and if that’s the case, I’m thrilled to have gained this experience. I can now confidently say that I’m proficient in Git. While I still make mistakes, I know how to fix them too. Thanks, LDK, for helping me level up my Git skills!

WORKING FROM HOME

While working from home wasn’t a formal part of my internship, it has been a significant adjustment. I initially set up my schedule like a traditional job, working the standard 9–5 hours. However, managing my own schedule proved more challenging than I thought. During school, I worked on campus with an early start time of 7 a.m., so I decided to keep that routine. But without a clock-in system or a boss overseeing my schedule, sticking to it became difficult. The key to success in the Summer of Bitcoin was getting the work done, regardless of how or when it was completed. The lack of a structured environment, like a boss dictating break times or start times, made it challenging to maintain discipline. In the beginning, I found myself accidentally oversleeping and working late into the evening, which was a problem during the first few weeks. To overcome this, I adopted a routine similar to going into an office. I now start my day around 6 a.m., getting up, showering, eating, and dressing as if I were going to be seen by my colleagues. This routine has become a valuable part of my day and has helped me establish a consistent structure. With this new routine in place, things have started to run much more smoothly. Where I once felt apprehensive about the work-from-home lifestyle, I now feel confident that I can thrive in this kind of work environment!

BLOGGING

Blogging has been a new endeavor for me since the beginning of the summer. Although I’ve never considered myself much of a writer — especially when it comes to technical topics — I’ve found it to be less challenging than I initially expected. The biggest hurdle has been simply sitting down and doing the work. I structure my day by dedicating about 75% of my time to coding and the remaining 25% to researching lightning/bitcoin and writing blog posts. However, I often found myself caught up in debugging and troubleshooting, which would push my coding time beyond the 75% mark and leave little room for research and blogging. My mentor is in a different time zone, so I would work to get my pull requests pushed by the end of the day. This way, I could return the next morning to find helpful feedback waiting for me. As a result, my research and blogging time would sometimes be skipped entirely. Looking ahead, I plan to continue blogging even after the Summer of Bitcoin concludes. While my focus may shift from explaining my code to sharing what I’m learning and exploring new projects that I find interesting, I also hope to create tutorials and resources that I wish I had while learning.

THE FUTURE

As I approach the end of my internship with the Summer of Bitcoin and LDK, I can’t help but feel a profound sense of excitement about what lies ahead. I am incredibly grateful to have discovered a career that ignites my passion and keeps me motivated each day. The work I do not only engages me during work hours but also keeps me thinking and problem-solving long after I’ve logged off. This role has been a constant source of learning and growth, and as I begin applying for new opportunities, I find it challenging to imagine exploring any other industry. I’m excited to continue this journey and see where my passion for bitcoin, lightning, and Rust will lead me next