MERYの未来を一緒につくりましょう。viewsMERYの未来を一緒につくりましょう。裕樹エンジニアサーバーサイドエンジニアスパイシーソフト株式会社では、自社サービス(アプリゲット/マンガゲット/ビジネスプロバイダー/どこでも読メール他多数)のサーバーサイドを中心に、サービスのローンチから保守まで幅広く担当しました。サーバーサイド以外にもアプリ開発やフロントUI、AWSやDockerなどによるインフラ構築なども一貫して行ってきました。2018年に新規事業立ち上げに伴い、株式会社Liberappに転籍し、スマートコントラクトによるERC20トークンの作成や、HTML5アプリケーション配信プラットフォームの構築などを行いました。裕樹エンジニアなにをやっているのか株式会社MERYの主軸の事業は、女性向けアプリ「MERY」の運営です。「MERY」は2017年11月にリリースしました。コスメ・おでかけ・恋愛などの、女の子の「好き」を届けていきます。Vision「インターネットを通じて、世界を幸せな場所にする」インターネットの世界では、遠くにいる人がそばにいて、いつも見ている景色よりも、もっと遠くを見ることができる。広がっていく世界のなかで、幸せな居場所をつくりたい。誰かが幸せに感じる瞬間をたくさん紡いでいきたい。MERYでは、その手段として「インターネット」を選んでいます。インターネットには、圧倒的なスピード感や固定概念にとらわれない流動性の高さがある一方で、どんな人も受け入れてくれるやさしさや、新しいものをどんどん吸収する柔軟さがあります。私たちはこのインターネットの「感覚的な部分」に無限の可能性の広がりを感じています。MERYはインターネットを通じて事業を行い、新しいものを生み出すチャレンジをします。Mission「愛をこめて、愛されるサービスをつくろう。私たちは、熱中できる幸せを知っている。「新しい体験」を生み出すことに挑戦し続け、感動や興奮をたくさんの人と共有しよう。関わる全ての人と誠実に向き合うことで、より多くの人に愛されるサービスを目指そう。MERYの社員みんなで議論を重ね、たどり着いたミッションです。私たちは、事業に熱中できる幸せを感じ、時には仲間と感動や興奮を分かち合いながらサービスづくりに励んでいきます。関わる全ての人に誠実に向き合い、より多くの人に愛されるサービスを目指します。MERYではユーザー向けと社内向けのアプリケーションを合わせると10以上あります。多くのアプリケーションがあるため、各自が担当する領域を緩やかに定めています。担当する領域は各メンバーの志向を考慮して決めています。一方で、アプリケーションが相互に関係することも多いため、全員が全範囲をある程度理解している状態を目指してタスクを分担しています。現在のチームにインフラ専属のエンジニアはいません。必要に応じてみんなでインフラを担当します。過去にインフラの構築をしたことがないメンバーも学びながら対応しています。アプリケーション毎に開発方針の決め方が異なります。プロダクトマネージャーと決める範囲、他の部署の担当者と決める範囲など、様々です。開発部内でコミュニケーションが完結することもありますが、多くの場合、要件の確認などは、各メンバーがBizメンバーと直接行います。現在は2週間毎に開発する内容のプランニングをしています。このプランニングのタイミングで守備範囲を広げるタスクアサインをしています。朝会は毎日行なっています。リモート作業をする人がいる場合は全員がオンラインで朝会を行います。タスク管理はGithubのProjectを用いています。アプリケーションの開発やインフラの構成変更など、本番に反映されるものは全て相互にレビューします。インフラはTerraformを用いてコード管理しているので、アプリケーションと同様にGithub上でpull-requestを出します。Terraformで管理されないものに関しては、作業手順をレビューします。アプリケーションは、基本的にテストを書きます。Githubのブランチはreleaseブランチ(本番)、developブランチ(ステージング)、feature/hogeブランチ(ローカル開発)で運用しています。featureブランチがdevelopブランチにマージされるとCircleCIのjobが動作し、テストに通るとステージング環境にアプリケーションがデプロイされます。本番環境へのデプロイは手動で行います。Slackでリリースの連絡を行い、Rundeckに登録されているデプロイのジョブを実行します。エンジニアが対応しないといけない作業がいくつかあります。それらの作業は分担して行なっています。アプリケーションの監視にはNewRelicを用いています。インフラはAWSのCloudWatchを用いています。アラートの通知は、Pagerdutyを利用し、電話がかかってくるようになっています。現在のところ、障害対応は障害が発生した時点で対応できる人が行う、という運用にしています。頻度としては、営業時間外の障害対応がチーム全体で1ヶ月に1回あるかないかです。障害が発生した場合には、障害報告を書き、全社に共有します。同様の障害が起きないように再発防止策を考え、システムの改修等を行います。現在のところ、基本的なミーティングは、全社ミーティング(月1)、開発部定例(週1)、サーバー開発プランニング(週1(プランニングと中間報告を交互に行います))、朝会(毎日)、上長との1on1(隔週)です。その他、必要に応じてミーティングを設定したり、設定されたりします。マネージャー1人こんなことやりますユーザー向けのアプリケーションを中心に開発および運用をしていただきます。MERYは、iOS/AndroidアプリとWebを通じてサービスを提供しています。ユーザーに新しい価値を提供するスピードを速めていきたいと考えています。そのため、iOS/AndroidのバックエンドサーバーやWebのサーバーサイドを中心に開発や運用を行なってくれる仲間を募集しています。MERYのアクセス数は非常に多いため、キャッシュを活用したり、非同期処理を活用したりするなど、パフォーマンスを考慮に入れた設計が求められます。キャッシュや非同期処理でMemcachedやRedisを用いているため、それらに対する理解も求められます。記事の検索や画像の検索では、Elasticsearchを利用しているため、より良い検索体験のためにElasticsearchを触ることもあります。基本的にはユーザー向けのアプリケーションの対応になりますが、必要に応じて社内向けのアプリケーションの対応も行なっていただきます。インフラの構築や変更なども、相談の上、必要に応じて行なっていただくことがあります。少人数のため、様々なことを行う必要がありますが、一方で、様々なことを行うチャンスも多いと思います。この1年の間にも、Go言語の導入やクリーンアーキテクチャの導入などをはじめ、今いるメンバーも経験したことがなかったいろいろなことに挑戦してきました。株式会社MERYのメンバーMERYの未来を一緒につくりましょう。