thumbnail-sp
thumbnail

青山 裕良

エンジニア

ソフトウェア・プロダクト・サービス開発

※本記事は2023年10月に取材したものです。サービス名称や所属は取材当時の内容です。

自己紹介をお願いします

2022年4月に新卒入社した青山裕良です。2021年のインターンに参加し、効率的な特定物体アノテーションを実現するWebアプリケーション開発に取り組みました。入社してからは Creative チームに所属し、いくつかのプロジェクトで Web サービスを開発をしながら現在2年目になります。大学では手術ロボットのメカ設計やバイラテラル制御、ヒューマンロボットインタラクション系の研究をしながら過ごしていました。その他、アルバイトでマニピュレータの ML 制御や Web フロントエンド開発、テニスコーチなどをしていました。

現在担当している主な業務内容や具体的な流れについて教えてください

現在は主に3つのプロジェクトでサービス開発をしています。

1つ目は、EC サイトの開発です。PFN 3D Scan でスキャンされた 3D アセットの綺麗さを活かすことを目指し、企画検討や技術選定から関わっています。開発メンバーは自分のみで、主に VP・マネージャーの2名と週に1回30分の議論と進捗確認をしながら進めています。技術スタックはフロントエンドに Next.js、バックエンドに Node.js、インフラには Google Cloud Platform を採用しています。

2つ目は、ロボットの UI (ユーザインターフェース) 開発です。 もともと社内で作られていたロボットを操作するための Web UI を作っています。API サーバは ROS のノードとして建っていて、UI 側はそのポートを介してロボットと通信します。フロントエンドは Vite + React を使用しています。実機開発ということもあり、チームで週に1日の出社推奨日を設定し、オフラインでコミュニケーションをとりながら進めています。

3つ目は社内イベント管理アプリ PFN Venue の開発です。PFN では社内イベントが比較的活発に開催されていて、 LT 会やテックトーク、読書会や PFN Day などがあります。PFN Day は年3回、丸一日かけて行われる PFN 全社のテックイベントのことです。PFN Venue はこれらのイベントで話されたことを後日振り返りたかったり、そもそも参加できなかったために録画を見たいという需要、またはイベント当日にスライドや開催場所の情報へのアクセスを簡単にするなどの目的で開発されています。つい最近、開発のリードを交代して順次改良を進めています。こちらも Vite + React を採用し、裏側には Firebase を使っています。

その他、これまでには1ヶ月だけ集中して数人のメンバーで Crypko Playground を開発したこともありました。

ここまでの話で少し伝わっているかもしれませんが、かなり自由な環境で過ごしています。使用する技術スタックはもちろん開発メンバーに任されていますし、プロジェクトに参加する流れも様々です。現在の3つのプロジェクトはそれぞれ、社内 Slack で募集をかけていて手を挙げたもの、社内の知り合いから手伝って欲しいと声をかけられたもの、VP からこういうモノが欲しいという話を聞いてスタートしたものといった始まり方でした。

業務時間の使い方に関しては、複数のプロジェクトに参加している場合、各プロジェクトにあてる工数の割合はエンジニアリングマネージャーなどと相談しますが、実際の業務時間は各々の裁量に委ねられています。私の場合はチーム開発より1人で開発していることの方が多いため、週のはじめにチーム開発でアサインされたタスクを全て終わらせてから、残った時間を1人開発タスクに使っていることが多いです。

 

入社してから現在まで PFN で成長したと感じることはありますか?

成長したことによってなんとかなっています。

現在はいくつかのプロジェクトで Web サービス全体の開発をしていますが、入社前はアルバイトで書いていた Web フロントエンドだけが多少書けるくらいのレベル感でした。学生時代は複数人で開発していたので 1人でゼロから作った経験もなかったですし、(PFN インターンを除いて) バックエンドを書いたこともクラウドや Kubernetes を触った経験も一切ありませんでした。

成長のきっかけとしては、入社1年目の業務で得た部分が大きいと思います。入社直後、古典絵画から鉛筆スケッチ・CG イラストレーションといった幅広い画風のイラストに写真を変換する Scenify という Web アプリを開発しました。入社時点ですでに学習されたモデルとアプリの構想自体はあったので、具体的なアプリの構成やデザインについての議論をしながらプロダクトのイメージを固めていきました。開発メンバーは2人で、私がフロントエンドとフロントエンド側のインフラとバックエンドの手伝い、もう1人の方は入社3年目でバックエンドとバックエンド側のインフラ、その他プロダクトデザインやマネジメントなども担当されていました。

まずはフロントエンドの技術選定で Next.js を採用するところから始まり、ESLint や Prettier の設定・多言語対応を経て、数ヶ月かけて開発しました。その間、Wasmを使用したクライアント側での画像処理など、比較的新しめな技術についても勉強しながら導入しました。

バックエンドは Django、インフラは Alibaba Cloud の Kubenetes サービスを使用しました。どちらも初めて触りましたが、わからないことを聞いたり調べながら身につけました。

あとは技術的な成長以外の話もしますと、これまで PFN Day の運営やノベルティグッズのデザイン、インターンシップの運営や採用面接など、エンジニア業務以外のお仕事もさせていただきました。個人的にはエンジニアにとってもイベント計画能力やコミュニケーションスキルのような部分は非常に重要だと考えていて、身につけていくとどこに行ってもなんとかやっていけるような自信が付いたりもするので、なるべく積極的に参加するようにしています。

PFN に入社して良かったと特に感じる経験はありますか?

経験ではないですが、毎日楽しく過ごすことができているので入社して良かったとは感じています。なので、なぜ楽しめているかについて私なりの考えをお話ししたいと思います。

1つは抱えているタスクの幅が広いことだと考えています。 PFN は機械学習をベースに金融・材料・創薬・エンタメ・教育など、様々な分野でチャレンジを続けている珍しい体制の会社だと思っています。そのような体制だからこそ、モチベーションドリブンでやりたいタスクを比較的自由に選択でき、フロントエンド・バックエンド・インフラを始めとするプロダクト開発全体を一貫して見れることも多く、常に新鮮な気持ちで業務にあたることができています。

もう1つはコミュニケーションが取りやすいことです。社内 Slack はもちろんのこと、PFN Day で今まで話したことのなかった社員とお話しする機会などもあります。こうした気軽なコミュニケーションがあることによって、新しい知見を得たり、開発中に直面した問題について相談をしたり、逆に他プロジェクトのサポートを頼まれたりと、多くのメリットを感じています。

また、西川さんや岡野原さんをはじめとする経営陣の考えを直に聞き、議論をする機会がカジュアルにあったりもします。

他にも、社内様々なプロジェクトに所属する社員が集まって Optuna にコミットする開発スプリントイベントなどを通じたコミュニケーションなどもあります。余談ですが、私もそのイベントに参加して Optuna Dashboard に初めての OSS コントリビュートをしました。

最後にメッセージをお願いします

私はもともと機械学習周りの知識も非常に浅く、PFN が社内全体にどのような業務をどれだけ抱えているのか全く想像がつかなかったので、入社前は本当に自分の仕事があるのかという漠然とした不安がありました。入社してからは社内で様々なプロダクトが開発されていることを知り、現在では非常に優秀な方々に囲まれながら自由に楽しく多種多様な業務に取り組めています。

そんな私の今の目標は社内の有用な技術をできるだけ多く、その良さが最大限伝わる形で社会に出していくことです。誰かの役に立つ、または面白いプロダクトを作りたいというモチベーションをお持ちの方、新しい技術を実装しながら勉強するのが好きな方、刺激のあるエンジニア生活を送りたい方など、皆さまにご興味を持っていただけると嬉しいです!!

 

 

Preferred Networksを
もっと知る

Contact

お問い合わせはこちらまで。