見出し画像

目の前にはビッグデータ。隣には学べる仲間。JDSCはチーム開発だからスキルが磨ける。

今回は、JDSCでAI発注支援ソリューション「demand Insight®」のデータ基盤開発を行っているエンジニアの栗林大樹さんにインタビューします。
JDSCの魅力を「この会社規模でここまで複数の会社のビッグデータを扱えるところはなかなかない」と語る栗林さん。
まずは略歴・開発経験をご紹介します。

略歴
北海道情報専門学校卒業後、組み込みソフトウェア開発の会社でSoC(System on a Chip)向けのファームウェア開発を行う。リアルタイムスケジューリングやソフトウェアの形式検証に興味を持ち、在職中に北陸先端科学技術大学院大学で情報科学の修士号を取得。その後、テーマパーク向けの音声会話ロボットの開発、チャットボット、ドキュメント検索等のクラウドアプリケーション開発を経験しWEBアプリケーションエンジニアへの転身を経て、JDSCに入社。

開発経験詳細
■ プリンター開発会社
○ プリンター本体の基盤で動作するリアルタイムOSを使用したファームウ ェアや、画像処理ハードウェアを制御するためのデバイスドライバーの開発
○ SoCの画像処理ハードウェアのシミュレータ開発
○ 自身で開発したフレームワークを、メンバーに使ってもらいながらメンバーマネジメントもやっていた
 ・ハードウェアやメカのバージョンアップに併せて、自身が実装したモ ジュールの改善や修正などをメンバーにしてもらっていた(オブジェクト指向開発、モデル駆動開発、アジャイル開発などのスキルをこのときに身につけた)
○ プリンター以外の開発にも携わった
 ・植物工場の環境管理システム
 ・赤外線レーダーの保守端末
 ・インテリジェンストイレなど

■Webアプリケーション会社
○ 某テーマパークにあるレストランのAIコンシェルジュ(音声やタッチパネルでテーマパークを案内する)の開発
○ 開発環境としてAWSとIBM Watsonを使ってチャットボットやサイト内検索のSaaS開発

ーさて、インタビューをはじめます。栗林さんよろしくお願いします!まず最初にJDSCに入社したきっかけを教えてください。

IBM Watson等のAIに関するサービスに触れたことがきっかけで、機械学習(ML)の中身に興味を持ったので、ビッグデータやDSチームを持っていてアルゴリズム開発から経験できるような環境を探していました。そんな時に出会ったのが事業開発、データサイエンティスト、エンジニアが三位一体で動いており、希望に合わせて比較的柔軟に職種をオーバーボードできるJDSCでした。

ーJDSCはどんな人に魅力的でしょうか?

JDSCはGoogle Cloudを使用して開発することが多いので、AWSだけでなくGoogle Cloudも使ってみたい人にとっては魅力的かもしれません!
また、チームで開発したいという人にも魅力的だと思います。シングルアサインで一人で全部作っていくという環境が故に、コードレビューを受けたり、人のコードを見れないが故に個人のスキルや、チーム開発のスキルが磨かれないと不安視している方にとっては、チームで開発できる環境があるJDSCは良いと思います。
ペアプロも行われているので、勉強したい、知見を取得したいという人には良い環境かなと。CI/CDとかも結構真面目に実装しているし、レビュアーの指摘が的確で優しい(問題点の指摘はしてもらえるが、攻撃的なマサカリは飛んでこない)のは魅力と感じています!(笑)

ーJDSCのすごいと思うところは、どんなところでしょうか?

この会社規模でここまで複数の会社のビッグデータを扱えるところはなかなかないと思っています!
アサインの希望も比較的柔軟に通るかつ流動的なので、特定の企業に限らず様々なビッグデータに触れることができます。基本はもともとあるデータ基盤を使うことが多いと思いますが、JDSCであれば最新の技術を取り込むためにリアーキテクチャ、リファクタリングを積極的にやっているので、データ基盤やWebアプリを作ったり、改善していくような経験も積めると思います。
また、三位一体の体制のなかでデータサイエンティスト(DS)との垣根があまりなく、興味があればDSスキルも身に着けることができます。(逆も然りで、志望すればDSの方がエンジニア業務をやったり、事業開発の方がデータサイエンティスト業務や、エンジニア業務に染み出すこともできます!)
一般的な会社であればDSの人がモデリングをして、エンジニアは中身はよく分からないが、とりあえずもらったモデルを動かせるようにする、というようにしっかり分業されている会社もまだまだ多いと思います。
それに対してJDSCは、MLOpsも組成し、今後更にエンジニアとデータサイエンティスト間での連携を強めていくので、志向があれば更にデータサイエンティストの領域にも浸透していくことが可能です。他にもモデル精度の定期的な監視をし、精度が落ちた時に通知が出るような取り組みへの挑戦などもできます。

ー栗林さんが前職で得た経験で、JDSCでも活かせた経験はありますでしょうか?

下記の経験はJDSCでも役に立っています!
・組み込みソフトウェア開発で得たコンピュータサイエンスに関する普遍的な知識、経験(並列処理、排他制御、キャッシュなど)
・XPやスクラム等のチーム開発(アジャイル開発)の経験
・AWS等のクラウドのインフラ、アプリケーション開発の経験
・IBM Watson等のAIに関する知識

ー栗林さんが入社して得られたスキルを教えてください。

もともとは純粋な組み込みエンジニアでAWSのWebアプリケーションエンジニアの経験もちょっとあるくらいの状態でしたが、JDSCに入社してアプリケーションエンジニアだけでなく、データエンジニアやSREの各領域の経験をそれぞれ十分に積めたのはとても大きな経験です。私の場合、同じことをずっとやるというよりも、やったことのないことにどんどん挑戦していきたいので、ここまで複数領域でのスキルを獲得できる環境にはとても満足しています。

ー現在栗林さんが担っている役割について教えてください

大きく三つの役割を担っています。それぞれについてお話させてください。
①SRE
・AE(アプリケーションエンジニア), DE(データエンジニア)が開発しやすい開発環境の設計(CI/CD、マイグレーション、エラー通知等)
・IaCを導入して属人性を低くする
・エラー監視やライブラリバージョン更新など、開発者が問題に気づける
 仕組みを導入する
・落ちにくく、修正しやすい、必要十分なインフラを提供する
②DE
・顧客のデータの性質を理解してETL(データクレンジングとか)を構築し、DS, AEが必要とするデータを流通させるためのデータセット(datalake, 
 datawarehouse, datamart)を協調しながら設計する
・DSのモデルをプロダクションに移植する(運用に耐えるように改善する)
③AE
・顧客業務のドメイン知識を理解する
・その上でUI/UXを考慮してアプリケーションを設計する
・実装の重要度と難易度を考慮して実装順序をPOと相談する

ーこれからJDSCでどのようなキャリアを積んでいきたいですか?

これからも社内で手薄なポジションを狙って自分のスキルをアップデートしていきたいです!特に現在はMLOpsに取り組んでいるので、更に貪欲にDS関連の知識を吸収していこうと思っています。

ー最後にこの記事を読んだ方々に一言お願いします!

JDSCでは、職種を超えて様々なことにチャレンジができますし、色々なことを優秀なメンバーから吸収して成長することができる、まさにやりたいことが叶えられる環境です。
プロダクト開発前の事業開発的なフェーズから(プロジェクトにもよりますが)アルゴリズム開発等を含めたプロダクト開発まで、幅広い経験を積めるので、エンジニアリング以外のことも学びたい方や、ビジネス思考も身に着けたい方にとっては非常に良い場所かなと思います。

ご興味をお持ちいただけた方はぜひ一度、カジュアル面談からお話しましょう!

この記事が気に入ったらサポートをしてみませんか?