本記事では「アドテクに興味があるけど敷居が高い」と思ってる技術者に向けて、どのような技術を学ぶべきか紹介します。
まずは、どのような技術の需要があるのか調査
そもそも、アドテク業界に限らず、IT業界は空前の人で不足です。
例えば「Java経験5年目のシステムエンジニア」と言うだけで、それはもう引っ張りだこの状態で、プロジェクトへアサイン依頼が「一人に数十件来る」レベルです。その中でも、進化が早いアドテク関連企業の人手不足は、もっとも深刻です。
しかし、アドテク関連企業に関しては言えば、「経験5年目のシステムエンジニア」というだけでは採用されません。「少数精鋭で良いプロダクトを作っていこう」と考えられてらっしゃる企業が多いので、いくら人手が足りなくても「技術要件に見合わない人は不要」という思いが、強いようです。
そこで、アドテク関連企業が「どのような技術要件で」技術者を募集しているかを調べてみました。
調査
調査先:Wantedly
Wantedly内で「エンジニア」募集の「アドテク企業」のみをピックアップしてます。(アドテク企業だけど、セールスとマーケターだけ募集中といった企業は除いてます)
ピックアップの順番ですが、WantedlyのProjectsIDの若い順に掲載しています。また「ウチが載ってない!」と言う場合は、伊藤に連絡ください。
可能な限り、ピックアップ企業に追加させていただきます。
現在:20社(2015.1.7)
ピックアップ企業
株式会社カンム
企業URL:https://kanmu.co.jp/
- Pythonでの開発に興味のある人
- AWSを使ったwebサービス運用経験のある人
- チームでの開発に慣れている人
- プロダクトの品質に拘り、モダンな開発体制を一から築いていきたい人
◎弊社が勝手に注目している技術
- インフラ関係(Chef、AWSの各種コンポーネント)
- 大規模データ処理(Hadoop/Hive(EMR)、Redshift、Riak)
- データ可視化(CoffeeScript, D3.js)
株式会社adingo
◎使用することになる技術や環境など
- Linux、PHP、CodeIgniter
- Smarty、Twig、jQuery
- Jenkins、PHPUnit
- GitHub、Pull Request
アドイノベーション株式会社
企業URL:http://adinnovation.co.jp/
言語のメインは Java。 フレームワークは Wicket に Google Guice を組み合わせて利用、ORM は Hibernate または Iciql。 データベースは PostgreSQL、MySQL、MongoDB を局面に合わせて使い分けています。
Gunosy
企業URL:https://gunosy.co.jp/
◎推奨スキル
- GolangまたはPythonを用いたwebシステム開発経験
- webアプリケーションのパフォーマンスチューニングの経験
◎歓迎スキル
- Golang、Erlang、Scalaなどの非同期プログラミング経験
- データ集計や統計に関する知識と業務経験
- 機械学習と分散システムに関する知識と業務経験
- クラウドインフラ(AWSなど)の構築運用経験
- アドサーバ(アドネットワーク・SSP・DSPを含む)の構築運用経験
株式会社アイモバイル
企業URL:https://www.i-mobile.co.jp/
◎開発言語 サーバサイド
- 言語:ASP.NET
- OS:Windows Server 2008 R2
- DB:SQL Server 2008
- ツール:Visual Studio 2010
- 開発エディタ: 同上
- バージョン管理: VSSおよびSVN
ユナイテッド株式会社
企業URL:https://united.jp/
◎必須の経験・スキル
- Perl、PHP、Ruby、Python、Javaなどを用いたwebアプリケーションの開発経験
- Linux/RDBMSを用いた開発経験
◎下記のような方、大歓迎(必須ではありません)
- アドテクに興味がある方
- C言語、Perlの経験がある方
- サーバ構築経験がある方
- 大規模データの分析経験がある方
サムライト株式会社
企業URL:https://somewrite.com/
- PHP、Perl、Ruby、Python いずれかのスクリプト言語での開発経験がある方
- LinuxやMySQLについての基礎理解 がある方
- オブジェクト指向プログラミングの基礎理解がある方
- HTML/Javascript/ActionScriptの経験 がある方
- Unix/Linuxの経験がある方
- Java/Cの経験がある方
- MySQLなどのデータベースの経験がある方
マーベリック株式会社
企業URL:https://www.mvrck.co.jp/
- Bigdateに関する興味
- KVS(redis/MongoDB)への興味
- Hiveへの興味
- 開発言語興味
- Scala
- Ruby
- Perl
- Java
- Haskell
※言語につきましてはどれか1つでも問題ありません
- gitの利用経験
株式会社エージェントゲート
企業URL:https://www.agentgate.jp/
○開発環境:
- サーバ側:LAMP環境
- 管理画面:Ruby on Rails、JavaScript
株式会社ALBERT
企業URL:https://www.albert2005.co.jp/
【開発環境】
- IntelliJ IDEA ライセンス貸与
- JenkinsによるCIの実施、テスト自動化
- Ansibleによる構成管理
- Redmine によるチケット駆動
- Mac or Windows8 64bit / メモリ8G~ / モニタ23型ワイド~(デュアル可)
- デスクトップPCの他、ポジションによりノートPC(MacBookAirあり)貸与
- 外部常駐なし,自社内開発
- AWS
○開発言語 Java, Python ○RDB, KVS PostgreSQL, MySQL, Redis, Memcached ○AWS EC2, EMR, ElastiCache, Redshift, DynamoDB, Kinesis など ○フレームワーク Java : Play Framework, Spring系 JavaScript : jQuery, AngularJS 分散処理 : Hadoop、Apache Spark ○サーバー環境、OS OS : CentOS(Amazon EC2) ○他管理ツールなど Redmine, Backlog, Mercurial, Sphinx
スケールアウト
-必要な経験/スキル
- 本、webなど媒体を問わず知識欲を持っており、常に検索する姿勢
- 検索できると便利になる世の中の事象、現象を論理的に考えられる能力
- Linux/UNIX上での開発経験
- 大規模分散システムの設計・開発経験、もしくは設計思想などの把握
- Python、Perl、Ruby、Scala またはその他スクリプト言語を用いたプログラミングスキル
-あると望ましい経験/スキル
- 統計モデリング、機械学習またはデータマイニングの分野での研究開発経験
- 自然言語処理の分野での研究開発経験
- ネットワーク(ソケット通信)プログラミングの開発経験
スマートニュース株式会社
企業URL:https://about.smartnews.com/ja/
- アドテクに興味がある
- アドネットワーク構築経験
- アドテク組織のマネジメント経験
Demand Side Science 株式会社
企業URL:http://demand-side-science.jp/
Demand Side Science では、ほとんどの成果物が Scala で実装されています。 fractale では webビーコンに Play Framework を採用、またRTB取引サーバには Twitter が公開している RPCフレームワーク「Finagle」を使い、ハイパフォーマンスを実現しています。 またフロントエンドJavaScript は Backbone.js で構造化。メインデータベースは MySQL で、バックエンドのログ基盤として HBase & Hive を使用しています。 テストについては Specs2 でサーバー側、Jasmine でフロントエンドの単体テストを記述しています。 インフラはオンプレミスで、構成管理に Ansible を使っています。 チーム開発は GitLab 上で行っており、チケット管理に Redmine、HipChat でチーム内のコミュニケーションを取っています。
株式会社フリークアウト
企業URL:https://www.fout.co.jp/
必須スキル webアプリケーションやシステムソフトウェアの設計・開発経験のある方 求める人物像
- ハンズオンによる問題解決能力のある方
- 社外を含む複数の関係者と協力して物事を進める力がある方
- ディテールに対する深い理解力と、本質的な論点を把握する洞察力のある方
- セルフモチベーティブと、開発チームにおける(権限を使わない)強いリーダーシップと影響力のある方
株式会社ヒトクセ
企業URL:https://hitokuse.com/
【必須スキル】
- JavaScript
- Ruby on Rails
- AWS, Hadoop, fluentd
のいずれか
- Git
- UNIXの操作
- ビジネスへの理解
株式会社まくびーインターナショナル
開発言語 PHP データベース MySQL
株式会社イルグルム(旧株式会社ロックオン)
企業URL:https://www.yrglm.co.jp/
※細かい技術要件なし
株式会社ジーニー
企業URL:https://geniee.co.jp/
※細かい技術要件なし
株式会社マイクロアド
企業URL:https://www.microad.co.jp/
※細かい技術要件なし
株式会社Intimate Merger
企業URL:http://corp.intimatemerger.com/
- Elastic Search / Lucene / Solrなどの検索エンジンの技術
- Redis / Riak / AeroSpike / DynamoDBなどのKVSの技術
- BigQuery / Treasure Data / Amazon Redshiftなどの大規模データストレージの技術
- その他、Pythonを使ったプロダクト開発やJavascriptを使ったロギングの技術に興味がある方がいましたら、ご連絡お待ちしております!
技術要件まとめ
どこの企業さまも、基本的には、大量データ、大量高速トランザクションを捌くための技術構成(Hadoop、KVSなどがコア技術)になっているのが読み取れます。その結果、技術要件も似たようなものになってますね。
また、分散リポジトリで、自動化ツールを導入し、インフラはクラウドで、チケット駆動開発を行っているというのも読み取れます。言語やフレームワークは、見事にバラバラですので、興味がある企業があれば、そこに合わせる必要がありそうです。
必須と思われる技術群
アドテクエンジニアになりたければ、以下を学ぶことが必須かと思います。
大量データ処理(Hadoopなど)
Hadoop はあくまで基幹技術であり、AWS が提供している Redshift や、Treasure Data など、関連するサービスなども合わせて学んでおくと良いと思われます。
大量高速トランザクション処理(KVSなど)
アクセスピーク時には「1秒間に数万トランザクション」ということもあるので、KVS だけでなく、ハイパフォーマンスなHTTPサーバや、落ちないシステム構築の作り方なども重要な要素になってきます。
インフラはクラウド(AWSなど)
大量データ処理を実現するには、クラウドサーバ技術は必須ですが、クラウドサーバを利用する際の「コスト最適化」などもできると重宝されると思います。
チケット駆動開発(Redmineなど)
アドテク業界は非常に動きが早く、何の施策が効果的なのかを判断するためにも、まずは出すというスタイルの開発が多いです。そのために、スクラムの2週間スプリントで、どこまでの範囲を開発するか?リリースするか?などをチケット管理します。
分散リポジトリ(Gitなど)
マージがやりやすいと言うのもありますが、プルリクエスト/レビュー運用による品質の担保を前提に導入されていると思いますので、その辺も意識して学ぶと良いと思います。
自動化ツール(Jenkinsなど)
手作業の削減、ミスの低減による利用もありますが、品質担保を自動化する、見える化するというのも重要なことです。
任意の技術群
これは、個人的な意見ですが、以下のような技術も学んでおくと良いと思います。
JS、ブラウザーなどの深い知識
ブラウザーで取得可能な情報、3rdPartyCookie 知識、各ブラウザーや各サイトのJSライブラリの挙動の違いなど、あれば重宝されます。
RESTfulシステム構築(Play Frameworkなど)
API公開前提、負荷分散前提でシステム構築する場合に、この知識や経験は有利になるので、学んでおくことは損になりません。
チャットツール(ChatWorkなど)
チケットに残さないようなコミュニケーションや、ちょっとした依頼など、すべてチャットツールのみで完結できるので、重宝するツールです。単なるツールですが、使い慣れていると開発に伴うコミュニケーション効率が上がります。
※補足 アドテク業界に特化した技術要件としたので、システム業界全体で必要な技術要件は、ある程度持っている前提で記載してます。
まとめ
ざっくりと私見も含めて、技術要件をまとめてみましたが、いかがでしょうか?
弊社は、上記のような企業さまと協業や技術協力させていただくケースが多いので、肌感覚とも合ってます。これらの技術を学べば、ほぼ確実にどこかの企業とご縁があるかと思います。