👨‍💻

新卒Webエンジニアとしての2年を振り返る

同僚が振り返り記事を書いていたので、良かったなーと思ったので自分も書いてみます!

1 年目(2022 年)

入社時

  • 新卒で入社
  • Rails でアプリケーションは作ったことはある
  • React などフロントエンドは知っているが、馴染みはない

研修

フロントエンドから k8s まで幅広く行いました。 特に印象に残っているのがフロントエンド研修です。 自分たちのグループは忍者スリスリくんワクワクおえかきランドという Web アプリケーションを作りました。 その後、SUZURI で正式に忍者スリスリくんワクワクおえかきランドとしてリリースされました。 リリースのためブラッシュアップをしたエンジニア、デザイナーさんありがとうございました!

発注機能での改良

SUZURI 事業部に配属後は、最初に Good First Issue をいくつかこなしていました。その後、最初に担当した大きな施策が発注機能の改良でした。

発注機能で人的ミスを最小化できるようにするような改良を行いました。 発注に関する機能であるためほとんど表には出ませんが、毎日利用される機能なのでいまでも動いています。

SUZURI で買った商品がどのようなフローで発注され、生産されているか全体像を知ることができました。

デザイン OG 追加

デザインページ(例: https://suzuri.jp/surisurikun/designs/13021630 )の OG1を追加しました。 デザインOGの画像

デザインの色に合わせて、背景のグレーを淡色、濃色に変える処理も実装しました。

スマホケースの iPhone14 のサイズ追加

自分が配属されて少し経ってから iPhone14 が発売されました。 そこで既存のスマホケース各種に iPhone14 サイズを追加を担当しました。

SUZURI には全く新しいアイテムを追加する「アイテム追加」と既存のアイテムにサイズを追加する「サイズ追加」があります。 アイテム追加はアップロードされた画像をアイテムに合成する実装が必要となります。

今回はサイズ追加だったので、画像合成の処理を書くことはせず、合成領域の位置調整などを行いました。 実際のグッズとの合成画像の差異が少なくなるよう調整をシビアにやっていくため、根気が必要な施策でした。

普段の開発とは違う単語が出てくるのでその都度理解していくのが難しいかったです。

アイテム別クーポン機能

利用できるアイテムを限定したクーポン機能を開発しました。

アイテムを限定することで、利用時に対象アイテムがあるかどうかを判断する処理を入れ、 返金時においては対象アイテムだけでの値引き額の按分を行うなどの実装も行いました。 返金の要件を理解することが大変でした。

最終的に按分の処理は綺麗に実装できたので成長を感じた施策でした。

2 年目(2023 年)

イチオシ機能

自分のショップにてイチオシのグッズを先頭に持ってきて固定できるイチオシ機能の開発を行いました。

イチオシ機能の例

今までの開発はサーバーサイドの開発で Rails がメインで、既存のコードがあり、変更を加えることが多かったです。 イチオシ機能では GraphQL と React、Rails を使った開発を行いました。

GraphQL はこの時初めてしっかりと触りましたが、mutation? query?と頭の中が整理ができていませんでした。当時は REST API を利用する機会が多く、GraphQL 自体を概念として理解することが難しかったのだと思います。 この時は苦手意識がありましたが、現在は書籍をよんだり、GraphQL が関わる PR のレビューをしたことで、GraphQL に関する知識は最低限身についたかなと思います。

生成 AI を使った商品文生成機能

OpenAI API を利用して、商品文を生成する機能を開発しました。 SUZURI で OpenAI API を使うのが初めて出会ったため、プロンプトの追加や生成などを行うような API Client を作成しました。 趣味でChatGPT を利用した Discord Bot を開発していたこともあり、API の仕様を理解して中で施策を始めることができました。

SNS でも面白い商品文がシェアされていて、ユーザーの反応が直に見れる CtoC サービスの良さを実感することができる施策でした。

スリスリ AI チャット

2 日間の開発合宿で作成したアプリケーションをブラッシュアップしてスリスリ AI チャットとしてリリースしました。 SUZURI 公式忍者のスリスリくんとチャットができ、さらに商品検索が行える機能です。

どのように実装されているかなどはテックブログのAI チャットで商品検索 | GPT-3 と LangChain 活用に書かれています。

LangChain とよばれるライブラリと Python を使い実装しました。LangChain に関する日本語の記事は少なく、アップデートも頻繁にあるためドキュメントを読んで実装を進めていきました。 普段の業務では使わない言語とライブラリを使うので、ドキュメントや Issue を読んだりと普段より多くの情報を漁りながら開発を進めました。

OJT をしてくれたエンジニアの先輩と、同期のディレクターで進めた施策で、思い出深い施策です。

「じゃがりこ」パッケージコンテスト

じゃがりこパッケージコンテストのアプリケーションの開発を行いました。 じゃがりこの合成画像

「じゃがりこ」のパッケージの画像合成機能を中心に、画像をアップロードからコンテスト応募までの全機能の開発を行いました。

画像合成の処理を実装するのは初めてでしたが、画像合成に関するドキュメントが整っていたので、ドキュメントとコードを読み解きながら実装を進めることができました。 画像のアップロード、画像の合成は小さな SUZURI を作っているようなものであるため、SUZURI のエンジニアメンバーに相談や質問をしながら、作り上げることができました。 また、社内外で多くの方とやり取りを行うため、仕事の進め方やコミュニケーションなど技術以外の部分でも多くのことを学ぶことができました。

コンテストは、予想を上回る応募数となりました。受賞作品の一部はパッケージになるため、お店に並ぶのが待ち遠しいです。

デジタルコンテンツ検索機能

デジタルコンテンツを検索する機能を開発しました。 実際の検索画面

デジタルコンテンツではSearchkickを導入して、検索を行えるようにしました。 そのため、Index 作成・更新処理の実装、Index するデータの定義、検索 API の実装、検索ページの追加など 0 から実装を行いました。

自分が欲しいものへアクセスできる体験はとても良いので、検索に関する知識をつけていきたいと思いました。

自分が実装したわけではないですが、Searchkick を導入し、類似検索もリリースしました。詳しくはSearchkick gem の類似検索を活用した類似商品提案をご覧ください。

デジコン OG

デジタルコンテンツのの OG1を追加しました。

施策としてはやる予定がなかったのですが、OG を追加したかったので試しに実装したものを見せたところ、ブラッシュアップして、リリースされることになりました。 X での変更を鑑みて、サムネイルと商品の説明を入れるといったスタイルになりました。

振り返り

2 年目は AI、じゃがりこパッケージコンテスト、デジタルコンテンツ検索など様々なチャレンジをした年でした。

4 月までは 2 年目なのでまだまだ頑張っていこうと思います。 特に検索周りはまだまだだと思うので、検索に関する知識をつけて、探しやすくしていきたいと思います。

私や新卒の実際の仕事ぶりが気になりましたら“ゼロから任される” SUZURI の新卒 2 年目コンビに話を聞いてみましたもご覧ください!!

Footnotes

  1. URL を Twitter や LINE などでシェアしたときに表示される画像のこと 2

SNSへシェアする