見出し画像

【ONE CAREERエンジニアのホンネ vol.5】全方位で取り組むデータエンジニアの成長とやりがい

みなさんこんにちは!
ワンキャリアでデータエンジニアをしている中村 (GitHub: lugen4ro)です。
入社して3ヶ月が経ちましたので、振り返りを行いたいと思います!

自己紹介

出身
・中学校まではドイツ南部
・高校からは北海道
職歴
・大手クラウドサービス「サポートエンジニア」 → ワンキャリア「データエンジニア」
趣味
・筋トレ、PCゲーム、登山、サイクリング、読書
特技
・ドイツ語、英語、日本語が流暢に話せます!



ワンキャリアに入社したきっかけ

1.少人数だからこそ可能なエンジニアとしての幅広い挑戦

少人数の組織だからこそ、エンジニアとして幅広く携われる環境があることに魅力を感じました。前職ではサポートエンジニアとしてビッグデータ分野に携わっていましたが、実際にコーディングして何かを「創る」機会は限られており、創作する楽しさを味わうのが難しい状況でした。それに対し、ワンキャリアではフロントエンドからバックエンド、インフラまで幅広く取り組めるということに創作意欲を刺激されました。

2.エンジニアとして成長できる環境が整っている

Tech BlogEntrance Book を通して、エンジニア組織の色々な取り組みを知り、興味をもちました。また、勉強会やOSS活動など、エンジニアの成長環境が整備されている点にも惹かれました。面接や面談で話した方々も技術的な向上心が高く、互いに成長を目指す姿勢に共感しました。このような環境であれば、自分も技術者として成長し続けられると感じたのです。


入社~3ヶ月に「挑戦」したこと

入社してからの3ヶ月は、本当に濃密で、フルスタックエンジニアのように幅広く取り組んできました。3ヶ月前の自分と今の自分を比べるとできることが格段に増えていて、自分の成長を実感できて嬉しい限りです!以下に、時間で区切って取り組んできたこと・感じたことを紹介します!

1ヶ月目 —— 基礎編

入社したばかりで、何もかもが初めての経験でした。以前は開発職ではなかったため、チーム開発を行ったことがなく、Gitの使い方やPRレビューの流れなど、基礎の部分から学ぶ必要がありました。
まずは開発環境の構築や開発状況を把握することから取り組みました。その一環で、どのレポジトリが何を担っているのか、どのコンテナがそれに相当し、デバッグでどのログを見ればよいかなども学びました。周りの方々が親切に教えてくれたことを、今でも鮮明に覚えています。
最初のタスクはユーザー行動ログを収集するフロントエンドライブラリ作成でした。多少馴染みのある TypeScript がメインでしたが、それとともに初見の Nuxt / Vue も理解する必要がありました。関連レポジトリの構造や、新しく実装する内容をどう設計するかなど、調査や相談を経て徐々にクリアになってきました。
同僚から多大なサポートを得ながら、徐々に開発ツールやコードベースに慣れていく1ヶ月でした。

2ヶ月目 —— フロントエンド編

8月は、本格的にフロントエンドライブラリの開発に挑戦する1ヶ月となりました。7月にも取り組んでいましたが、セットアップやキャッチアップが多く、本格的に始動したのはこの頃です。
当時、非同期で高パフォーマンスを実現するため、Service Workerを使用することを検討していました。多くの調査・検証を行いましたが、メリットがある一方で今回のユースケースにおいてはデメリットの方が多いと判断し、結局採用を断念することになりました。採用には至らなかったのですが、この過程で多くの学びを得ることができました。
その後、Service Worker を用いない形で実装を進めましたが、モジュール設計やユニットテストについて全く分からず、かなり苦戦しました。そこで、チームメイトとの相談を何度も重ねながら、実装を進めました。徐々にモジュール化が進み、ユニットテストも書きやすくなり、なんとか実装を終えることができました。
結局このフロントエンドライブラリは 4 回ほど実装しました。フィードバックを受けながら実装を重ねる中で、多くのことを学ばせていただきました。根気よく相談にのってくださったチームメンバーには本当に頭が上がりません。最終的にはなんとか期限に間に合い、バックエンド・インフラとつなげて、ユーザーのインプレッションログを収集できるようになりました。
フロントエンドを学ぶとともにソフトウェアエンジニアリングの基礎を学べた1ヶ月となりました。

このような「イベントパネル」がユーザーの画面に表示されたかを検知して
データとして収集できるようにしました!

3ヶ月目以降 —— インフラ編・バックエンド編

9月からは検索機能を拡張するプロジェクトに加わりました。ここでの最初のタスクは、ベクトル検索に利用する「インデックス」というものを更新するための定期実行ジョブを実装・作成することでした。それ以前とはガラッと技術スタックが変わり、インフラ色が強くなりました。
ここでは Python を使って更新ジョブのロジックを実装し、定期実行用のインフラである Google Cloud Run などのリソースを Terraform で定義しました。Google Cloud と Terraform も初めてだったので、新しく学べたことが非常に多かったです。

その後、検索システムのバックエンドを実装するタスクを担いました。ここでもまた扱う技術が大きく変わり、次は Ruby/Rails でバックエンドのAPIを実装することになりました。Ruby/Rails についても初心者であったため、キャッチアップから始め、チームメイトが書いた既存のコードを参考に実装を進め、なんとか終えました。

10月に入ってからは、ワンキャリアが持つ体験談データをフリーワードで検索できるように取り組みました。継続してバックエンドの実装になりますが、ここでは今までとは異なり別のコードベースになり、また新たなキャッチアップが必要になりました。
具体的には、コードの読解や、Ruby / Rails のより深い理解を得るために時間を投資しました。なお、フリーワード検索ではどのテーブルのどのカラムを検索するかが定まっておらず、データを調査し、そこを定めるところから始めました。クエリを書いてデータの調査・整理を行い、ER図なども自動生成しました。このまとめた情報を基に、パフォーマンスを意識しつつバックエンドの実装を行っていきました。
Ruby on Rails を用いたバックエンド API 作成について、より深い理解を得られた1ヶ月でした。

ワンキャリアの「ES・体験談」を好きなキーワードで検索できるようにしました!
(以前は企業名のみで検索可能)


まとめ

この3ヶ月間、新しい技術に慣れたかと思うと、次々と新たな技術や課題が待っている日々でした。この状況が永遠に続けばしんどいところもあるかもしれませんが、今は多方面で多くのことを学べて非常に楽しいです。
また、チーム開発も初めての経験で、認識のすり合わせなどで大変な側面もありましたが、何よりも議論を重ねながら共に新しいものを作り上げる喜びがありました。日に日に成長を実感しながら、楽しく開発に取り組むことができた、貴重な3ヶ月となりました!


好きなコアバリュー

特に好きなのが「本質的・長期的思考」です。
何かを学ぶ際、表面的な知識で満足せず、しっかりと自分で考え抜き、本質はどこにあるのかを自分なりに深掘りすることを常に意識しています。本を1冊読むだけでも大量の情報がインプットされますが、情報を整理し、その本質を捉えなければ、時間とともに内容を忘れてしまい、学びが薄れてしまいます。一方で、その情報をいくつかのコアメッセージに落とし込めれば、知識が自分のものとなることでしょう。
このコアバリューを最も実感する場面が、技術開発部の勉強会 WeQuest です。技術書の内容を紹介するだけでなく、その本質がどこにあるかを探り、どのようにして生きた知識にできるかといった議論が行われ、多くの学びを得ています。


次の「挑戦」!

次に取り組む挑戦として「検索機能の改善」と「データ整備」があります。まず、検索機能の改善に引き続き注力し、ユーザーの検索体験をさらに向上させていきます。検索の本質はどこにあるのか、何が重要かを考え、徹底的に調査し、蓄えた知見をプロダクトに反映していきたいと考えています。
また、今はデータ整備を進める一環として「データマート」の構築にも取り組んでいます。これにより、これまで蓄積してきたデータをより使いやすく、分析しやすい形で提供し、データ活用を最大化するための環境を整えていきます。


「人の数だけ、キャリアをつくる。」
ワンキャリアではミッション実現のために、事業・プロダクト開発を推進させる仲間を募集しています。弊社のエンジニア組織にご興味を持っていただけた方は、採用情報もチェックいただけると嬉しいです!

▼ワンキャリアのエンジニア組織のことを知りたい方はまずこちら

▼カジュアル面談を希望の方はこちら

▼エンジニア求人票


いいなと思ったら応援しよう!

この記事が参加している募集