登場人物MEMBER
- 小田島 直樹
- 2022年中途入社のiOSエンジニア。ユーザーインサイト局でユーザー起点でAmebaを成長させるための開発に従事。iOSチームではSwiftUIの導入など技術的な課題に挑戦中。
- 原 一成
- フロントエンドのテックリード、Web Developer。Amebaに関連する機能開発や設計、開発環境構築、アクセシビリティ、パフォーマンス面からの品質向上やデザインシステムの構築の傍ら、サイバーエージェントのDeveloper ExpertsとしてWebアプリケーションの発展に従事している。
- 阿久津 恵太
- 2013年新卒入社。Amebaのゲーム部門でブラウザゲームのバックエンドエンジニアを担当。その後はアバターサービスでサーバサイドエンジニアとして機能開発やembedded SREとしてサービスの安定稼働のための取り組みを進める。現在はAmebaブログのシステム刷新プロジェクトのテックリードを努めている
- 三木 俊作
- 2017年サイバーエージェント中途入社。iOSの開発リーダー、システム局の開発、タレント課金の実装開発やマネジメント業務もおこなっている。
- 荘野 敬也
- 2013年中途入社のAndroidエンジニア。入社後は色々なAndroidアプリの開発に従事し、2015年にAmebaアプリで参画し、Androidチームのリーダーを務める。現在は、Amebaマンガアプリのプロジェクトマネージャー兼エンジニア。
目次INDEX
入社1年目の筆者が感じた、Amebaで開発するメリット
若手エンジニアとして転職する時に何を重視しますか?
ライフワークバランスや自社開発などたくさんありますが「市場価値を上げる」ことは外せないですよね。エンジニアを評価する上で、市場価値は大きな指標になります。
私自身も前職でiOSエンジニアとしての成長速度が鈍化してきたことを感じ「若手のうちに市場価値をもっと上げておきたい」という気持ちから転職活動を始め、現在はAmeba事業本部に所属しています。そんな私から、みなさんにぜひAmebaをオススメしたいです。
「大規模な技術刷新に携わることができる」
Amebaだからできる開発として、大規模な技術刷新が挙げられます。
大規模なサービスでは開発体制が古いまま停滞してしまいがちですが、Amebaではむしろ積極的に技術刷新を行なっています。十分にその技術に対して検討を重ね、長期的に安定して運営しやすい、開発の効率が高くなり生産性の向上が見込める、などAmebaにとって十分にメリットがあると判断できればすぐに行動に移すことができます。
「誰にでも成長機会がある」
先ほど「大規模な技術刷新に携わることができる」ことを理由に挙げました。そういった新しい技術の提案や導入は、チームでのポジションに関係なくチャレンジしたい、という強い意欲があれば新卒でも中途でも誰でも行うことができます。
この2つの理由から、Amebaは中途のエンジニアが市場価値を高めていくのにピッタリな環境だと思っています。次は実際にAmebaでどのような技術刷新が行われてきたのか紹介します。
各分野のリードエンジニアに刷新の方針を聞いてみた
【フロントエンド】「コードの改善」だけでなく「提供するもの」も改善
原:技術構成はサービスの性質にもよりますが、基本的には業界で使えるスキルが身につけられるように考えています。
エコシステムに乗っかることで得られる情報量も多くなり、問題が発生した際も早く解決することができます。エンジニア採用の点でもメリットがあります。
モダンなツールは過去の不便さを何かしらの方法で解決しているものなので、適切に利用すれば開発の生産性や品質面の向上も見込める為、できる限り積極的に取り入れるようにしています。また、フレームワークだけでなくWeb標準的なスキルもつけて、変化に強い組織になるようにも工夫しています。
ただ「コードの改善」だけを行うのではなく「提供するもの」も改善できるように意識しています。
刷新後の使用技術(一例)
- React
- Next.js
- HTML
- CSS
- TypeScript
参考リンク
【バックエンド】「刷新の為の刷新」にはしない
阿久津:エンジニアが安全に機能を開発でき、素早くリリースできる状態を目指しています。 Amebaの課題として利用している技術がたくさんあり、学習コストが高いという問題がありました。
それらの問題をインフラをオンプレからAWSに移行したり、言語をJavaからGoに統一するなど、使用する技術を絞り込むことで、エンジニアの学習コストが低くなり、ナレッジの共有もしやすくなる想定です。今回の刷新の目的の1つである「安全に素早くリリースできる状態」を実現できると、ビジネス的にも挑戦する数をさらに増やせるようになると思います。
刷新後の使用技術(一例)
- Go
- AWS
- Kubernetes
- redis
- MySQL
- DATADOG
- fluentd
- Teraform
参考リンク
【iOS】Raising the bar for app development to one level
三木:刷新前は開発環境やシステムがレガシーな状態だった為、開発効率が悪くリリース速度にも影響しましたが、過去に行った刷新でそれらを改善し標準化するところまで完了しました。
現在は開発レベルをもう一段引き上げ、Ameba事業が求めるプロダクトを高い品質でかつハイスピードに生み出していくことを目標としています。具体的には、SwiftUIやSwift Concurrencyの導入の検証を行っており、生産性の向上を図っています。またSREの促進にも取り組んでおり、クラッシュ率やCS対応だけではない、品質の指標設計やモニタリングや課題解決の運用フローの構築も行なっています。
刷新後の使用技術(一例)
- Swift
- SwiftUI
- Swift Concurrency
- RxSwift
- MVVM + CleanArchitecture
- Flux
- Firebase
- BigQuery
- Grafana
- Autify
参考リンク
【Android】Let's try first. For be professional
荘野:Androidは「Let's try first. For be professional」をキーワードに刷新を進めており、実行スピードを落とさず「まずやっていくこと」をチーム全体で推奨しています。
実施したこと:
- アクセシビリティ周り
- CIやテストなどによってアクセシビリティが自然と担保、改善される状態
- Firebase RemoteConfig部分をKMMに置き換え
- KMM導入という技術的挑戦を通し、Amebaの開発効率を最大化する
- JetpackCompose
- チームとして書ける人が限られており、ある意味俗人化になってしまっている。そのため、チームとして全員が、Amebaの方針に則ってComposeを書ける状態を目指している
刷新後の使用技術(一例)
- Kotlin
- Jetpack Compose
- kotlinx.coroutines
- Firebase
- Bitrise
- GitHub Actions
- Kotlin Multiplatform Mobile
参考リンク
Amebaの一員になってみて筆者が感じたこと
Amebaは巨大な組織でありながらも、それぞれの開発チームが技術刷新を行いながら成長を続けています。
私自身も、入社半年でiOS開発にSwiftUIを導入するという大きな役割を任せてもらい、コーディングルールを考えたり、勉強会を開催するなどしてチーム全員でSwiftUIを導入する準備を行なっています。
こういった、若手のうちからオーナーシップとリーダーシップの強化を行える取り組みは貴重な経験でAmebaだからできることだと思います。
入社から半年で導入のリーダーを任せてもらえたのはとても驚きました。
入社前から裁量権は大きいとは聞いていましたが、こんなにもすぐにチャンスをもらえるとは思っていなかったからです。
また、私を信じて大きなことを動かす機会を任せてもらえたときに、エンジニアとして認められたんだということと、Amebaのエンジニアになってよかった、と強く感じました。
Amebaでは100年愛されるメディアを目指して一緒に働いてくださる皆さんを積極募集中です。
カジュアル面談だけも受け付けておりますので、ぜひご連絡ください。