ブログ

2020年4月21日

TimeTreeの最新技術スタックを公開します

AndroidiOSWeb版カレンダー採用

メンバーの半数がエンジニアで構成されるTimeTree。エンジニアがどんな環境で仕事をしているのか、組織構成や技術スタック、コミュニケーションツールなどを紹介します。


こんにちは、ブランドコミュニケーション担当の渡部(Steve)です🤙🏻

カレンダーアプリは私たちの生活と密接に関わるサービスで、毎日のメンテナンスや細かい改善が欠かせません。メンバーの半数がエンジニアで構成されるTimeTreeは、Slack上で日々技術的なやり取りやギークな話題で盛り上がっています。

今日は、未来のメンバーに向けてTimeTreeのエンジニアがどんな環境で仕事をしているのか技術スタックを簡単にまとめます!

組織構成

TimeTreeの組織図は大きく「プロダクト」と「ファンクション」に分かれています。エンジニアは「プロダクト」内でサービスやプロジェクトごとの領域に分かれて仕事をしています。プロダクトの領域は主に以下4つ。

👉🏻Service カレンダーシェアアプリ「TimeTree」のアプリ版 / Web版の開発運営が中心です。

👉🏻Ads TimeTree Adsの開発を担っています。

👉🏻Developer platform TimeTree Devにの開発に携わります。主にAPIやPluginの開発、外部サービスとの連携などを担っています。

👉🏻Public calendar TimeTreeの「公開カレンダー」機能の企画開発を担っています。

ひとつの領域に固定されずそれぞれのメンバーがフラットに助け合いながら仕事をしているところが、TimeTreeエンジニアチームの特徴のひとつです。

技術スタック

エンジニアはそれぞれ専門領域ごとにiOS / Android / Web Frontend / Web Backend / データ基盤とゆるやかなチームがあります。それぞれの技術スタックを紹介します!

👉🏻iOS

  • チーム構成:主務4名 / 兼務1名

  • 言語:Swift, Objective-C, Ruby

  • ライブラリ:RxSwift, Alamofire, Core Data, Firebase

  • アーキテクチャ:MVC, MVVM

  • 自動化ツール:fastlane

  • CI:Bitrise

👉🏻Android

  • チーム構成:主務4名 / 兼務1名

  • 言語:Kotlin, Java

  • ライブラリ:RxJava2, okhttp, greenDAO, EventBus, Glide, dagger2, Lottie, Firebase

  • アーキテクチャ:MVVM

  • 自動化ツール:fastlane

  • CI:Bitrise

👉🏻Web Frontend

  • チーム構成:主務3名 / 兼務1名

  • 言語:JavaScript, TypeScript

  • ライブラリ:React, React Router, Redux, Hypernova, webpack

  • テスト: Jest, WebdriverIO

  • CI:Circle CI

👉🏻Web Backend

  • チーム構成:主務4名 / インフラ1名 / Ads分析 2名

  • フレームワーク:Ruby on Rails

  • ミドルウェア:Sidekiq, Unicorn, nginx, Docker

  • テスト:RSpec

  • データベース:MySQL(Aurora), Redis, DynamoDB

  • インフラ:AWS

  • メトリクス:DataDog, CloudWatch, Sentry

  • CI:CircleCI

👉🏻データ基盤(Webバックエンドと兼務)

  • 言語:Ruby, TypeScript, SQL

  • バージョン管理:GitHub

  • フレームワーク:Ruby on Rails

  • 環境:AWS, GCP, Docker

  • CI:CircleCI, Github Actions, Terraform

  • DB:MySQL, Redis, DynamoDB

  • 分析:BigQuery, Redash, Ampliitude, Firebase

  • 監視:DataDog, CloudWatch, OpsGenie

StackShareにも随時最新の技術スタックを更新しているのでチェックしてみてください。

https://stackshare.io/timetreeapp/timetree

開発スタイル

プロジェクトによって様々な開発スタイルを導入しています。最近は一部プロジェクトで「モブプログラミング」手法を取り入れて、TimeTreeらしい開発スタイルを模索しています。

コミュニケーション

  • Github

  • Slack

  • Zoom

  • Discord

全メンバーがフルリモートワークに移行してからは、色々なコミュニケーションツールを試しています。用途や状況にあわせて最適なはたらく環境づくりを、メンバーみんなでつくり上げています!

一緒にはたらく仲間を募集中

TimeTreeは一緒に働いてくれる仲間をつねに探しています。興味があれば、詳しい募集内容を確認してみてください!

各チームからのコメント iOS / Android / Web Frontendチームでは、プロダクトの品質・パフォーマンス・アーキテクチャなどの改善ができる人、コード品質の改善・リファクタリングに情熱をもって取り組める人を求めています! Web Backend / データ基盤では、大規模データの処理やデータモデリングに取り組める人、データを活用したTimeTreeの新しい事業づくりに関心がある人を求めています!

採用ページに募集ポジションやくわしい内容が載っています。ご覧ください!

https://timetreeapp.com/intl/ja/corporate/jobs