{"id":2509,"date":"2024-11-12T00:28:47","date_gmt":"2024-11-12T00:28:47","guid":{"rendered":"https:\/\/blog.mozilla.org\/community\/?p=2509"},"modified":"2024-11-12T00:28:47","modified_gmt":"2024-11-12T00:28:47","slug":"contributor-spotlight-myeongjun-go","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/community\/2024\/11\/12\/contributor-spotlight-myeongjun-go\/","title":{"rendered":"Contributor spotlight \u2013 MyeongJun Go"},"content":{"rendered":"<p>The beauty of an open source software lies in the collaborative spirit of its contributors. In this post, we\u2019re highlighting the story of <a href=\"https:\/\/github.com\/junngo\">MyeongJun Go<\/a> (Jun), who has been a dedicated contributor to the Performance Tools team. His contributions have made a remarkable impact on performance testing and tooling, from local tools like <a href=\"https:\/\/firefox-source-docs.mozilla.org\/testing\/perfdocs\/mach-try-perf.html\">Mach Try Perf<\/a> and <a href=\"https:\/\/firefox-source-docs.mozilla.org\/testing\/perfdocs\/raptor.html\">Raptor<\/a> to web-based tools such as <a href=\"https:\/\/treeherder.readthedocs.io\/\">Treeherder<\/a>. Thanks to Jun, developers are even more empowered to improve the performance of our products.<\/p>\n<blockquote><p>Open source has offered me invaluable lessons that are hard to gain elsewhere. Working with people from around the world, I\u2019ve learned effective collaboration practices that help us minimize disruptions and improve development quality. From code reviews, writing test cases, to clean code and refactoring practices, I\u2019ve gained essential skills for producing maintainable, high quality code.<\/p><\/blockquote>\n<p><strong>Q: Can you tell us a little about how you first got involved with Mozilla?<\/strong><\/p>\n<p>I felt a constant thirst for development while working on company services. I wanted to create something that could benefit the world and collaborate with developers globally. That\u2019s when I decided to dive into open source development.<\/p>\n<p>Around that time, I was already using Firefox as my primary browser, and I frequently referenced MDN for work, naturally familiarizing myself with Mozilla&#8217;s services. One day, I thought, how amazing would it be to contribute to a Mozilla open source project used by people worldwide? So, I joined an open source challenge.<\/p>\n<p>At first, I wondered, can I really contribute to Firefox? But thanks to the supportive Mozilla staff, I was able to tackle one issue at a time and gradually build my experience.<\/p>\n<p><strong>Q: Your contributions have had a major impact on performance testing and tooling. What has been your favourite or most rewarding project to work on so far?<\/strong><\/p>\n<p>I\u2019ve genuinely found every project and task rewarding\u2014and enjoyable too. Each time I completed a task, I felt a strong sense of accomplishment.<\/p>\n<p>If I had to pick one particularly memorable project, it would be the Perfdocs tool. It was my first significant project when I started contributing more actively, and its purpose is to automate documentation for the various performance tools scattered across the ecosystem. With every code push, Perfdocs automatically generates documentation in \u201cFirefox Source Docs\u201d.<\/p>\n<p>Working on this tool gave me the chance to familiarize myself with various performance tools one by one, while also building confidence in contributing. It was rewarding to enhance the features and see the resulting documentation instantly, making the impact very tangible. Hearing from other developers about how much it simplified their work was incredibly motivating and made the experience even more fulfilling.<\/p>\n<p><strong>Q: Performance tools are critical for developers. Can you walk us through how your work helps improve the overall performance of Mozilla products?<\/strong><\/p>\n<p>I\u2019ve applied various patches across multiple areas, but updates to tools like Mach Try Perf and Perfherder, which many users rely on, have had a particularly strong impact.<\/p>\n<p>With Mach Try Perf, developers can easily perform performance tests by platform and category, comparing results between the base commit (before changes) and the head commit (after changes). However, since each test can take considerable time, I developed a caching feature that stores test results from previous runs when the base commit is the same. This allows us to reuse existing results instead of re-running tests, significantly reducing the time needed for performance testing.<\/p>\n<p>I also developed several convenient flags to enhance testing efficiency. For instance, when an alert occurs in Perfherder, developers can now re-run tests simply by using the \u201c&#8211;alert\u201d flag with the alert ID in the Mach Try Perf command.<\/p>\n<p>Additionally, I recently integrated Perfherder with Bugzilla to automatically file bugs. Now, with just a click of the &#8216;file bug&#8217; button, related bugs are filed automatically, reducing the need for manual follow-up.<\/p>\n<p>These patches, I believe, have collectively helped improve the productivity of Mozilla\u2019s developers and contributors, saving a lot of time in the development process.<\/p>\n<p><strong>Q: How much of a challenge do you find being in a different time zone to the rest of the team? How do you manage this?<\/strong><\/p>\n<p>I currently live in South Korea (GMT+9), and most team meetings are scheduled from 10 PM to midnight my time. During the day, I focus on my job, and in the evening, I contribute to the project. This setup actually helps me use my time more efficiently. In fact, I sometimes feel that if we were in the same time zone, balancing both my work and attending team meetings might be even more challenging.<\/p>\n<p><strong>Q: What are some tools or methodologies you rely on?<\/strong><\/p>\n<p>When developing Firefox, I mainly rely on two tools: Visual Studio Code (VSC) on Linux and SearchFox. SearchFox is incredibly useful for navigating Mozilla\u2019s vast codebase, especially as it\u2019s web-based and makes sharing code with teammates easy.<\/p>\n<p>Since Mozilla\u2019s code is open source, it\u2019s accessible for the world to see and contribute to. This openness encourages me to seek feedback from mentors regularly and to focus on refactoring through detailed code reviews, with the goal of continually improving code quality.<\/p>\n<p>I\u2019ve learned so much in this process, especially about reducing code complexity and enhancing quality. I\u2019m always grateful for the detailed reviews and constructive feedback that help me improve.<\/p>\n<p><strong>Q: Are there any exciting projects you\u2019d like to work on?<\/strong><\/p>\n<p>I\u2019m currently finding plenty of challenge and growth working with testing components, so rather than seeking new projects, I\u2019m focused on my current tasks. I\u2019m also interested in learning Rust and exploring trends like AI and blockchain.<\/p>\n<p>Recently, I\u2019ve considered ways to improve user convenience in tools like Mach Try Perf and Perfherder, such as making test results clearer and easier to review. I\u2019m happy with my work and growth here, but I keep an open mind toward new opportunities. After all, one thing I\u2019ve learned in open source is to never say, &#8216;I can&#8217;t do this.&#8217;<\/p>\n<p><strong>Q: What advice would you give to someone new to contributing?<\/strong><\/p>\n<p>If you&#8217;re starting as a contributor to the codebase, building it alone might feel challenging. You might wonder, \u201cCan I really do this?\u201d But remember, you absolutely can. There\u2019s one thing you\u2019ll need: persistence. Hold on to a single issue and keep challenging yourself. As you solve each issue, you\u2019ll find your skills growing over time. It\u2019s a meaningful challenge, knowing that your contributions can make a difference. Contributing will make you more resilient and help you grow into a better developer.<\/p>\n<p><strong>Q: What\u2019s something you\u2019ve learned during your time working on performance tools?<\/strong><\/p>\n<p>Working with performance tools has given me valuable experience across a variety of tools, from local ones like Mach Try Perf, Raptor, and Perfdocs to web based tools such as Treeherder and Perfherder. Not only have I deepened my technical skills, but I also became comfortable using Python, which wasn\u2019t my primary language before.<\/p>\n<p>Since Firefox runs across diverse environments, I learned how to execute individual tests for different conditions and manage and visualize performance test results efficiently. This experience taught me the full extent of automation&#8217;s capabilities and inspired me to explore how far we can push it.<\/p>\n<p>Through this large scale project, I\u2019ve learned how to approach development from scratch, analyze requirements, and carry out development while considering the impact of changes. My skills in impact analysis and debugging have grown significantly.<\/p>\n<p>Open source has offered me invaluable lessons that are hard to gain elsewhere. Working with people from around the world, I\u2019ve learned effective collaboration practices that help us minimize disruptions and improve development quality. From code reviews, writing test cases, to clean code and refactoring practices, I\u2019ve gained essential skills for producing maintainable, high quality code.<\/p>\n<p><strong>Q: What do you enjoy doing in your spare time when you&#8217;re not contributing to Mozilla?<\/strong><\/p>\n<p>I really enjoy reading and learning new things in my spare time. Books offer me a chance to grow, and I find it exciting to dive into new subjects. I also prioritize staying active with running and swimming to keep both my body and mind healthy. It\u2019s a great balance that keeps me feeling refreshed and engaged.<\/p>\n<hr \/>\n<p>Interested in contributing to performance tools like Jun? Check out <a href=\"https:\/\/wiki.mozilla.org\/Performance\/Tools#Contributing\">our wiki<\/a> to learn more.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The beauty of an open source software lies in the collaborative spirit of its contributors. In this post, we\u2019re highlighting the story of MyeongJun Go (Jun), who has been a &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/community\/2024\/11\/12\/contributor-spotlight-myeongjun-go\/\">Read more<\/a><\/p>\n","protected":false},"author":513,"featured_media":2510,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23321],"tags":[],"coauthors":[],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/community\/wp-json\/wp\/v2\/posts\/2509"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/community\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/community\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/community\/wp-json\/wp\/v2\/users\/513"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/community\/wp-json\/wp\/v2\/comments?post=2509"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/community\/wp-json\/wp\/v2\/posts\/2509\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/community\/wp-json\/wp\/v2\/media\/2510"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/community\/wp-json\/wp\/v2\/media?parent=2509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/community\/wp-json\/wp\/v2\/categories?post=2509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/community\/wp-json\/wp\/v2\/tags?post=2509"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/community\/wp-json\/wp\/v2\/coauthors?post=2509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}