Retty Tech Blog

実名口コミグルメサービスRettyのエンジニアによるTech Blogです。プロダクト開発にまつわるナレッジをアウトプットして、世の中がHappyになっていくようなコンテンツを発信します。

Retty新卒エンジニアの入社半年間の振り返り〜Part.2〜

こんにちは、激辛な食べ物が大好きな2018年新卒エンジニアの諏訪です!Rettyではサーバーサイド兼フロントエンドエンジニアをしています。インターンを含めるとほぼ2年間Rettyにいますが、入社半年の節目として振り返ります!

入社前

大学に通いつつ独学でプログラミングを初め、自作PCでサーバーを作るなどプログラミングからネットワークやインフラ周りまで幅広く勉強していました。ずっと独学で勉強していたので自分の技術力に不安を感じ、Web系のインターンに7社参加し、実際の現場でプロダクトに触らせてもらうことで、実装からリリースまでのフローやプランナーとのコミュニケーションなどを学びました。 Rettyには大学3年の頃から1年半ほどインターンに参加し、インフラからフロントまでフルスタックに働くことができそうだと思いRettyにJoinしました。

f:id:rettydev:20181115173323j:plain △大学3年の頃から1年半ほどインターンに参加(2017年11月撮影、左が諏訪、右は先輩エンジニアの竹野)

なぜフロントもサーバーサイドもやっているのか

RettyにJoinするまではフロントはほとんど触ったことはありませんでした。サーバーサイドを極めていくには、フロントからどういうリクエストが来てどれだけのトラフィックが必要なのか、どういうネットワーク構成でどの部分でデータがキャッシュされているのかなど、知らないといけないことはたくさんあります。最初から一つの分野に絞ってしまうと視野が狭くなってしまうので、新卒の段階ではまずフルスタックに働けるようになろうと思いました。最初はフロントからやりたいなと考えていたタイミングで、ちょうどフロントの案件が発生したこともあり、フロントエンドの世界へと足を踏み入れました。

最初はVue.jsやVuexの概念を理解するのに苦労しましたが、先輩にペアプロペアプログラミング)やコードレビューをしていただき、実務で触れるレベルまでスキルを磨くことができました。

今ではフロントの開発が楽しくなってしまい、7 : 3ぐらいの比率でフロントメインで業務に携わっています(笑)

関わったプロジェクト

入社後は主に以下の二つのチームを兼務しています。

WEBチーム

WEBチームではRettyの検索ページ( ex. https://retty.me/area/PRE13/ )や、店舗情報詳細ページで施策や機能追加の業務を行なっています。

配属直後はフロント初心者だったため、施策や小さめの機能追加の実装をしていましたが、5月頭ぐらいには店舗情報詳細ページに予約カレンダー機能を追加するといった大きめの実装を任せてもらいました。10月には、お店検索需要が高まる忘年会シーズンに向けた施策の実装も行いました。VueでA/Bテスト基盤を作るなど技術的にも色々できた半年でした。

PCに実装した予約カレンダーは、日付選択時にアニメーションを与えることで、切り替わっていることに気づいてもらえる仕組みを入れました。また、カレンダーを導入するにあたり、これまではDBにデータを取得しに行くことでカレンダーを生成していたのですが、負荷の問題からDBを直接見にいくことはせず、間にElasticsearchを挟むなど様々な工夫をしています。

スマホカレンダースマホカレンダー
WEB版Rettyの予約カレンダー

javascriptCSSをプロダクトレベルでほとんど触ったことがない状態からスタートしましたが、配属直後から実務を任せてもらえたことで、webpack等のビルド環境やVue.js等のフレームワークを実務レベルで使い、他エンジニアのコードレビューができる状態まで短期間で成長することができました。 また、プランナーとのコミュニケーションや他チームとの連携、仕様をもらってからの工数見積もり等、個人でプログラミングをしている時にはあまり身につかないスキルや経験を学ぶことができました。

編集チーム

編集チームでは主にRettyグルメニュース( https://retty.news/ )の入稿画面の改修や開発生産性向上の業務に携わっています。入稿画面にSEO向けの機能の追加やtextlintを利用した記事の自動校正システムの導入をしました。

開発の生産性を向上させるものとして、これまで手動で行っていたDBマイグレーションの自動化やステージング用のDBの自動更新、デプロイ自動化など、オペレーション・ミスが発生しそうな部分の自動化を行いました。 この辺りではRDSやCircleCI、Elastic Beanstalkの経験を積むことができました。

これからについて

個人での開発はたくさんしてきましたが、チームで開発をするのは初めてだったので自分のスキルの足りなさを感じる一方、いろいろな方にサポートいただいたおかげで、メンターからは「セマンティックなHTMLからBEMとscss、モダンjsの書き方、Vue.jsにおけるコンポーネント設計、バンドラー環境開発など、フロントエンドの最初のハードルである膨大な量の技術をあっという間にものにしていく姿には1年目とは思えない安定感があった。」との評価をいただくほど、成長を実感できた半年でした。

現在はフロントメインで働いていますが、大規模なトラフィックに耐えられるサーバーサイドの設計実装やパフォーマンスのチューニングをするのが好きなので、いずれはサーバーサイドをメインにしたいと思っています。ですが、フロントのスキルもまだまだなので、当面はフロントメインで去年の自分の10倍は成長する気持ちで頑張りたいと思います!