2023-6-13
What is Mercari’s Go Study Group “mercari.go”? An Introduction to Initiatives and Enthusiasm for Future Activities
Hi, I am Naoki Sega (@nsega), and I work as a backend engineer at Mercari US.
I joined Mercari JP as a backend engineer in 2018 and continued on the same career path after I transferred to Mercari US in 2021. Over the years, I have worked mainly with Go as the development language for developing new microservices, running operations, and migrating existing services to microservices.
There are many cases of Go being used as a development language within Mercari Group, and our members provide cross-sectional sharing of use cases and give their opinions through internal study groups such as “Go Friday.” In this article, I’d like to introduce you to “mercari.go”, a Go study group that I organize here at Mercari.
What is “mercari.go”?
Since July 2018, Mercari has organized mercari.go, a study group for learning about the Go programming language. It is held every two to three months, and mainly features Mercari Group engineers who present information on the company’s use cases of Go, insights from individual development, recent trends, and various other Go-related topics. So far, we have held 21 events and had about 80 speakers. We are grateful to have received registration from over 100 participants for each event. Initially, we held these study sessions in a conference room within the company, with lectures and networking events; however, in 2020, due to the impact of COVID-19, we switched to our current online event format, which primarily uses YouTube Live.
The organizers of mercari.go, are acutely aware of the need to achieve the following three objectives:
1. Give back to Go’s technical insights
Through the development and operation of projects using Go, we want to give back to the community by sharing the knowledge we have gained from Go and by contributing to the overall improvement of the community’s skill level.
2. Publicize Go adoption cases
We want to actively publicize precedents of adopting Go to help other companies in their efforts to adopt this programming language, ultimately revitalizing the entire Go community.
3. Provide a casual environment for engineers to engage continuously
We aim to provide an environment where engineers can continuously input and output information casually, ultimately fostering new experiences and discoveries for each engineer.
Passion of the operational team for organizing mercari.go events
Within Mercari Group, volunteer engineers are responsible for handling the operation of mercari.go. The planning, promotion, speaker recruitment, and event management of the study sessions, as well as the reporting and application of activities to improve the organization of future events, all cover a wide range of content. We are therefore able to continue the activities of mercari.go by sharing event-related responsibilities among team members, ensuring that our primary work tasks are not affected, and utilizing the insights gained from previous events to refine our processes.
Additionally, when planning a study session, we give consideration to what is expected from all who attend according to their roles as participants:
・Attendees: Learn from the speakers, receive help with problem-solving, and ask questions to speakers.
・Speakers: Share something with the attendees, communicate their understanding, and receive feedback from attendees and organizers.
・Organizers: Give back technical knowledge and adoption cases to the community, and provide an environment where engineers (attendees and speakers) can continuously input and output information and thrive.
We strive to run study sessions to the best of our abilities in order to achieve a “win-win” situation for all participants involved, regardless of their role.
About our activities so far
Thanks to the many internal engineers who have cooperated in giving presentations, we believe we have been able to deliver a wide range of content. Here are some comments from participants regarding the content:
・There was enough background explanation for even Go beginners to understand, which made it easy to grasp the concepts.
・I did not know much about Cloud Spanner, but I was able to understand the implementation tricks, making the session very meaningful.
・The diverse themes made the session interesting.
・The shared experiences from actual product development are very useful for future product development.
Although the participants have varying levels of experience and proficiency with Go, we successfully provide practical knowledge by including various themes, which attendees can then apply to their future development work and technical skill improvement.
Meanwhile, both offline and online events have their advantages and disadvantages. For example, online events have the benefit of being accessible without location constraints, but they come with the downside of lacking casual conversations with speakers and attendees typically found at networking events at offline venues.
Considering the advantages and disadvantages of both offline and online events, we continue to experiment and seek ways to create a mutually beneficial space for everyone.
You can learn more about our previous activities at the links below. We report on each study session in the Mercari Engineering Blog after the event, where you can also find related published materials. Moreover, the online events are archived on YouTube, allowing you to watch the presentations. Here are a few examples of our activity report blogs and YouTube video archives from past events:
mercari.go#10: Several engineers who attended GopherCon 2019 presented at this session in a report format. They shared experiences unique to attending the conference, such as summaries of the various sessions, the state of the Go community at the event, and the level of each session.
mercari.go #15: In this session, we focused on the introduction of DB migration operational use cases and insights from half a year of addressing and improving Flaky Tests during development and operations. The content was indispensable for product development and operations.
mercari.go #21: For this session, we covered a wide range of topics, including development use cases with Go, an explanation of the SOLID design principles, and examples of testing with WebAssembly in Go.
Enthusiasm for future activities
We aim to continue organizing events that meet the expectations of all participants, and we hope that attendees can apply the Go insights gained through mercari.go in their respective fields.
Additionally, we hope that speakers will gain new insights from their experience of attending mercari.go events, find the motivation to participate in larger conferences such as “Go Conference” or “GopherCon,” try submitting CFPs for these conferences, contribute to Go open-source projects, and provide opportunities for new challenges that contribute to the Go community.
We would be honored to provide opportunities for learning and growth with you, our readers.
The next event is scheduled for June 15th (Thursday) from 12:00 pm, and more details can be found here:
If you’re interested, please join us. If you attend, we would also appreciate to receive your feedback via our survey, as part of our ongoing drive to improve future events.
The original Gopher was designed by Renée French and is licensed under CC BY 3.0.
The Gopher on the event header was designed by Takuya Ueda and is licensed under CC BY 3.0. (https://github.com/golang-samples/gopher-vector)