こんにちは。
2023年4月に新卒入社したはまぐちです。
今月で入社してからちょうど1年が経ち、社内で新卒1年間を振り返る発表を行いました。
今回はこの1年間でどんなことに取り組んできたのかを簡単にご紹介したいと思います。
目次
自己紹介
2023年4月にグリー株式会社に新卒入社し、アウモでプロダクトのエンジニアをしております。
大学では理工学部に在籍し、情報工学や電子工学、光工学など幅広く学んでいました。
大学での勉強もほどほどにやりつつ、学外での活動も積極的に行っていました。
インターン先の友人とハッカソンに出たり、中高生にプログラミングを教えたり、スタートアップでバックオフィスのシステム開発を行ったりと、プログラミングに関係することから全く関係ないことまで幅広くいろんなことを行ってきました。
大学生活の半分はコロナ禍で外に出れない時期も長くありましたが、その分コードに触れる時間が自然と長くなり、エンジニアという職種に繋がったような気もしています。
エンジニアとして就職するかは就職活動を始める直前まで悩んでいましたが、あまり悩む間もないまま就活が始まり、ご縁があって入社することになりました。就活を進める中で、アウモの開発チームでシニアマネージャーを務めていらっしゃるJoさんとお会いし、「この方と一緒に働きたい!」という気持ちから、ほぼフィーリングで入社の意思を固めたのを覚えています…笑
プライベートでは、冬のシーズンは毎週のようにスキー場に通っては友人とスキースノボをしていました。
すっかり雪も溶けて、しっかりロスにおちいっています。これからの夏シーズンは何をしたらいいでしょうか…。
ぜひおすすめの過ごし方を教えてください!
この1年間で取り組んだこと
まずはこの1年間で取り組んできたことを順番にご紹介します。
aumoリピーターの開発
最初にアサインされたプロジェクトでは、SaaS事業部で開発を行っているマーケティングツール、aumoマイビジネスの新機能である「aumoリピーター」の開発を担当しました。
アウモでは商業店舗の課題解決を目的とした「aumoマイビジネス」というツールを提供しています。今回新しく開発した「aumoリピーター」では、実店舗に訪れるお客さん向けのスタンプカード機能を提供しています。
開発では設計の段階からプロジェクトに参画し、クライアント様が使用する管理画面のバックエンドの開発を担当しました。プロジェクトの途中でチームのマネージャーが育休に入られるなど様々なイベントがありましたが、フロントエンド担当のエンジニアの方と調整を行いながら、無事にリリースまで行うことができました。
バックエンドの業務コードに触れるのは初めてで、尚且つ大きなプロジェクトでしたが、たくさんの方にサポートいただきながら最後までやり遂げることができました。
いままで何となくで曖昧に身についていたRubyとRailsの知識を自分の中で整理することができました。また、デザインパターンなどの実装パターンやベストプラクティスなどについても知ることができました。
aumoリピーターについてはこちらをご覧ください。
クライアントアプリの新機能開発
アウモではクライアントアプリも展開しています。
直近では大きなアップデートは行っていませんが、aumoの記事や施設情報が見れたり、口コミ投稿の機能があったりします。
アウモにはaumoポイントという機能があり、口コミ投稿などをすることでポイントをもらうことができます。そのaumoポイントをより多くのユーザーに使ってもらえるように、アプリ内にポイ活タブを新設しました。
この機能実装では設計から担当し、バックエンドとiOS / Androidと実装の全てを担当しました。クライアントアプリは新機能の開発がしばらく行われていなかったため、導入ライブラリのアップデート作業も並行して行いつつ、このタイミングでSwift UIとJetpack Composeを導入する意思決定を行い、新規で開発する画面やUIは宣言的UIで実装を進めていきました。
宣言的UIの導入についてはかなり悩みました。シニアマネージャーに相談したところ、「最後までやり切ってくれれば良いよ!」というフランクな返答があり、信頼されていることと同時に大きな責任を感じましたが、チャレンジをすることにしました。
社内外の様々な方にサポートをいただきながら、最終的に既存のコードとハイブリッドで開発を進められる状態にすることができました。
クライアントアプリの最新技術を追っていくのは中々大変ですが、Railsと同様に業務コードで使用されるアーキテクチャへの理解を深めながら、新しい技術には積極的に触れたいと思っています。
現在はアウモのサービス外に起因してポイントが貯められる仕組みのみですが、アウモサービス内でもポイントを貯められる仕組みの開発も進めています。
aumoポイントについてはこちらをご覧ください。
aumoギフトエクスチェンジの新機能開発
aumoギフトエクスチェンジはアウモのプロダクトの中でも一番新しいサービスです。
このaumoギフトエクスチェンジの新機能として、マーケティングに関連する機能の開発を行いました。(まだプレスリリースが出ていないので詳細はお伝えできません…)
この新機能実装ではクライアント様が使用する管理画面のフロントエンドと一部バックエンドを担当しました。
この管理画面はNext.jsを採用していますが、アウモとしてNext.jsを採用するのは初めてで、前任の方も異動された直後で、React・Next.jsに関する知見が社内にほとんど無い状態からスタートしました。
もちろん自分自身もReact・Next.jsどちらも初めて触れるためキャッチアップからスタートし、新機能の実装を行いつつ、リファクタとチューニングを並行して行いました。これまでVue.jsに触れたことはありましたが、Next.jsのような大きなフレームワークは扱ったことはなく、WebフロントやTypeScriptなど関連する技術スタックも含めてたくさんのことを学ぶことができました。
Next.js 13からReact Server Componentが導入され、プロジェクト内で導入している他のフレームワークに制限が出ているため、新しいフレームワークの選定と乗り換えについて提案を行い、現在検討を進めています。
aumoギフトエクスチェンジについてはこちらをご覧ください。
その他、開発改善など
いまあげたメインタスクと並行して、開発改善なども積極的に取り組んできました。
- リリース作業の一部自動化
- モニタリングツールの導入
- 通知フローの改善
- アイコン変更作業の簡素化
負債の解消や開発改善タスクはどこの開発チームでも後回しにされがちです。改善作業にかける時間を作るために、上長やその上位レイヤーに重要性を説明して納得してもらうのも大変だったりします。
ですが、負債を解消すれば自分たちの開発体験も良くなりますし、プロダクトを使うユーザーに対してもポジティブな影響を与えるはずです。なのでメインタスクの合間を縫って積極的に取り組むように心がけています。
ビジネスでは短期的な目線で物事を見る場面も多々ありますが、プロダクトにおいては長期思考で考えることが重要だと思っています。特定の誰かだけが恩恵を受けるのではなく、関わるステークホルダー全てが恩恵を受けられるような、Trade onとなる考え方で物事を進めるべきだと考えています。
学んだこと、これからについて
専門知識の拡大・より良いアプローチの模索
この1年を通して、バックエンドからWebフロント、クライアントまで幅広く様々な経験をさせていただきました。アウモの開発チームは技術スタックや領域ごとにチームが分かれているわけではないため、バックエンドをメインとして様々な技術領域で深い理解が求められます。特定の領域にとらわれずに専門知識を幅広く持てるよう努力したいと思っています。
また、レガシーコードを含む既存のコードや実装方法をそのまま鵜呑みにするのではなく、より良いアプローチがないかを探すように心がけました。何かしら新機能を実装するときに、既存のコードに合わせて要件を満たすだけの実装をするのではなく、常に良いアプローチがないかを考えながら実装をするようにしたいと思っています。
2年目以降の目標
まだまだ半人前のエンジニアですが、早く1人前と認めてもらえるように努力を続けていきたいと思っています。
まずは足元の目標として、技術全般を包括的に理解・把握し、品質を考慮した開発・レビューができるようになること、プロダクトの状況やその技術の良し悪しを理解した上で、技術選定ができるようになることを目指したいと思います。ただ実装を行うだけではなく、実装の背景やプロダクトの状況を把握した上での判断が行えるようになりたいと思っています。
さらに高いレベルへのチャレンジとして、業務領域・チームの概念にとらわれず周囲に影響力のあるエンジニアになること、エンジニアとしての領域を超えて良いサービスを追求することにも取り組めるようにしたいです。
なぜコードを書くのか
大学時代にインターンをしていた開発チームのマネージャーの言葉がずっと自分の中に残っていて、今もエンジニアとして大切にしている言葉なので共有したいと思います。
10100行のコードを書いて
たとえ10000行のコードを消すことになっても
残った100行が価値を出せばそれでいい
プロダクトに携わるエンジニアとしては当たり前のことかもしれませんが、大学3年だった当時の自分にとってはとても衝撃的でした。
せっかく書いたコード、実装した機能だったとしても、使ってもらうユーザーに対して価値を生み出さなくては意味がなく、自分が満足するような高尚なコードを書いていても、プロダクトにとって意味はありません。
これらに加えて、「エンジニアとして自分の書いたコードに愛着を持つことも重要だけど、価値を生み出さないコードを書いていても意味がない」とも話してくださり、自分の中ではエンジニアとしての価値観が大きく変わる瞬間でした。
これからもプロダクトに携わるエンジニアとして大切にしたいと思っています。
最後に
最後までご覧いただきありがとうございました。
気づいたら1年が経っており、あっという間に社会人2年目になってしまいました。
もう新卒としてちやほやはしてもらえないので、1つ1つのプロジェクトやタスクを大切にして、より成長角度を高くできるように頑張りたいと思います。
そして、入社してからメンターを担当してくださっていたネゴロさん、
たくさんの学びとたくさんの思い出をありがとうございました!無事に1年間走り切ることができました。
自分にとって背中を追う尊敬する先輩であり、少しでも早く追いつけるよう日々努力しています。これからもさらなるご活躍を願っております。
本当は直接お伝えしたかったのですが、叶わなかったのでこの場をお借りして感謝を伝えさせていただきます。
そしてそして、シニアマネージャーをはじめとする開発チームの皆さんにも感謝申し上げます。
これからも引き続き精進して参ります。