moffersで年収1200万円のオファーをゲットしたエンジニアの業務経歴を公開します

以前「[転職ドラフトで1000万円超えのオファーを2度貰ったエンジニアが「評価された理由」と「正社員で働く意味」について考えてみました。](https://qiita.com/poly_soft/items/a6db13a6e18efc1e7db8)」という記事を書いたのですが、転職ドラフトと同様な「年収確約型のエンジニアスカウトサービス」として[moffers](https://moffers.jp/)というものがあります。

転職ドラフトがここ最近非常に盛り上がっているのに対してmoffersはかなり知名度が低いのですが、現在開催中のmoffersで、転職ドラフトでも頂いたことのない「**年収1200万円**」という高額オファーを頂きましたので、若いエンジニアの方たち(特にバックエンド系の方たち)の今後のキャリアプランのご参考になればということで、moffersに登録している業務経歴をそのままのフォーマットで公開したいと思います。

ちなみにmoffersでは下記のような感じでオファーが届きます。(黒塗りですみません)

![42213872_1882166651860046_1487230536177942528_n.jpg](https://qiita-image-store.s3.amazonaws.com/0/22932/1541c7de-4322-5fcc-4d84-9e07449f6b20.jpeg)

# 業務経歴1：【Kotlin/Vert.x/TypeScript/Vue.js】汎用レコメンダシステムの開発(2017年〜2018年頃)

【プロジェクト概要】
機械学習系のプロダクト開発に強みをもつ企業様において、汎用レコメンダシステムの開発作業を担当。

【チーム構成】
プロダクトオーナー兼開発者1名、スクラムマスター1名、機械学習エンジニア2名、アプリケーション＆インフラエンジニア1名

【担当業務】
主にインフラ設計やアプリケーションのアーキテクチャ設計作業を担当し、CloudFormationによるAWSのインフラ構築と管理、CircleCIによるCI/CD環境の構築、APIサーバのWebフレームワークの選定、各種実装作業等を担当。
言語はKotlin。WebフレームワークはVert.x。データベースはDynamoDBとAurora、認証基盤にはCognito、ログ収集にはFluentd、分析基盤にはBigQueryを使用。
フロントエンド(管理系画面)の実装も担当。言語はTypeScript、フレームワークはVue.jsを使用。(HTMLはPug化、CSSはSASS化)

【発揮したバリュー】
CloudFormationによる構成管理は初体験であったが短期間で学習しキャッチアップ。AWSサポート等を有効に活用して適切なサービスを選択しサービス全体のシンプル化に貢献。フロントエンドの担当も久々であったが最新のトレンド(Webpack/Babel/TypeScript等)を短期間で学習してモダンな構成を実現。

# 業務経歴2：【Scala/Rust/GCP】大規模DMPの開発・運用業務(2017年頃)

【プロジェクト概要】
大規模DMPの開発・運用業務を担当。

【チーム構成】
プロダクトオーナー1名、アプリケーションエンジニア3名、インフラエンジニア1名

【担当業務】
主にAPIの開発・改修・移植作業を担当。使用言語はScala/Rust。使用した主なライブラリはScalaがFinch/Cats/Shapeless、RustはIron。
サーバー環境はGCP(Kubernetes/GKE/GCS/Cloud Pubsub)。
分散処理基盤としてApache Spark、分析基盤としてTresure Dataを使用。

【発揮したバリュー】
Scalaに関しては「Better Java」ではなく「関数型スタイルでの開発」が徹底されている環境だったため、CatsやShapeless等の関数型ライブラリの使用法や概念に慣れるまで非常に苦労したが、「Scala関数型デザイン＆プログラミング」等で学習し短時間でキャッチアップ。GCP/Kubernetesも同様に短期間でキャッチアップして早い段階で戦力として貢献。
Rustに関しては未経験(チーム内にも経験者ゼロの状態)であったが、こちらも短時間で「オーナーシップ」や「ライフタイム」等の概念を理解して2ヶ月ほどでAPIの移植作業を完了。

# 業務経歴3：【Scala/Go/Spark】ネイティブ広告プラットフォームの開発(2016年頃)

【プロジェクト概要】
SEOコンサルティングやトレーディングデスク事業等を行っておられる企業様において、ネイティブ広告プラットフォームの開発作業を担当。

【チーム構成】
プロダクトオーナー1名、スクラムマスター1名、アプリケーションエンジニア4名

【担当業務】
Apache SparkとScalaを使用した大量データのバッチ処理システムの機能追加、Golangを使用した配信サーバーの機能追加、広告タグ(JavaScript)の改修、クローラー(Ruby)の改修作業等を担当。

【発揮したバリュー】
Scala、Goともに初経験であったが、持ち前の速習力を発揮して短期間でキャッチアップ。
Sparkおよび分散処理フレームワークとMap/Reduceの概念、文書マッチングの際のTF-IDFや機械学習系ライブラリの使用方法に関しても見識はほぼゼロの状態だったが、こちらも短期間でキャッチアップ。
Scala/Golang/Ruby/JavaScriptと、タスクごとに多言語を行き来する環境であったが、強みである速習力とユーティリティ性を発揮して多面的にチームに貢献。

# 業務経歴4：【Elixir/Phoenix】メディア系Webサービスの雛形開発(2016年頃)

【プロジェクト概要】
Elixir/Phoenixの技術検証、および外部への技術アピール用(主目的はリクルーティング)にメディア系Webサービスのサンプルプロジェクトを開発。

【チーム構成】
アプリケーションエンジニア1名(エンジニアチーム全体としては5名。ミーティングは毎週開催されていたが、それぞれが異なる言語で様々な種類のサービスやアプリのプロトタイプを開発)

【担当業務】
認証/認可/ソーシャルログイン/多言語対応/DBのマスタースレーブ対応/ページネーション/S3への画像ファイルアップロード/SESによるメール送信/OGP/サイトマップ/RSS/ElasticSearchによる全文検索等、通常のメディア系Webサービスで必要になる機能を、ElixirとPhoenixで実装。

【発揮したバリュー】
不足している機能は専用のパッケージを開発してhexにアップ、Phoenixや各種パッケージの不具合を多数発見してプルリクを送信する等、Elixirのエコシステムにも貢献。Qiita記事の投稿やイベントでの登壇等、チームおよび企業自体のプレゼンスの向上に貢献。

# 業務経歴5：【Rails/AWS】女性向けのニュースまとめ系Webサービスの開発(2015年頃)

【プロジェクト概要】
女性向けのニュースWebサイトの開発。

【チーム構成】
プロジェクトマネージャー兼エンジニア1名、ディレクター1名、サーバーサイドエンジニア2名、フロントエンドエンジニア1名

【担当業務】
サーバーサイドの開発およびインフラ構築を担当。
DB設計/管理画面/認証/API/画像アップロード/ソーシャルログイン/多言語対応/サイトマップ/RSS/OGP/Cron設定/ランキング算出用バッチ/Capistranoによるデプロイスクリプト/WerckerによるCI/Fluendによるログ集約/NewRelic/フロントエンドへのGulp導入/XSS対策/CSRF対策/n+1問題対策/SEO対応等、様々な機能の設計/実装をメインエンジニアとして担当。

【発揮したバリュー】
Railsを使用してゼロからコードを書くこと、およびAWSを本格的に使用するのはこれが初体験であったが、主にネット上の様々な情報を参考にしてほぼその時点の「ベストプラクティス」と思われる手法/ライブラリを採用して、良い意味で「コモディティ化」された構成を実現。

# 備考

- 現在参画させて頂いている案件の業務経歴に関しては、moffersの方には登録してありますが、作業が現在進行中ということもあり、今回の記事での掲載は控えました。
  - 現在担当している業務は「**GCP環境におけるマイクロサービス構成の機械学習系サービスのアーキテクチャ設計＆開発＆MLOps業務**」となります。非常に先進的な作業内容なのでこちらも恐らく高く評価されたのではないかと思います。

- 転職ドラフトの方には2014年以前の案件もいくつか登録しているのですが、moffersの方では審査担当の方から「インパクトの強い直近の案件だけに絞った方が良いのでは」というアドバイスを頂いたということもあり、2015年以降の業務経歴だけを登録しております。

- 「プロジェクト概要」「チーム構成」「担当業務」「発揮したバリュー」というフォーマットは、こちらもmoffersの審査担当の方からのアドバイスでこのように変更しました。それ以前は「チーム構成」や「発揮したバリュー」等は記載していなかったのですが、変更後のフォーマットの方が確かに見やすいので、転職ドラフトの方に登録している業務経歴もこのフォーマットに変更しています。

- moffersではGitHubアカウントが必須登録なので、こちらの内容は間違いなくチェックされていると思います。私が登録しているGitHubアカウントは[こちら](https://github.com/kenta-aktsk)で、ほとんどElixirのコードのみですが、業務経歴だけでなくこちらの充実度もオファー金額をある程度左右すると思われます。

- moffersでも転職ドラフトと同様に「Qiitaアカウント」もしくは「自分のWebサイトのURL」を登録する欄があります。GitHubほどで無いものの、こういった「**外部発信の頻度やその量と質**」もオファー金額にそれなりに関わってくると考えて良いと思われます。

# moffersというサービスに関する感想

- 転職ドラフトと比較すると使い勝手は非常に悪いです。
  - 「セッションが数時間で切れるので毎回ログインし直す必要がある」「業務経歴の順序を変更出来ない」等、ユーザの利便性を損なう部分が一向に改善される気配がありません。

- 審査担当者のご態度があまりよろしくありません。
  - 文面だけのやりとりではありますが、対応がどうもお役所的というか上から目線です。転職ドラフトと違って「サービスに対する情熱の無い人たちが仕事として"こなしている"」感がとても伝わってきます。
  - ただし指摘は結構的確だったりします。

- 参加企業数はそれなりです。
  - 転職ドラフトと比較するとメーカー系やSIer系の企業も多い印象です。(なぜか銀行も参加しています)
  - 少々欲張り過ぎてエンジニアのターゲット層を絞りきれていない印象があります。

- 転職ドラフトと違って「中の人」達の顔が見えないので「熱量」を感じません。
  - 「サービスをグロースしていこう」という気合が伝わってこないので、どういうポリシーで運用しているのかよく分かりません。
  - 恐らく「かなりお堅い系の大手企業さん」が参加しているということもあって情報発信に及び腰なのだと思いますが、転職ドラフトと比較すると、「ユーザを集める」という点に関してこの部分は相当劣っているという印象です。

- 他のユーザの指名状況が全く分かりません。
  - 自分がどの程度の水準にいるのかが可視化されないので盛り上がりに欠けます。参加していてあまり面白くありません。
  - Twitter等で「moffers」で検索してもツイートがほとんどヒットしないのはそういう「サービス自体の面白みの無さ」も原因だと思われます。

- オファーの日時が限定されている意味が分かりません。
  - 開催期間は4週間なのですが、オファーを受信出来る日時が「毎週木曜日の正午のみ」という謎仕様が存在します。

- でも高額オファーは来ます。
  - 前々回のmoffersでは900万円のオファーを頂きました。
  - 多分営業の方たちがかなり頑張って企業さんを引っ張ってきているのだと思います。
  - 企画や運営の方たちも頑張ってほしいところです。

# まとめ

「手を動かすエンジニア」としてどういった業務経験が高く評価されやすいかは、個々の企業のニーズとのマッチング度次第なので一概には言えません。

ただし私の頂いた1000万円超えの高額オファーに関しては、ご提示頂いたそれぞれのポジションから考えると、下記のような業務経験が高く評価された可能性が高いと思われます。

- 大量アクセスを捌いた業務経験
  - APIサーバのオートスケールやキャッシュの設定、バックエンドのデータストアの選定や負荷検証の経験等。
- 大規模データを扱った業務経験
  - RDB/NoSQL/KVS/その他SparkやBeam等のビッグデータ分散処理フレームワークの使用経験等。
  - BigQueryやTreasureData等のビッグデータ分析基盤の使用経験等。
- 難易度の高い言語による開発経験
  - Scala等の静的型付け関数型言語や、Rust等の学習コストの高い言語による開発経験。
- アーキテクト的な業務経験
  - アプリケーション全体のアーキテクチャ設計や、クラウド系インフラの全体アーキテクチャの設計経験等。
- DevOps系の業務経験
  - コンテナ化、サーバーレス化、インフラのコード化、CI/CD、監視/モニタリング系の業務経験等。

(2018/09/24追記)
上記に関してもう少し詳細に説明した動画をYoutubeにアップしましたので、宜しければこちらもご参照頂ければと思います。

[年収1200万円の高額オファーを獲得したエンジニアがお薦めする5つの業務経験 - YouTube](https://www.youtube.com/watch?v=Aop6PgReM0E)

逆に言うと、「**高負荷サービスの経験が乏しい**」「**小規模なデータしか扱った経験が無い**」「**RubyやPHP等の動的型付け言語以外の経験が乏しい**」「**アーキテクト的な業務経験がない**」「**DevOps周りの知見が乏しい**」という状態だと、バックエンドエンジニアとしての人材価値は中々高まらないという傾向があると思いますので、「手を動かすエンジニア」としての価値を上げていきたい方は、上記のような技術分野に対する知見を深めていくのは筋の良い選択なのではないかと思います。

また、この記事で記載したのは、私の「2015年からのわずか3年半程度の業務経歴」ですが、こういった幅広い経験を数年程度で1社だけで積んでいくのはほぼ不可能ですので、自分の成長曲線を常に「右肩上がり」の状態にしていたい方は、「適切なタイミングで職場を動いていく」という考え方が非常に大事ではないかと思います。

その場合、正社員転職だと「職歴がどんどん増えてしまう」という大きなリスクがありますので、こういった「自分の幅を広げる時期」においては、「職歴を増やさずに様々な案件を経験可能」な、フリーランスというワークスタイルが適しているのではないかと思います。

[フリーランスエンジニアに関する5つの誤解 - Qiita](https://qiita.com/poly_soft/items/c494f3df80738a3daf1c)
[フリーランスエンジニアという働き方のメリット/デメリット - YouTube](https://www.youtube.com/watch?v=opcPvat0eEo)

以上、皆様のご参考になりましたら幸いです。

# 最後に

Youtubeの方で、Web系エンジニアやWeb系エンジニアに興味のある方たち向けの[雑食系エンジニアTV](https://www.youtube.com/channel/UC_HLK-ksslL-Z_2wiIZDlMg)というチャンネルをやっています。もしご興味ございましたらチャンネル登録してみて頂けると大変嬉しいです。

また、2019年から「[雑食系エンジニアサロン](https://kentakatsumata.net/archives/10)」というオンラインサロンも始めました。

Twitterの方でも「Web系エンジニアのキャリア戦略」を中心に色々と情報を発信しておりますので、もし宜しければフォローしてみてください。[@poly_soft](https://twitter.com/poly_soft)