最近よく目にする「フルスタックエンジニア」とは何だろうか?
このところ海外(おもに米国)のスタートアップで、「full stack engineer」の求人広告を以前より多く見かけるようになりました。フルスタックエンジニア、つまりインフラからミドルウェア、モバイル、デザインまで、あるいは設計からプログラミング、デプロイまで、何でもこなせるエンジニアを募集している、ということのようです。
例えば、このPublickeyでも導入しているコメントシステムの開発元であるDisqusは現在、「Full-stack Web Engineer」を募集しています。
「What We're Looking For」の項目では、5年以上のエンジニア経験とチームリーダーの経験などを求めた上で、技術的には次のような要件を並べています。
- Very experienced with web application deployment and software design principles
- Expert-level Python and Django
- Full-stack skills must include JavaScript, CSS, and HTML5
- Familiarity with JavaScript frameworks such as Backbone or Ember
設計とデプロイの深い経験があり、PythonとDjangoフレームワークのエキスパートで、JavaScript/CSS/HTML5のスキルとBackbone.jsかEmber.jsのJavaScript MVCフレームワークのスキルがあること、と。
まさにサーバからクライアント、そして設計からデプロイまでと、フルスタックのエンジニアを求めていることが記されています。
フルスタックエンジニアの求人とは?
米Hacker Newsサイトには、特にこのフルスタックエンジニアの求人が数多く投稿されています。少し並べてみましょう。
シドニーのスタートアップの募集「Full stack engineer for YC company in Sydney Australia」。YC companyというのは、このHacker Newsの運営元でもあるベンチャー投資会社Y Combinatorに投資を受けたことを示すようです。この会社の求人はこんな感じです。
- A degree in Computer Science or equivalent
- Familiarity or expertise with the Grails framework
- Solid demonstrable OO programing skills. We would want to see knowledge of practical use of design patterns etc.
- You have built significantly large dynamic websites before and have references.
- Solid backend coding skills. Your not afraid of threads :)
- Solid font end coding skills. JQuery etc
コンピュータサイエンスを学び、Grailsフレームワークに詳しくオブジェクト指向プログラミングの能力とデザインパターンの知識があり、大規模でダイナミックなWebサイトの構築経験とバックエンドの知識、そしてjQueryなどのフロントエンドのコーディングスキル。
「Balanced is hiring full-stack engineers」では次の要件でした。
- You should be able to enjoy and quickly hacking in multiple languages.
- You're very comfortable with frontend as much as you're comfortable with backend.
- Your communication skills are fantastic.
- You are big fan of open source and understand that we're an open company
複数の開発言語、フロントエンドとバックエンドの開発能力とコミュニケーションスキル、そしてオープンソースが好きなこと。またSQLの知識も求めるとも別のところに書いてありました。
「Amiato (YC W12) is looking for full-stack developers」では次の要件。
- (front-end): build beautiful, intuitive visualizations that help answer why. (We're fans of D3.js).
- (back-end): build and support a scalable, multi-tenant web application
JavaScriptライブラリのD3.jsを用いた直感的なビジュアルの美しいフロントエンドの開発と、スケーラブルでマルチテナントなバックエンドの開発能力。
「BuildZoom (YC W13) is hiring full stack engineers」では次の要件でした。
- Required skills: * JavaScript; * Python; * SQL; * Unix script
- Desired skills: * client-side MVC framework; * third party JavaScript widgets; * web performance optimization; * Amazon Web Services; * machine learning (namely supervised classifiers)
JavaScriptとPythonとSQLとUNIXのスクリプトの能力が必要で、さらにクライアントサイドのMVCフレームワーク(backbone.jsとかember.jsでしょう)、サードパーティJavaScriptウィジェット、Webパフォーマンスの最適化、Amazonクラウド、機械学習などの能力があることが望ましいとのこと。
日本でもフルスタックエンジニアの募集がないかと検索してみると、ありました。Wantedlyに掲載されていたGengoの求人です。
(1) フルスタック・エンジニア
・他のフルスタック・デベロッパーと協力して、Gengo APIらびにアプリケーションレイヤーの新機能開発を行い、パフォーマンスを維持します。
・コードベースはPHPから Python に移行中。Python ハッカー大募集。
・APIの仕様策定・開発経験のある方、SQLに精通した方(PostgreSQLを使用)、オープンソース・フレームワークとライブラリーに精通し、実用性を重視してテクノロジーとアプローチの選択ができる方を歓迎します。
もともとスタートアップではフルスタックエンジニアだった
なぜこのところフルスタックエンジニアの求人が目立つようになったのか、理由は想像するしかありません。しかし、もともと人数の少ないスタートアップでは、一人や数人のエンジニアがバックエンドからフロントエンドまですべてのレイヤを担当せざるを得なかったのは以前から変わらなかったはずです。
ここ数年の変化として、クラウドが一般的になったことでインフラやバックエンドの構築が以前よりずっと容易になったこと、そしてサーバ周りにもクライアント周りにもさまざまなフレームワークが充実したことで高度な機能を短期間で開発できるようになり、一人のエンジニアでできることの範囲がずっと広がったことが挙げられます。
こうした流れに合わせて、「フルスタックエンジニア」という分かりやすい名称を多くの人が使い始めたことで、もともとニーズのあったスタートアップを中心に求人が広がっているのではないでしょうか。
アジャイル開発やDevOpsなどの流れは、エンジニアが設計も、開発も、テストも、運用も行う多能工化を求める方向に進んでいます。もちろん各分野のエキスパートが不要になることはありませんが、フルスタックエンジニアはこの先、多くのエンジニアに当たり前のように求められるスキルになっていくのかもしれません。
あわせて読みたい
クラウド事業者がテクノロジーリーダーになる理由~クラウドコンピューティングの雲の中(その1)。NII Open House 2013
≪前の記事
連載マンガ Mr. Admin:長持ちPCは美徳?