Railsで構築されたECサービスの改修、新規開発、運営に携わっていました。
特に次の機能の開発を専任で担当をしていました。
* ユーザー認証
* モバイルアプリ用API
* プッシュ通知配信システム
## サービスの概要と基本構成
このサービスでは次の機能を備えており、上記担当以外にもこれら全般の開発やレビューに関わりました。
* オンラインショップを開設でき、アイテムを販売できる。
* オンラインショップでアイテムを購入できる。
* サービス内モールでアイテムを検索・閲覧できる。
* ユーザ間売買を管理・サポートする。
* モバイルアプリで検索・閲覧・購入できる。
基本的なアプリケーション構成は次の通りです。
言語 : Ruby, JavaScript
フレームワーク : Ruby on Rails
テスト : RSpec
## チームと自身のポジション
チームメンバーは最大20人程度、エンジニアは半分ほどでした。
チーム内では私はエンジニアとして、新機能の設計、開発、さらに負債となっていたコードのリファクタリングを進めました。
## 主な実績
### モバイルアプリ用APIの開発
ECサービスのモバイルアプリを提供するため、商品検索や購入などのAPIの開発を担当しました。
バックエンドはほぼ専任で、iOSエンジニア、Androidエンジニア、ディレクターと協力しながら小さいチームでリリースできました。
このモバイルアプリエンジニアと密に連携した開発の経験を今後も活かしたいと考えています。
### プッシュ通知配信システムの開発
モバイルアプリのバックエンドの担当において、プッシュ通知の配信システムを開発しました。
このシステムは大きなニーズが予測されたものの、大量のプッシュ通知を限られたAPI制限の下、配信するための制御が必要でした。
しかしながら、バッチ処理を丁寧に実装することで実現でき、ユーザーからの評価も良かったという理想的な開発となりました。
この経験により、プッシュ通知をツールの中心に提供する現職に転職するきっかけになりました。
今でも、プッシュ通知やメールといったプッシュ型のマーケティングチャネルは自分の専門領域として、様々な課題に取り組んでみたいと考えています。
### ユーザ認証のリファクタリング
複雑化していた認証機能をリファクタリングし、メンテナンス性・拡張性を大幅に向上させました。
入社当時、認証機能があまりに複雑で、機能を変更できるエンジニアがいませんでした。
そこで認証機能のRSpec(テスト)を拡充し、現状の仕様を変更しないようにリファクタリングしたことで、その後の改修がしやすくなりました。
この経験により、テストを用いて既存の機能を壊さず、改修しやすくするノウハウが得られました。