TOP キャリア 働く競技プログラマー図鑑競技プログラミングスキルを活かし、業界に前例のないシステムに挑む


競技プログラミングスキルを活かし、業界に前例のないシステムに挑む
2021.5.19

小倉 拳 Ken OGURA

情報理工学系研究科数理情報学専攻/レーティング:赤/業種:製造・加工受託/職種:エンジニア/キャディ株式会社

AtCoder主催のCADDiコンテスト2018で好成績を収めたのを機にキャディ株式会社から声がかかり、同社での2年間のインターンを経て入社。プライベートでは約2年前からYouTuberとして活動、競技プログラミングの問題を解く様子の実況動画やアルゴリズム講座が好評を得ている。

競技プログラミングと私

競技プログラミングに熱中した中高生時代と、大学時代の意識変革

競技プログラミングとの出会い

 子どもの頃から算数の難問を解くのが大好きだった私は、中学、高校とパソコン部に所属しました。そこで情報オリンピックに出場したのが人生初の競技プログラミング体験です。当初、成績は振るいませんでしたが、中学2年生のときに先輩から「君のプログラムは確かに間違ってはいないけど、これだと処理が遅くて点数にならない」と教えてもらったことが転機となりました。「競技プログラミングではひとつしかない正解を見つけ出すのではなく、いかに無駄なく効率的なコードを書いて高速処理を実現するかが求められているんだよ」といわれ、開眼できたおかげで徐々に結果を出せるようになりました。また、Twitterを通じて同世代の競技プログラマーたちと交流を重ねたことも、競技プログラミングの魅力にハマる要因になりました。

仕事観

 正直、学生時代は就職先について「自分の競技プログラミングランキングならどこにでも行けるはず」という安易な考えから、単純に「待遇の良い大企業や有名企業へ」と思っていたのですが、ベンチャー企業など数社でインターンを経験するうちに、あらためて企業文化や自分の性格・考えと会社との相性、職場環境などの重要性を強く意識するようになりました。そんな折に出会ったのがキャディです。当社では「モノづくり産業のポテンシャルを解放する」というミッションの下、しっかりとした企業文化が社員一人ひとりの仕事の軸として浸透していました。また、チームビルディングに力を入れている環境にも惹かれて「ここで自分の力を活かしたい」と思いまいした。

仕事のリアル

複雑なオペレーションをシステム化する難題にやりがいを見出す

仕事内容

 キャディの受発注業務を効率化・自動化するための社内向けアプリケーションを開発するチームで働いています。私がインターンとしてチームに加わった当初はシステムのドメインモデルの設計に携わり、社内ユーザーの作業効率を上げるとともに、さまざまなオペレーションを的確に自動化するためのモデル検証を行いました。そしてある程度方向性が定まった後は、バックエンド用のデータ管理システムの設計やUXを高めるためのエラーハンドリングのガイドラインとサンプルの作成、API応答速度の高速化など、システムの地盤固めに取り組みました。

魅力とギャップ

 金属加工業の受発注に伴う膨大で複雑な社内オペレーションを自動化する。それはモノづくり業界でも前例のない試みです。たとえば、どの加工業務をいつどんなパートナーに発注するかを選ぶオペレーションひとつとっても、価格や技術力のみならず過去の発注実績や納期、後工程との兼ね合いなど多様な要素が関わってきます。従来、経験に即して適宜行われてきたその検討・判断のプロセスをいかに仕組み化し、さらにシステムに落とし込むか。「むずかしいからこそおもしろい」とやりがいを感じながら、日々事に当たってきました。

1日のスケジュール

09:00

 出社。

09:30

 PRレビュー・ドキュメントなどの書き物。

11:00

 朝会。バックログ(積みタスク)の確認と今日の予定をチーム内で共有。

11:30

 STUDDi(社内勉強会)の時間。

15:00

 ドメインモデル、スキーマ決め会議。社内向けアプリケーションの設計をバックエンドチームで話し合う。

16:00

 フィードバック会議。社内向けアプリケーションのユーザーから「この機能がほしい」などのフィードバックをもらう。

17:00

 スプリント(ひとつの開発期間)振り返り。今スプリントに起きた良かったことと悪かったことを共有し、次スプリントからどう対応するかを話し合う。

仕事と競技プログラミング

オールラウンダーとしてチーム全体をリードできる人財を目指して

活かせる・求められるスキル

 これまで人の手で臨機応変に行われてきたオペレーションをプログラム可能な設計に落とし込む仕事は、ちょうど競技プログラミングの文章題を試行錯誤しながら解き明かす作業に通じるものがあります。もともと難しい問題を解いたり、複雑な事柄をわかりやすくスッキリ説明したりするのが好きなこともあって、エンジニアとして競技プログラミングなどで鍛えてきた力をいろんな場面で活かせていると思います。ただ、それ一辺倒ではダメということも学びました。ひとつのオペレーションを抽象化しすぎてしまうと、システムが実地に活かせないものになってしまう恐れがあるからです。十分なコミュニケーションやビジネス的な目線や考え方あってのスキルだと思っています。

今後の展望

 いずれはオールラウンダーとして、主に技術的な面からチーム全体をリードするポジションにつきたいと考えています。そのために、今はエンジニアとしてバック、フロント、デザイン、サーバーなどひととおりの役割を経験し、技術スタックを触るとともに、チームとして新たな技術と向き合う際の具体的な手法をストックすることに集中しています。

活発にディスカッションする様子/ミッションと壁一面のホワイトボード/コミュニケーションを大切にする風土

小倉 拳 Ken OGURA

AtCoder主催のCADDiコンテスト2018で好成績を収めたのを機にキャディ株式会社から声がかかり、同社での2年間のインターンを経て入社。プライベートでは約2年前からYouTuberとして活動、競技プログラミングの問題を解く様子の実況動画やアルゴリズム講座が好評を得ている。