Ever since I started diving deeper into open-source development, I’ve wanted to contribute to the Hep Software Foundation (HSF). Last week, I finally merged my latest pull request: "fix: convert makeRequest() to async/await with proper error propagation"!

Before my fix, makeRequest() relied on messy, legacy promise chains. While it worked fine on happy paths, it frequently swallowed errors during network drops, making debugging a nightmare for downstream tools. I refactored the function to clean, modern async/await syntax and added explicit try/catch blocks to ensure failed requests properly bubble up to the caller.

The code review process was a great learning experience. A maintainer pointed out a subtle edge case: unhandled rejections could still occur if the response stream failed mid-flight. They kindly suggested adding a custom NetworkError class to help callers distinguish between status-code failures and stream drops. I implemented their feedback and added a couple of unit tests. Shortly after, I got the green light: "Looks awesome, thanks for the clean refactor!"

This contribution taught me a lot about robust asynchronous patterns and defensive error handling. More than that, it showed me how welcoming open-source communities can be. Stepping out of my comfort zone to refactor core code was intimidating, but I came away with much stronger developer skills and a huge confidence boost!

View the merged PR on GitHub