気付いたらデータエンジニアになっていた―― 株式会社ギックス おがたさんに聞く「なんで?」「どうやって?」

ITエンジニアと一口に言ってもフロントエンド、サーバーサイド、インフラ、QA、マネジメント……など、ポジションやキャリアにはさまざまなルートが。使う技術やツールはもちろんのこと、おもしろさや考え方も異なります。「なぜ、どういうきっかけでその道に進むことになったのか」「何がやり甲斐なのか」には、人それぞれの答えがあるものです。

いろいろな人から自分なりのキャリアの選び方を伺うことで、テックの世界の知見を共有する本企画。今回は株式会社ギックス おがたさんが、気が付いたらデータエンジニアになっていた理由をLT形式で発表していただきました。

自己紹介

株式会社ギックスで、データエンジニアをしているおがた(@ogata_satoshi)です。

趣味はクラシック音楽鑑賞とボードゲーム。データエンジニアボードゲーム会をほぼ毎月、10回以上開催しています。

データエンジニアになった理由を簡潔に言うと「データを扱いたい気持ちと、システムを構築したい気持ちが合わさった結果、なんやかんやでデータエンジニアになっていた」という感じです。これから詳しく説明します。

“気付いたら”データエンジニアになっていた理由

データエンジニアになるまでの道のりを、大学院時代から振り返っていきます。

大学院時代は数学専攻で、確率論を研究。当時(2016年ごろ)はディープラーニングが流行っていて、私は修士論文の題材にしていました。このときに「Pythonを使ってディープラーニングができるらしい」ということで、私がPythonに触れるきっかけになりました。

1社目は塾を経営している会社で分析を担当し、機械学習を使って生徒の退会予測などを行っていました。「塾にいつからいつまでいたか」「夏期講習や冬期講習に申し込んでいるか」といったデータからある程度予測できることが分かり、おもしろかったですね。

しかし、そのころ(2018年ごろ)はまだ、分析専門の部署を置くという考え方が浸透していなくて、いろいろな部署を転々としながら、業務のかたわらでデータ分析しているような感じ。

これでは分析のスキルを磨けないと思い、2社目への転職を決意しました。現職のギックスです。

アナリストとして入社して充実した分析業務ができるようになり、それはおもしろかったのですが、半年ぐらいして「エンジニアになってシステム構築するのもおもしろそうだな」という気持ちが湧いてきました。役員に相談してみたら「いいよ」ということで、そこからエンジニアに転向しました。

エンジニアとして関わったプロジェクトを軽く紹介しましょう。

1つ目は、アサヒビール株式会社の分析基盤をGoogle Cloudへと移行するPOS分析基盤再構築プロジェクト。POSのデータにはいろいろなフォーマットが存在していて、そのままの状態ではBigQueryに投入できないことがあります。それでひたすらPythonで前処理を書いて、CSVのような形にしてBigQueryに投入する、ということをしていました。

しかし、プロジェクト終盤ではCloud Runで動いてるものも見なければならなくなり、そのときになって「自分がやっている仕事はデータエンジニアだ」と気付きました。

もう1つが、分析基盤ではないのですが、AWSとGCPのマルチクラウドからデータ処理基盤への移行プロジェクトをやっていました。私はバッチ処理チームのリーダーとして参画し、チームマネジメントやTerraformでの基盤作成管理、クライアントとの調整などを担当していました。

技術遍歴

ここで、これまでに触れた技術を紹介します。

大学院時代はPythonだけ。1社目にいたときも、分析も可視化もPythonで完結していました。

ギックスでアナリストになってからはBigQueryやSQL、Tableauといった分析用のサービスやツールを扱うようになりました。クラウドにも触れ、こんな世界があるんだと驚きました。

エンジニアになってからは、Cloud FunctionsとCloud Runといったサーバーレスサービス、Workflows、Cloud Composer、AWS Step Functionsなどのワークフローエンジンを使うようになりました。インフラ管理のために、Terraformも扱いはじめました。

また、エンジニア転向後は、プライベートの時間でもかなり勉強していました。私は数学科出身で、エンジニアとしての自信がなく、コンプレックスに感じていたんです。

ざっくり紹介すると、まず、AtCoderで競技プログラミングをやってました。2〜3カ月程度でしたが、水色くらいまでいけました。アルゴリズムを考える力や実装力がここで身についたと思っています。

ギックスの業務の中では競技プログラミングのようなゴリゴリのアルゴリズムが求められることはあまりないのですが、データ構造や計算量が分かるとうれしいことが多いですね。「このやり方だと計算量がまずいことになりそうだ」と自然と気付けるようになりました。

Google Professional Data Engineerも取得し、データエンジニアリングの関連知識が身につきました。これに関しては会社が「取ったら10万円あげる」と言うから勉強したという側面もあります(笑)。

弊社のチーフテクノロジストから「コンプレックスを解消できるんじゃないか」と言われて、応用情報技術者試験も取得しました。直接業務に役立つわけではありませんが基本的なIT技術が全般的に身につき、エンジニアと名乗っても許されるかな、という気持ちになれました。また、浅い知識ではありますが、ネットワークやメモリなどの理解の取っ掛かりができたのは大きな価値があったと思っています。

個人開発では、クラシックのコンサート情報を検索するWebアプリを作り、Webアプリ開発に必要なフロントエンドやバックエンドなどの知識を一通り覚えました。会社と違って個人開発では制約がなく、いろいろな技術に挑戦できました。

その他には、PythonやGoogle Cloudの公式ドキュメントを読み込んでいましたね。正確な知識だけでなく、公式ドキュメントを読む習慣も身につきました。

データエンジニアの楽しさ、難しさ

データエンジニアの楽しさは、システムの基幹とも言えるデータを深く扱えて、ビジネス領域にも深く携われること。そして、新しい技術・サービスがどんどん出てくることです。

難しいところは、調整ごとの多さですね。ビジネス領域に携わる以上、いろいろ出てきます。あとは、規模が大きかったり複雑だったりと、扱いにくいデータに遭遇することがあります。

たとえば規模が大きい場合、数百メガ程度ならかわいいもので、数百ギガ程度になるとだんだん考えることが多くなってきて、数百テラ程度までくると1回1回の実行にも慎重になります。規模によってアーキテクチャを変えなければならないことも当然あり、そこは難しいところだと感じています。

それからキャッチアップですね。いままでに数多くのツールやサービスが登場していて、それらにキャッチアップするだけでも時間がかかります。

しかし、先ほど挙げた楽しさや難しさはすべて表裏一体だと思っています。

データを扱うのはおもしろいけど、難しいところもある。ビジネス領域と関わるのもおもしろいけど、「調整が大変だな」と感じることもある。新しい技術が出てくるのもおもしろいけど、キャッチアップが面倒くさいと感じることもある。

ただ私自身は、データエンジニアはやりがいのあるおもしろい仕事だと思っているので、こういったことに挑戦したい人にはすごくおすすめしたいです。

最後に、データエンジニアになった理由について改めて振り返ると、まずは「データを扱いたい」という思いが根本にあり、「システム構築もやりたい」とエンジニアに転向して、前処理や基盤構築をガンガンやっていったら、いつの間にかデータエンジニアになっていたことに気付いたという形になります。

質問パート

質問:「システム構築もやりたい」と思ったきっかけは?

おがた:これは自発的にやりたいな、と。もともとモノづくりが好きな性格であることと、当時会社にいた優秀なエンジニアの方への憧れみたいな気持ちからです。

質問:「データアナリストからの転向後、エンジニアとしてのコンプレックスがあった」という話があった。逆にデータアナリスト出身で良かったと感じたことは?

おがた:データアナリストがどういうデータが欲しいのか何となく分かる、というのはあると思います。

「こういう形のデータだと、Tableauなどに読み込ませやすい」というのが頭の中にあり、最終的に必要になるアウトプットがアナリストと相談しなくても自分の中で分かります。そのあたりのコミュニケーションコストは減らせるのかな、と思っています。