技術・デザイン

エキスパートを目指すiOSエンジニアが”開発以外”の分野で取り組む4つのこと
OSS活動、登壇、執筆、母校でのブートキャンプ

当社では多くのエンジニアが”開発以外”の分野で自己研鑽をし、自身の成長に繋げています。当社にはそれを後押しする環境や文化がありますが、具体的にどのように取り組んでいるのか、今回は「AbemaTV」を担当するiOSエンジニアの鈴木に話を聞きました。

Profile

  • 鈴木 大貴
    インターネットテレビ局「AbemaTV」を担当するiOSエンジニア。2014年サイバーエージェント新卒入社。コミュニティサービスでサーバーサイドを担当した後、iOSエンジニアに転向し、複数サービスの開発を経て、2017年3月より現職。
    GitHub

OSS活動をきっかけに、登壇、執筆の経験を得ることができた

開発以外で積極的に行っているのは、OSS活動・勉強会やカンファレンスへの登壇・技術書籍の執筆・母校でのブートキャンプです。今では、さまざまな取り組みをしていますが、全ての起点となったのはOSS活動だと思っています。

OSS活動を始めたきっかけは、サービス開発のために社内でたくさん作ったモックの備忘録として、GitHubにコードを残すようにしたことです。使わなかったけれど出来のいいものを残しておけば必要になったときに見返すことができるし、他にはないものを公開することで誰かの役に立てればと思っていました。それを繰り返すうちに、スターのつくものが出てきて、多いものだと現状1500個のスターがついているものもあります。備忘録だったものが続けるうちにOSS活動となって知見が溜まり、それをもっと多くの人に還元したいという気持ちから、勉強会やカンファレンスへの登壇にチャレンジするようになりました。そして登壇をすることで、自分の強みを周りに認識してもらえ、書籍執筆のお話までいただけたという具合です。

現在、業務では「AbemaTV」のiOSエンジニアとして、基盤開発をしています。アプリを作るうえでネックとなっているものを改善することがミッションです。
最近は、手入力だとミスが起こりやすいログ定義のオブジェクト生成を自動化し、そのオブジェクトをアプリ側で取り込むことでタイプセーフにログの送信ができる仕組みの導入や、テストコードの書き換え、MVVMの設計パターンに規律を設けるフレームワークの開発、などを行っています。

MVVMの設計パターンのフレームワークは2019年のtry!Swiftでもブース掲示を行い、設計思想や動き方などを説明しました。「AbemaTV」ではFlux + MVVMを採用していますが、その中でもMVVMはコーディングの自由度が高い設計パターンです。チーム開発をする中でコードレビューをしますが、エンジニアそれぞれにMVVMでのコーディングスタイルもあるため、本質からズレたレビューをしてしまうことが発生しがちでした。そのため、「このロジックはこう改善したほうが良い」という本質的な指摘ができるように、フレームワークを開発してある程度コーディングスタイルを整えられるようにしました。

2018年に「iOSアプリ設計パターン入門」という書籍を執筆したのですが、このお話をいただいたのは2017年のiOSDCで「いろんなアーキテクチャを比較してみる」というテーマで登壇したことがきっかけでした。GitHubで公開されているアーキテクチャのサンプルソースは、リポジトリ内でディレクトリごとにアーキテクチャのサンプルソースが置いてあることが多いため、一目で差分が比較しにくく、比較するにはウィンドウを2つ表示しないといけないことが多かったです。そこでブランチを使って異なるアーキテクチャのコードごとのプルリクエストを生成し、GitHubのプルリクエストの差分表示を利用することで違いを一目でわかるようにするという比較方法を編み出しました。内容が珍しかったこともあり、「アーキテクチャの人」という印象を持ってもらうことができ、出版に至りました。

※執筆した書籍「iOSアプリ設計パターン入門

課題感と貢献意欲を持って取り組む「ブートキャンプ」

2018年からは母校である会津大学で学生向けに「ネイティブートキャンプ」を行っています。全4回の講義と課題で、ネイティブアプリの運用を想定した開発ノウハウを短期間で学んで行くものです。
会津大学はコンピュータ理工の専門大学で、卒業後はエンジニアとして働く学生が多くいますが、学部1年生だったときに私自身が「知識はあるけどそれをどう使っていけばいいのかわからない」といった課題をもっていました。ベンチャー企業でアルバイトをする学生も多くいましたが、特にピュアネイティブの開発を業務で経験できる機会は少なかったです。学生のときから運用することまでを考えた実際の業務を体験できることは、キャリアを考えたり築くために必要なことだと考えています。だからこそ、私がサイバーエージェントで培ったものを後輩たちに少しでも還元したいと思い、このネイティブートキャンプを行っています。

チャレンジを後押ししてくれる上司や同僚の存在

様々な業務外の活動ができるのはサイバーエージェントにいるからこそだと思います。
OSS活動をより積極的にするようになったのは、入社1年目のときに「軽井沢で2泊3日のライブラリ開発合宿をやりたい」と自ら企画し、当時の上司である長瀬(現在は技術管轄の取締役)に承認をえて、実施したことがきっかけでした。長瀬はライブラリを公開して対外的な評価を受けることも成長につながるという思想をもって、若手エンジニアの積極的なアウトプットを後押ししてくれました。私は参加メンバーや日程、予算や当日の開催内容などを決め、自由にやらせてもらいました。開発したライブラリはGitHub上で公開し、合宿終了後1ヶ月ほどでトータル1000くらいのスターが獲れました。

当時のブログ

その後の登壇や執筆も、社内にそれらを推進する文化があることや、同じような活動をしている社員が多いこともあり、積極的に続けられています。
また、エンジニア社員の数が多いことも自身の成長の後押しとなっています。iOSエンジニアの人数は、メディア事業で約40人、「AbemaTV」は12人です。互いに切磋琢磨でき、同僚が書いたコードがヒントになって「それをこうしたら新しいことができそう」と発想のヒントになることが多々あります。

また、「ネイティブートキャンプ」は同じ会津大学出身の同僚と行っており、社内に志を同じくして協力してくれる人がいることも嬉しいことです。

エンジニアとして成長するために、対外的な活動はやったほうがいい

私はエキスパートエンジニアになりたいと考えています。自分に色々なタグを付けて有名になって、それを生かして仕事ができるようになりたいです。今は設計やアーキテクチャが得意なので、あと5年くらいしたらその分野のエキスパートになりたいです。これまでの数々の取り組みはタグを付けるためで、きちんとアウトプットすることが大事だと思います。自分の中にだけ貯めておいてもそれってただの記憶でしかない。また、開示することで誰かからフィードバックを受け、自分の中でより良いものへとアップデートすることができますしね。対外的な活動は、エンジニアとしての成長につながり、開発にも大きく生かされています。

2020年入社 新卒エンジニア採用実施中

現在、2020年入社の新卒エンジニア採用を行っています。1人でも多くのエンジニアを志す学生に、ぜひ当社のことを知っていただけると嬉しく思います。
まずは新卒採用エンジニアコースページをご覧ください。オンライン会社説明動画や選考情報を公開中です。

オフィシャルSNSアカウントで更新情報発信中
Page Top