こんにちは、セーフィー フロントエンドエンジニアの沖です。 こちらの記事でも紹介されてますが、セーフィーには様々な種類のエンジニアが在籍しています。
- 組み込みソフトウェアエンジニア
- サーバーサイド / インフラ・SREエンジニア
- AI / 画像処理 エンジニア
- フロントエンドエンジニア
- iOS / Androidエンジニア
- 業務システムエンジニア
- QAエンジニア
- データエンジニア
各エンジニアは個人での技術研鑽はもちろんのことチームによっては定期的に勉強会を開いてその知見を共有しています。
チーム毎に勉強会の特色や目的が異なっていたりするので今回はその違いやどんな勉強会があるかについてお話したいと思います。
サーバーチームの勉強会
サーバーチームはサーバーサイド / インフラ・SREエンジニアが所属しているチームです。
サーバーチームでは、メンバー各々が持つ開発知見を共有しチーム全体の技術力を底上げすることを目的として隔週で勉強会が開かれています。
2名ずつ発表担当者を決めて、当日までにスライドを作成し約30分の持ち時間の中で発表と質疑応答をします。発表自体は20分で終了し、残り10分で質疑応答とすることが多いです。
こちらが勉強会の1例です。
「WebRTCについて」
内容:WebRTCの概要や通信の仕組み(シーケンス)などの解説。セーフィーの中でWebRTCは、カメラからのライブ映像を低遅延に閲覧するためや、セーフィーで提供しているウェアラブルクラウドカメラ「Pocket2」で使用できるグループ通話機能で使用されています。
開発に携わっている人以外のメンバーへの知見共有の意図もあり実施されました。
「Rustについて」
内容:Rust言語の概要やHello Worldまでの流れ、Rustの特徴である所有権についての解説。
セーフィーでは現状Rustでの開発はありませんが、新しい技術のキャッチアップの意図で開催されました。
「ディレクトリ連携について」
内容:Safie Managerというプロダクトに追加されたディレクトリ連携機能についての共有と、SCIMというものを用いて実装をした話をしました。
「Open Policy Agentについて」
内容:Open Policy Agentというポリシーエンジンを実験的に触ってみて、特徴や使用感などをデモと一緒に解説しました。
サーバーチームの勉強会では、実際に利用している技術の共有はもちろん、プロダクトには利用していない技術も勉強会のネタとして上がることが多いです。
イメージングチームの勉強会
イメージングチームは画像認識エンジニアが所属しているチームです。
イメージングチームで実施されている勉強会は2つあります。
1つは開発関連の勉強会、もう1つは論文調査共有会です。
開発関連の勉強会
開発関連の勉強会は、2週間に1回の頻度で開催されています。
テーマは、実際に開発しているプロダクトの内容や、各種ツールの紹介等が多くなっています。
例えば、以下のような勉強会が行われています。
「Yoloxの量子化とsnpeの使い方」
内容:SafieOne、AI-App: Store People Detection Pack(以降SPDP)で検討したネットワークであるyoloxの量子化技術、そしてSPDPで利用されるSNPE SDKの利用方法についての紹介
論文調査共有会
論文調査共有会も2週間に1回の頻度で開催されています。
画像認識エンジニアとして論文を読む習慣をつけることで最新の技術動向にキャッチアップすることを目的としています。
忙しい通常業務の中でも読む習慣をつけることが目的のため、共有のための資料を作るというようなことはしません。
紹介後には質疑応答があり、紹介者が分からなかった場合には皆で読みながら解決していきます。
以下が勉強会の1例です。
論文タイトル:「Rethinking Atrous Convolution for Semantic Image Segmentation」
内容:CVPR2022の2017年のセマンティックセグメンテーションの論文で、DeepLabV3として知られています。
こちらは業務でセマンティックセグメンテーションを扱う機会があり、その一環として扱いました。
イメージングチームの勉強会には論文調査共有会というアカデミックな内容が含まれているのが特徴です。
Webフロントエンドチームの勉強会
Webフロントエンドチームは、フロントエンドエンジニアが所属しているチームです。
既に実装されている機能の共有やチーム内のコミュニケーションの活性化を目的に毎週開催されています。
所属メンバーが順番に発表者となり話したいテーマを話していく形で進めています。内容の難易度は基本的に不問で発表すること自体を重要視しています。
スライドに関しては、発表者が要否を判断して発表を行いますが、スライドよりは実際のコードを見ながら議論するケースが多いです。
こちらが勉強会の1例です。
「認証の仕組み」
内容:フロントエンドで認証情報をどのように扱っているかの解説。
実際の実装を見ながらCORSやCSPなどの周辺知識を共有しながらディスカッションを実施しました。
「セーフィー独自で作成されたライブラリの説明」
内容:実装を簡略化するためにセーフィー内で実装されているライブラリの中身に関する説明。
利用する時の考慮点はもちろん内部実装を深堀ってディスカッションを行いました。
Webフロントエンドチームの勉強会では、実装している社員が変わっていくということを前提に既存のコードの深掘りを行うことが多いです。
メンバーによっては知っていることの復習になるケースもありますが、それは許容し発表することのハードルを下げるようにしています。
テーマは業務外の内容になることもありますが、比較的業務で利用している技術になることが多いです。
モバイルチームの勉強会
モバイルチームは、iOS / Androidエンジニアが所属しているチームです。
業務内外問わず個人が得た技術的知見をチームに共有することを目的に隔週で開催されています。
所属メンバーが順番に発表者となりテーマを決めてスライドを作成し20~30分で発表します。
その後質疑応答が10分~20分ほどあることが多いです。 どのようなテーマを取り上げるかはメンバーに任されています。
こちらが勉強会の1例です。
「RxSwiftについて」
内容:プロジェクトにRxSwiftを取り入れたタイミングで、実装者による初学者向けの解説を行いました。
「KMM(Kotlin Multiplatform Mobile)について」
内容:KMM自体を知らないメンバーにも分かりやすく概要から説明。
実際にチーム内で活用するならどうするか、どういったメリットがあるのか等を交えたディスカッションも行いました。
モバイルチームにはiOSエンジニアとAndroidエンジニアがいますが、勉強会は自分の担当しているOS以外の知見を広げられるいい機会となっています。
まとめ
セーフィーの社内では数多くの勉強会が開かれていますが、チーム毎に課題と思っていることや求められているものが異なるため、勉強会の目的ややり方にも特徴が出ています。
また、勉強会自体も昔からあるものから新しく始まったものまで様々です。
セーフィーには、技術的にモチベーションが高いエンジニアが数多く在籍しているので、もし記事を読んでセーフィーに興味を持っていただいた方はぜひご応募ください。