DEV Community

Emmanuel Ogbuefi
Emmanuel Ogbuefi

Posted on

Drag, Drop, Screenshot: Building My First Open Source Feature for Hacktoberfest

Hacktoberfest is an exciting annual event that encourages developers to give back to the tech community by contributing to open-source projects throughout October. It's a time when we can enhance, change, and share our ideas, code, and time. I decided to participate in Hacktoberfest not only to enhance my skills but also to boost my resume. My primary motivation was simple: I wanted to contribute to a real-life project.

Finding a suitable project was easier than I expected. I came across several repositories with open issues through Dev.to, which directed me toward opportunities where I could make a difference. However, the real challenge began when I started diving into the codebase.

Understanding the existing code took a few days, and that’s when I had a revelation: being a software engineer is less about writing code and more about learning to solve problems. At first, I struggled to connect the dots and comprehend the structure of the code. One of my significant obstacles was setting up the project assigned to me. It felt overwhelming at times, especially when dealing with Docker, containers, and images—elements I had never worked with before. This experience forced me to stretch my knowledge and adapt quickly.

The feature I was tasked with required users to take screenshots, allowing them to select both the resolution and the area by dragging their cursor. It was a challenging endeavor, especially since I was also learning TypeScript during this process. Self-doubt crept in frequently; I worried that I might inadvertently break the codebase. Despite these fears, I persisted, working diligently for several days.

One of the more complex aspects was implementing the overlay that would activate when a user clicked on the camera icon. This part of the task required a deep dive into JSX (JavaScript XML), which was new territory for me. After overcoming the hurdles of learning and implementation, I finally submitted my pull request (PR). The excitement I felt upon submission was immense; I could hardly believe I had completed this feature.

As I waited for the PR review, I felt a mix of anticipation and anxiety. Finally, the moment arrived—I received notification that my PR had been accepted! Looking back, this experience taught me a valuable lesson: persistence is vital in software engineering. It’s not just about the code we write but also the determination to overcome challenges and grow as developers.

Top comments (0)