クラスメソッド新卒入社3年目の業務・アウトプットをご紹介します

この度クラスメソッドを退職することになりましたので、毎年度末に書いていた1年の振り返り記事を今のタイミングで書いていきます。これまで3本ほど、新卒向けのキャリア関連のエントリを書いてきました。

3年目の業務

3年目もAmazon AthenaとDigdagの開発・運用をメインに動いていましたが、それとは別件で個人的に一番大きかったのはプリセールスチームへアサインです。それも踏まえて、印象に残っているタスクをピックアップしていきます。

プリセールス

プリセチームには6月ぐらいからアサインしていただきました。社会人2年目の半ばぐらいから開発よりもビジネス側への興味が強くなっていき、プリセをやりたい旨を四半期のJDの度にマネージャーに伝えてきたのですが、早速6月から枠を用意していただいたという背景です。

プリセールスは、お客様の事業あってのデータ基盤に対する要件があり、そこに対して部のリソースやプロジェクト期間、予算などを考慮した上で、最高のソリューションを提案するという点で非常に面白い仕事です。私の担当は、ソリューションの案出しから工数見積もり、マスタスケジュールの作成、プレゼン時のサポートといった感じでした。結果、6月〜12月に自分が携わった案件で、2社受注に繋げることができましたが、受注に対する私の貢献度なんてミジンコみたいなもので、クラスメソッドが今まで積み重ねてきた信頼やブランド力、経験豊富なベテラン陣の対応の素晴らしさあってのことです。横に立って見て学びたい私にとっては、プリセールスチームはまさに経験の宝箱でした。

Factorization Machineを用いた特徴量・類似度分析

ユーザーの視聴履歴とコンテンツのジャンルを組み合わせて、ユーザーごとにコンテンツのレコメンド表示を変えるという施策があり、その下準備としてFactorization Machineでベクトル抽出を行なっていた時期がありました。個人としては機械学習は業務で取り扱ったことがなかったので、調べながら少しずつ実装を進めてました。

入社以来様々な開発に携わってきましたが、正直、機械学習は明らかに自分に向いてないと感じた分野でした。データ基盤開発は書くべきコードが実装前から大体見えているので、書けば確実に終わるタスクが多いです。対して機械学習は、データの下準備が大変な割に大したアウトプットが出ないこともありますし、アルゴリズムをしっかり理解していないとブラックボックスに突っ込んで良い結果が出ることをお祈りするだけになってしまい、開発の主導権をうまく掴めませんでした。この件以来、世の機械学習エンジニアの方々に対するリスペクトが上がってます。

データパイプラインのリファクタリング

サービス開始当初からつぎはぎで新規カラムや機能を追加してきたデータパイプラインを、3ヶ月くらいかけてリファクタリングしました。既存データマート側の処理効率の悪さからAthenaのパフォーマンスやスキャン量に影響が出ていたのと、PythonやDigdagもかなりスパゲッティ化していたので、ビジネス面でも運用面でも課題感が強かったワークロードでした。結果、スキャン量は1/10になり実行速度も改善することができたため、Redashを使うビジネスユーザー側の体験にも、今後開発運用を行なっていくエンジニアにとっても、はたまたプロジェクトのお財布にとってもプラスなリファクタリングができました。

この検証において印象的だったのが、Athenaは何でもかんでもパーティションに分割すると、むしろパフォーマンスが下がることを改めて確認できたことです。Redshiftもそうですが、パーティションやキーなどでチューニングしすぎるのは危険だなと思う今日この頃です。アナリティクス系のサービスのテーブル設計はシンプルが一番。

S3棚卸しと費用削減

サービスの成長とともにS3のデータ量も増えていたので、年末の大掃除感覚でS3の棚卸しを行いました。S3 Storage AnalyticsやStorage Lens等のメトリクス可視化系の便利な機能を用いて、不要なデータやアーカイブできるデータの特定を行なった結果、なんと総ストレージ量が半減し、Standardクラスのストレージ量も1/3まで削減することができました。

とは言いつつも特にカラクリはなく、サービス開始当初から有効化されていたS3バージョニングを、現チームのメンバーが把握できていなかったことが肥大化の主な原因でした。「我々の基盤ではバージョニングは使ってない!」と思い込んでいてS3の費用に頭を抱えている方は、念のためバージョニングが有効化されてないか確認しておきましょう(自戒)。ちなみに今回は、S3ライフサイクルで1世代前以外は全て削除し、ほぼアクセスされていない生データはGlacierに移動するといった対応を行いました。

ブログ

今年度は、2021年4月〜2021年12月の間で50本のブログを書きました。ブログの方向性としては、開発中に当たったTipsをまとめたり、Athenaの新機能を紹介したり、誰も注目してない新興のサービスについて書いたりしてました。メジャーなテーマを書けばバズりやすいですが、マイナーなテーマを書いてるとその業界にアンテナを張っている方から反応をいただけたりして、最近は後者が起きる方がテンションが上がる身体になりました。本ブログでは、今年度書いた記事の中から2本だけご紹介します。

1本目はAWSが主催するハッカソン型のトレーニングANGEL Dojoにて2冠達成という報告系の記事です。毎年AWSのパートナー企業の若手社員に向けて行われるプロジェクトでして、今年は内製化を目指すユーザー企業も合同で開催されました。正直参加するかかなり迷っていたのですが、Working Backwardsでサービス構築を試せる点でも、同年代のエンジニアと切磋琢磨する点においても、結果的にかなり良い経験になりました。詳しくは記事の方をご覧ください。

2本目は12月の1人アドベントカレンダー企画全体です。退職の引き継ぎがほぼ完了していたこともあり、「暇だし最後に1人で祭りでやっとくか!」という勢いで企画したのですが、この2021年12月が入社以来一番キツい月となってしまいました。毎度初めて触る製品を試して紹介していく企画のため1日1本以上書くことが難しく、たまにミスって1日0.5本までしか書けなかったりするとストレスが半端なかったです。ニッチな領域ですがなかなか良い反響もいただけたので、とにかく無事完走できてホッとしています。

1人アドベントは毎年クラメソの伝統芸能的な感じになってますが、これまで1人アドベントやってきた先人達はただの変態だと思います。褒めてないです。

採用活動

昨年度は新卒の会社説明会で登壇しまくってましたが、今年は私が所属するデータアナリティクス事業本部の中途向け会社説明会の登壇を担当していました。弊社の会社説明会では「どの部署に興味をもったか?」という週刊少年ジャンプ的なアンケートを参加者にご協力いただいているのですが、毎回データアナリティクス事業本部の票数が1、2票みたいな少なさで、全然魅力を感じてもらえてないことが課題となっていました。試行錯誤の上、今までのやり方を変えるという実験的な試みで何回か登壇していきました。

コンセプトは「データ基盤の業界がいかに面白く魅力的であるか?」とし、クラスメソッドの強みと絡めつつもあまり部署そのものについては紹介しないスタンスでプレゼンを行いました。7割方は他社でも当てはまる内容になってしまいますが、まずはAWSやアプリ開発などに興味があって説明会に参加した方を、いかにデータ基盤開発の魅力に引き込むかを目的に構成しました。結果、登壇で毎回5〜6人のアンケート票を獲得できるようになり、中には「AWS事業本部を見にきたけど、データ基盤開発も面白そうで迷った」という方も何人かいたらしく、わずかですが聞き手の印象を変えることができたのかなと実感しています。

もう登壇することもなくなってしまうので、資料置いておきます。データ基盤構築やデータエンジニアリングに興味ある方は、ぜひクラメソの門を叩いてみてください!

AWS認定

3年目で全部のAWS認定を取るつもりでしたが、色々とあったため6月以降全く着手できてません。落ち着き次第、取得活動を再開します。

  • AWS Certified Data Analytics - Specialty(2021年4月)
  • AWS Certified Database - Specialty(2021年4月)
  • AWS Certified Developer - Associate(2021年5月)

退職する理由

昨年の8月ぐらいから、とあるスタートアップに並行して関わっていたのですが、そちらにフルで加わることになったのが退職の理由です。私としてはあと3年くらいはクラスメソッドで働くつもりだったのですが、DevelopersIOで書いていた自分のブログをきっかけに、想像だにしてなかったスタートアップ界隈に加わることになりました。人生、何が起こるかわからないものですね…。

クラスメソッドに在籍して約4年、とても働きやすい環境で、やりたいことはやらせてもらえるし、言いたいことははっきり言えて、特に嫌なこともなく、興味が赴くままに伸び伸びと、他では替え難い非常に良い経験をさせていただきました。自社のブログに退職エントリ書くからとか、自社に対する忖度からとかではなく、心からクラスメソッドで働けてよかったなと思っております。本当にありがとうございました!

最後、よかったらTwitterフォローしてやってください。-人-(@haru_ta_kumi2