✈️

シンガポールでのGoのカンファレンスに参加してきました

2025/02/18に公開

こんにちは!かいと(@kaito_tsu2i)です!

先月、シンガポールで行われた GopherCon Singapore 2025 に参加してきました!!

https://2025.gophercon.sg/

海外のカンファレンスに初めて参加して、めちゃくちゃ面白かったのでセッションの概要や感想を書いていきたいと思います!!

会場に到着

初シンガポールでしたが交通の便がとにかく良くて、どこいくにも電車やタクシーで移動できたので迷うことなく会場にたどり着けました。


入り口でもらった名札を片手に

会場に入ると、、、


でかっっっっ!!!

豪華すぎる会場でびっくりしてましたが、なんと1個下の階のスペースに食べ物が用意されているとのことで朝ごはんを食べました。しかも途中のランチの前後にTea Breakがあり、そこでも食べ物や飲み物が用意されていて至れり尽くせりでした…!


特にこのアップルパイが美味しかったです

と堪能しているうちにカンファレンスが始まりました。数あるセッションの中からいくつかのセッションの感想を書こうと思います。

AI Programming with Go

シンガポール政府全体のサービスのデジタル化を引き受けているGovTech Singaporeの CTOの方がGoでAIをどのように使っていくかを解説してくださいました。最初はただChatGPTのAPIを叩くだけの話から、Llamaを使ってChatGPTのクローンアプリのデモやRAGの話、最後にはVision LLMについてと段階を追ってデモとともに解説していて、内容だけでなくプレゼンの進め方も勉強になりました。

Starting and stopping things

ゴルーチンがいつ止まるのか、どうやって止めるのか、それが止まったことをどうやって知るのかというテーマでGitHubでエンジニアをされている方が登壇されました。ゴルーチンはメモリなどのシステムリソースを消費するので、ゴルーチンを開始する時はいつ止めるのかを考えましょうねという話でした。ガベージコレクションの話がかなり出てきて、メモリ周りのことを一度しっかり勉強しなければ…と強く思いました。

登壇者の方がスライドやサンプルコードを公開されているので貼っておきます↓

https://github.com/davecheney/gophercon-sg-2025

(Wrong) Comparison is the Theif of Joy

Goにおける比較をテーマに難易度Level 1から4までのクイズ形式で行われたセッションでした。Go初心者の僕でも段階を追って話を進めてくれるのでわかりやすかったです。その中で印象に残った話が、anyのスライスをmarshalしてからunmarshalすると型が変わってしまうことがあり、一見同じスライスに見えてもunequalと扱われることがあるという話です。比較するコードを書くときは注意深く考えることを心がけたいと思います。

Scaling Go Monorepo Workflows with Athens

東南アジアでNo.1の配車サービスを主にしたスーパーアプリであるGrabのエンジニアの方2人によるセッションでした。Grabではモノレポによるマイクロサービスアーキテクチャを採用しているそうです。なんと6万以上のディレクトリが存在するらしく、go getコマンドで1つのモジュールをインストールするのに最大18分かかっていたところを、GoのモジュールプロキシツールであるAthensを導入して、今や最大12秒しかかからないようになったそうです。そこでの社内での取り組みを説明するセッションで、ここまで大きな開発環境で新しいツールを導入する勇気やそれをやり切るチームの力に感動しました。

ここでランチ

なんとも豪華なランチの時間が来ました!


ビュッフェスタイル


デザートまで…!

今回は1人で参加していたので、せっかくなら誰かと話したいなと思い、適当に話しかけて一緒にご飯を食べていたら、まさかのGrabでエンジニアをやっているインドの方で、気づいたらGrabの人たちに囲まれてご飯を食べてました笑
しかも先ほど登壇者も一緒にいたので、ラッキーな出会いでした😊

普段僕はRubyを書くことが多いのでそのことを話すと、Grabのエンジニアの1人が「Rubyって最高だよね!日本みたいにコードが美しい!それに比べてGoは汚い」とRuby過激派に出会いました…笑(Goのカンファレンスなのに…)

話を聞くと、もともとGrabはRubyで書かれていたけど、今はGoのマイクロサービスに置き換わっているそうです。ただ、一部Rubyのコードもまだ残っているそうです。海外のエンジニアからRubyの話を聞くことは珍しいので面白かったです。そのあとは全く技術とは関係ない話で盛り上がってました笑

Testing GenAI application in Go

そしてランチを楽しんだ後は、testcontainersのコントリビュータとしてDockerで働かれている方のセッションでした。昨今LLMを使ったサービスが乱立していますが、そのLLMが出力した部分のテストはどうしますか?という話でした。そこで登壇者が提案したのがLLM as a Judgeでした。つまり、LLMのレスポンスを評価する別のLLMを作ろうということです。そこでtestcontainers-goとOllamaを使った実装方法を解説していただきました。LLM as a Judgeという案はすごく理にかなっていて面白いなと思いました。

Life, the Universe, and everything GO

最後にTinyGoなどのメンテナーで有名なRon Evansさんによる圧巻のプレゼンでした。もし我々の人生が1次元だったら…から始まり、Goで書かれた面白いシミュレーションをいくつも見せていただき、最終的には全員参加型のシミュレーションを行いました。ランダムに選ばれた人が拍手や「あー」という音などをたてます。次にその周囲の人がその同じ音を発して、参加者の赴くままに音が動くようなことでした。最後に相応しいインタラクティブなプレゼンで楽しかったです。

さいごに

初めてのシンガポールと初めての海外技術カンファレンスでワクワクしていましたが、期待を超える楽しさで、かつ勉強になりました。シンガポールに何度も行ったことのある友達からGrabという配車サービスが良いと聞いていたのでアプリをインストールしていて、実際Grabのおかげで移動がかなり楽&安くいけたのはありがたかったです。Grabの使い勝手があまりに良くて感動していた中、カンファレンスで実際に開発しているエンジニアの人と話せたのは非常に良い経験になりました。また、Grabで呼んだタクシーの運転手の方からシンガポール政府の話や衣食住の話などを聞けて、シンガポールに対する解像度が少し上がりました。

いつか海外カンファレンスで登壇したいな…と思いつつ、今回は旅行も兼ねて参加できて良い思い出になりました。シンガポールがあまりに快適すぎたので、いつか住んでみたいなと夢見ています笑

ここまで読んでいただきありがとうございました!

Discussion