Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

【22新卒 1年間の振り返り】第2回 畑違いの研究分野から研究開発組織に入っての1年を振り返ってみた

はじめに

こんにちは、技術本部 研究開発部 Data Analysisグループの金子です。

ここ半年毎日コールドシャワーを浴びています。最近は覚悟を決めずとも浴びれるようになり、春を感じる今日この頃です。

私がSansanに新卒入社してから一年が経ちました。本記事では、この一年間で取り組んだ仕事を振り返りながら、その中で学んだことや実際に働いて入社前に考えていたこととのギャップがあったかなどをみていければと思います。
タイトルにもあるように私は異分野から情報系の研究開発組織に入社しました。企業の研究開発組織に別の研究分野から入るというのは少し珍しい例かと思います。本記事が私のように情報系とは異なる分野から情報系の研究開発組織へ就職を考えている読者の方々の参考になれば幸いです。

自己紹介

私は大学では学部、大学院と生物情報という学際分野を専攻しており、生物とコンピューターサイエンスの狭間のような領域で寄生虫について研究していました。

研究では海外にフィールドワークに行ったり、自分でピペットを握ったりして実験も行いながら取得した遺伝情報などのデータをコンピュータを使って解析するというようなことをしていました。

エンジニアとしての経験に関しては、アルバイトとしてデータ分析関係の仕事を少ししていたものの、チーム開発の経験はなく、個人でコードを書いていたというレベルでした。

Sansanに入社したきっかけ

就職活動では、競技*1との両立や学生時代の経験を踏まえデータ分析系の仕事ができるところを探していました。

Sansanは働きながら自分の時間を確保できる環境がありそうだったこと、また事業内容も魅力的だったこともあり入社を決めました。

こちらのインタビュー記事などで入社の経緯や競技との両立に関しては詳しく語っているので興味があれば読んでみてください。
type.jp


入社前のイメージ

コンピューターサイエンスやデータ分析については大学時代に学んできたものの、機械学習を専門に勉強したことはなく、そこには不安がありました。

また、レベルの高い人が揃っていることも知っていたので、自分が彼ら彼女らについていけるかという不安もありました。

一方で面接やカジュアル面談で話したメンバーとの印象から和やかで自由な雰囲気を感じていたのでなんとかなるだろうと楽観的な気持ちもありました。

1年間で行ってきた仕事について

1. 需要予測モデルのパイプライン化(2022/5-6)

研修が終わって最初のタスクは、『Bill One』というインボイス管理サービスの需要予測のリプレースでした。『Bill One』では請求書という月次変動が極めて大きい文書を対象にしています。そのため、滞りなくデータ化するためにどのくらいの請求書が届くかということを予測することが課題となっていました。

メンターの方がPoC的に開発、運用されていた需要予測モデルがあったので、保守性と運用性の改善のため、Docker化、パイプライン化、RからPythonに移植するといったタスクを行いました。また、『Bill One』の急激な伸びにより直近でトレンドが変わってきていたこともあり、そのトレンドの変化を考慮できるように時系列予測モデルを修正するという性能改善も行いました。

今までに触ったことのないツールもありましたが、部内の新卒研修においてグループ内での標準的な開発方針に関して丁寧に教えてもらっていたことと、メンターのサポートもあり、ひと月ほどでスムーズに行うことができました。

まともにコードレビューをもらうことは初めてで、最初のPRで数十件のレビューコメントをもらったことも今となっては良い思い出です。

2. 自動化エンジンの開発(2022/6~9)

次のタスクは同じく『Bill One』の自動化エンジンの開発でした。

このタスクでは、請求書をスキャンした画像から会社名やコードなどの情報を抽出するエンジンを開発しました。現在利用しているOCRエンジンには、抽出したい項目の検出や手書き文字の認識に失敗するという課題が存在します。そこで、実際の画像とミスの傾向を比較しながら前処理や後処理を工夫することで、なるべくミスなく情報を抽出できるようにしました。

またこのタスクでは、APIとして他部署に提供したため、API開発やクラウドサービスの利用も必要で、アルゴリズム的な部分だけではなくインフラ部分の知識などサービス開発の幅広い経験を積むことができました。


技術的なことだけではなく、仕様を確定するためのヒアリングや検証用のデモ作成などを通して、活動範囲の広がりとともに研究開発部としてのPoCのやり方や動き方を学ぶことができたと思います。

3. 新システム移行に合わせた自動化エンジンの開発(2022/10~現在)

前項で作っていた大元のシステムのリプレースがあり、それに合わせて自動化エンジンも変更、新規開発が必要になっていました。

システム変更にあたって、データベースの構成をどうするかや、さらなる自動化策などを考案する必要がありました。そこで、部署外のエンジニアチームやシステムを利用するチームとの打ち合わせも頻繁に行いました。

他部署のエンジニアチームと一緒に開発することで違った開発スタイルを学ぶことができました。また、既存の機能の改善ではなく、新規機能の導入を経験することで新しく開発する楽しさや実際にサービスに使われる難しさを感じることができました。

まとめ

入社前はチーム開発や機械学習への専門的な経験の少なさの2点で不安を感じていました。

しかし、実際に入ってみるとチームメンバーのサポートなどもあり、そこまで壁を感じることはありませんでした。

この一年でバックエンドやインフラの知識も含めた幅広い技術に触れることができました。また、研究開発としてのPoCの進め方やサービスへの展開の仕方など企業の研究開発としてのビジネススキルに関しても少しは身につけられたかな、と思います。

終わりに

この記事では企業の研究開発組織に別の研究分野から入社した身から一年を振り返り、そこで得た学びなどを書きました。

当初は不安もありましたが、研究で得たスキルはデータを見ながら試行錯誤する経験や関係者を巻き込んで仕事を行うことなど、ソフト、ハード両面で役に立っており、臆せず飛び込んでみてよかったなと感じています。

2年目の抱負としては、技術的に更なる成長をするとともに、より効率よく仕事を進めて成果の質、量をともにあげていきたいと思っています。

この記事を読んで少しでもSansanの研究開発部で働くイメージがつくと幸いです。

speakerdeck.com

*1:アンプティサッカーのプレイヤーとしてもトップを目指しています

© Sansan, Inc.