Dear Great Hackers

  1. PR
  1. 求人

第二新卒が1年でフルスタックエンジニアへ!チームラボエンジニアリングのスキルアッププログラムが素晴らしい

エンジニアにとどまらず、数学者、建築家、絵師などの専門家から構成されるウルトラテクノロジスト集団「チームラボ」。

そのグループ会社である「チームラボエンジニアリング」はチームラボのWebアプリケーションやスマホアプリの開発案件を担当しており、プログラミングの素地を持った若年層を積極的に採用している。独自のスキルアッププログラムに取り組みながら開発案件に参加することで、フルスタックに現場で活躍できるエンジニアを目指す。

今回、ご紹介するのは2018年にチームラボエンジニアリングへ入社した尾上あづささん。

大学では文系の学部を卒業し、IT企業に入社。その後、スキルの幅を広げたいと考え、チームラボエンジニアリングの門を叩いた人物だ。

そんな彼女がチームラボエンジニアリングを選んだ理由は「教育体制」にあったという。

なぜ、エンジニアとして働く中で改めてエンジニア教育を受ける道を選んだのか。東京都千代田区神田にあるチームラボエンジニアリングのオフィスを訪ねた。

目次

転職しつつ、学び直す道へ
モダンな技術を用いた教育課題と教育体制
目的を持って課題に取り組む
学びがダイレクトに活きるアサイン
イチから学び直す意義

プロフィール

尾上 あづさ(おのえ あづさ)
2018年4月にチームラボエンジニアリングへ入社。2018年5月以降は、SNSサービス、大学サイトなどの環境構築、設計、実装を担当。2019年4月からは大規模予約サービスのオンプレミスからAWS移行プロジェクトに参画している。

転職しつつ、学び直す道へ

──尾上さんがチームラボエンジニアリングに転職を考えたキッカケはどんなものだったのですか?

尾上あづささん(以下、尾上):前職ではPHPを使ったサービスの運用・保守を行っていました。ただ、私はもっとコードを書きたくて。ゼロからモノを作る仕事がしたいと思ったことが転職のキッカケですね。

──運用・保守のプロジェクトに携わっている場合、ゼロから設計したりするケースは稀ですよね。

尾上:そうですね。私が携わっていた領域も実装とテストがメインでした。例えば、インフラは他のエンジニアの方が用意してくださっていたり、お客様の交渉も別の方が行っていたり。私自身のスキル不足もあり、自分ができることの範囲がとても小さく感じてしまったんです。なので、もう一度開発について学ぶことができる環境に行きたいと思いました。

──そこでチームラボエンジニアリングに出会ったと。同社を選んだ決め手は何だったのですか?

尾上:教育体制ですね。スキルアッププログラムの内容を聞くと、サーバーサイドもフロントもインフラも全て担当できるようになる。私はスキルの幅を広げて、ゼロからモノが作れるエンジニアになりたいと思っていたので、ここしかない!と思ったんです。

──実際、尾上さんは前職で現場でご活躍されていましたよね。それなのにもう一度、しっかり学べる環境を選んだのは何故でしょう?

尾上:自分の知識が限定的だと実感していたことが大きいと思います。PHPでフレームワークを使っていても中身の構造を理解できていなかったですし、開発しか担当したことがなかったので。

チームラボエンジニアリングであれば、フロントもインフラもできるようになる。一部分しか知らない状況でしたので、広範囲で学びたい。いえ、学び直したいと思ったんです。

エンジニアとして一人前になる。そのためにチームラボエンジニアリングを選んだ

モダンな技術を用いた教育課題と教育体制

──そうした背景があり、2018年4月にチームラボエンジニアリングへ転職されたのですね。少し教育課題を拝見させていただいたのですが、かなり難易度の高い印象を受けました。(※課題内容は本記事末尾に記載)

尾上:チームラボエンジニアリングのWebエンジニアってサーバーサイドやフロントエンド、インフラなど明確な役割分担がないんですよ。

ですので、スキルアッププログラム(※本記事末尾に記載)を通じて、実際の開発プロジェクトで利用される技術要素に一通り触れることが研修の目的にもなっているんです。

自分の力で1からサーバー上で動くアプリケーションを作ることで、システム全体を設計・構築できるエンジニアを目指すのですが、分からない領域のことは全然ダメでしたね。

──なるほど。

尾上:最初の教育課題はサーバーサイドでした。まず、教育課題の項目を見てRESTful APIってなんだろう?って思っちゃって(笑)。API自体は作ったことがあったんですけど、RESTfulな形という言葉自体知らなくて。

はじめてなことが多い課題でした。OAuthを使ったログイン認証の実装も自分で作ったサイトで経験したことはあったんですよ。でもそれって「なんとなくできちゃってる」だけで、裏側までは全然理解できてなくて。

教育担当メンバーに教えていただきながら少しずつ理解していったような気がします。

──サーバーサイド課題が終わると、フロントエンドの課題がスタートします。

尾上:ここが本当に難しかったですね。Reactでフロントエンドの課題を進めたんですけど、考え方がサーバーサイドの設計方針と全然違って。

SPA(シングルページアプリケーション)を作ったんですけど、難しかったですね。今まではjQueryを主に使っていたんですけど、新たにReactをほぼゼロから学んだ感じでしたね。

jQueryは一つのファイルで全部書けちゃうんですが、Reactだとお作法的にディレクトリやファイルで分けたりしなくてはいけません。そうした前提のところから学んでいった感じでしたね。

──サーバーサイドは前職でのご経験があったのでクリアできたとして、フロントエンドはほぼ未経験になるので、分からないことも多かったと思います。そうした場合、どのように解決していったのですか?

尾上:分からない時は教育担当の技術責任者にすぐに聞きに行く感じでした。自分で調べて力技で解いていくことも大切ですが、知見のあるメンバーと一緒に課題を解いていくことで、正しい知識が身についていったような気がしますね。彼らのすごいところは質問したときに答えが1つだけじゃなくて、現場レベルや自分の技術レベルに合わせて選択肢を複数与えてくれるところです。その選択肢を知ることで自分のレベル以上のことにもチャレンジすることができました。

──最後はインフラの課題です。こちらはいかがでしたか?

尾上:課題は役割ごとにサーバー / サービスを分けることに加えて冗長構成を構築する形でしたね。EC2を2台使ったり、データベースを別で作ったり。こちらもフロントエンドと同じくはじめての経験ばかりだったのですが、楽しかったですね。

──サーバーサイド、フロントエンドのお話の時は難しいという言葉が多かったですが、インフラは楽しかったのですね。

尾上:そうですね。インフラが一番楽しかったです。自分の中でチャレンジしたところも大きくて。

課題の中にDockerは組み込まれていなかったんですよ。でも、構成にDockerを加えてみたり、CIツールはJenkinsやCircleCIが指定されていたのですが、AWSのCodePipeline、CodeBuildを使ってみたり。とにかく楽しく色々と試してみましたね。

──いわゆる研修って「これを作ってね?」というイメージがあるのですが、チームラボエンジニアリングの場合はいかがですか?

尾上:要件は満たさなければいけませんが、プラスαのチャレンジは受け入れられます。私がチャレンジしてみたいとお伝えしたら、「いいね!」と言ってもらえたので。

分からないことがあれば、教えてくれたりサポートしてくれたりというのは一緒なので、自分で選びながら進めることができるので、全ての教育課題を通じて力が付いた実感があります。

チームラボエンジニアリングの採用情報を確認する

目的を持って課題に取り組む

──それぞれの教育課題について振り返っていただきありがとうございます。ちなみにスキルアッププログラムはどれくらいの期間だったのでしょう?全て1ヵ月ずつとか?

尾上:いえ、それが全然違って(笑)。進み具合は人それぞれなのですが、私の場合はサーバーサイドが1ヵ月。フロントエンドが1ヵ月。その後インフラがスタートして、終わったのが半年後でしたね。

──インフラだけ極端に長いですね(笑)。

尾上:そうですね(笑)。インフラを経験するのがはじめてだったという点も大きかったですね。

大きく4つの課題があって、その一つひとつを1ヵ月でクリアしていった感じでした。特に課題【3】のCIサーバから自動デプロイにたくさん時間を使いました。

DockerをAWSで実行したりスケールしたりできるECSや、Dockerイメージを管理できるECR、ECSを自動デプロイするCodePipelileなど、とにかく盛り盛りな構成にしたんですよ。そこに時間が取られましたね(笑)。

──ちなみに教育課題のスピードって人によってマチマチなんですか?

尾上:はい。早い人は半年程度で終わっています。おおよそ入社から1年くらいでスキルアッププログラムが終わる人がほとんどです。

それぞれの考え方があって、課題への取り組み方が違うから終わるスピードがバラバラなんだと思います。

課題で身につけた技術を早くプロジェクトで活かしたい人もいれば、プロジェクトでの担当領域を広げたいから違う課題に取り組みたいと思う人もいる。私は課題のアウトプットの質を上げることを重視しました。

私は質と広範囲での技術理解を目的に課題に臨んでいたので、クリアに1年くらい掛かってしまったのですが、狙い通りの成果を得ることができたのでよかったと思っています。

──尾上さんはどうして、質と技術理解にフォーカスを当てたのでしょう?

尾上:私はもっと広範囲のことを学びたい、エンジニアとして一人前になりたいと思って転職をしました。教育課題をただ早く終わらせるだけだと、本当の意味で理解しないまま終わっちゃうんじゃないかなって思ったんです。

質を高めるというのは、教育課題で出た技術について理解するということです。そこに注力することで転職した目的を果たすことができるんじゃないかなって。

ただ、課題を与えられるのではなく、それぞれ自分の中で課題の目的を持って取り組む。ここにもスキルアッププログラムの意味があるのだと思います。

スキルアッププログラムに対してそれぞれの目標を持ち取り組む。ここに意味があるという

学びがダイレクトに活きるアサイン

──尾上さんなりの目的を持ってスキルアッププログラムに取り組んでみた結果いかがでしたか?

尾上:すごい達成感がありましたね。モダンな環境のサイトを一通り作ることができたとこが大きかったですね。技術も入社前と比較すれば大きく成長した実感がありました。

実際に振り返ってみると、大変だったと楽しかったの両方があって。できないことができるようになったり、自分が成長したりしている実感があるのは楽しかったんです。

ただ、プロジェクトと並行して課題をクリアしていくのはちょっとキツかったですね(笑)。

プロジェクトが忙しくなってくると、課題が進まなくって。仕事で一杯一杯になっちゃって、自分の勉強が疎かになってしまっているというか。

──どうやってプロジェクトと課題の両立を実現したのですか?

尾上:プロジェクトの生産性を上げて課題に取り組む時間を作りました。実際は課題自体が楽しかったので、時間を忘れて没頭していました。

ただ、プロジェクトに入ってしまうと、課題で分からない点があっても質問する時間が取れなくなっちゃって。そこで教育担当メンバーに細かく聞くのではなく、まとめて1時間質問する時間を作ってもらいました。

──お仕事をしながら課題に取り組んでいる時期が終わってどんな変化がありましたか?

尾上:そうですね。課題が終わってからは時間が空くじゃないですか。「何しようかな?」と思った時に課題のレビューをしてくれていた技術責任者に相談したんです。

その時に『Developer Roadmap』を教えてくれて私を当てはめつつ、次はどんな技術を学べば私が目指す一人前のエンジニアになれるか話したんです。

課題が終わったあとは単体テストを学びたいなって。PHPUnitで課題のテストコードを書いてみたり、Terraformを使ってインフラをコード化して自動化してみたりしました。

エンジニアって学び続けることが大切だと思っています。まだ知識がなくても興味があれば取り組んでみる。分からなければ教育担当メンバーに質問できる。これからも色々と取り組んでいきたいです。

──ありがとうございます。課題と実際のプロジェクトの相関性についてもお聞きしたいです。実際、スキルアッププログラムで学んだことはどれくらい役に立ったのでしょう?

尾上:最初に入ったプロジェクトがAPIを作るものだったんです。入社直後の課題でRESTful APIやOAuth認証を学んでいたので、そのまま活かすことできました。

チームラボエンジニアリングで参画するプロジェクトって、私たちの適正をきちんと判断してアサインしてくれるんですよ。勿論、プロジェクトの状況もありつつなのですが、希望を伝えると、その技術領域の仕事ができるんです。

私は課題でインフラが楽しかったので「インフラがやりたいです」と伝えたら、大規模予約サービスのリプレイスプロジェクトに加わることができました。

PHPの仕事しかできなかった私が、AWSへの移行プロジェクトに入るなんて、ちょっと想像ができなかったです(笑)。

──課題をクリアしたらサーバサイドでPHPを書いていた尾上さんがインフラ側に回っていたと。これは中々面白いですね。

尾上:そうなんです。私、課題で色々挑戦したECS、CodePipelineやCodeBuildが本当に楽しかったんですよ。なので、この領域で仕事がしたいなって。

月に1度、チームラボエンジニアリングの創業者 森山(森山 洋一さん)と教育担当メンバーとプロジェクトのPMの4人で面談の時間があるのですが、そこで私がやりたいことを伝えていたら、実現したので嬉しかったです。

──尾上さんの場合、転職してチームラボエンジニアリングにご入社されていますよね。いわゆる中途だとポテンシャルは見つつも、その人が今できることにアサインされるケースが多いと思います。その点の柔軟さは素晴らしいですね。他のメンバーの方もそうなのですか?

尾上:そうですね。最初はそれぞれができることからプロジェクトにアサインされるのですが、そこから先は本人たちの希望する技術領域にチャレンジしているのを目にしています。

別の領域からフロントエンドの開発に進んだ人もいれば、サーバーサイドからiOSやAndroidのアプリ開発に進んだ人もいますし。

──素敵な会社ですね。

尾上:メッチャいいです(笑)。

なりたい自分になれる場所を見つけることは簡単ではない。尾上さんにとって今の会社が今の自分にベストマッチなのだ

イチから学び直す意義

──転職以前と今で仕事内容も変わったり、色々な変化があったと思います。改めて、今の自分をどう思っていますか?

尾上:あの時は「変わったら嬉しいな」って思っていたんです。一人前のエンジニアになりたいって。教育課題をクリアしていくと、少しずつ自分の中でも手応えが出てきて。

最初のプロジェクトでインフラ環境の構築をした時は、2週間掛かったんです。ただ、似たような構成の環境を構築する次のプロジェクトの時は2日で終わったんです。

あの頃よりも少しだけ仕事ができるようになってきたなって。それが嬉しいんです。

──最後に、尾上さんは一度新卒として技術研修を受けた上で、改めて学び直す選択を取りました。実際、そういったチャレンジがしたい方って少なくないと思っていて。尾上さんが考える学び直す意義についてお聞きしてもよろしいですか?

尾上:今のレベルに満足していなくって知識を深めたい、広げたいという想いがある方は学び直す意義があると思います。

チームラボエンジニアリングに入ってみて思ったのが、自分と同じような境遇のメンバーが多いので、活躍しているのを見ると「負けてられないな!」って刺激を受けるんです。

私は将来的にアーキテクチャで頼られる人になりたくて。お客さまからの要望があった時に、インフラ構成やツール、言語についてしっかりと語りつつ、考えた内容を構築に落とし込んだりできるエンジニアになりたいんです。

まだまだ先は長いですけど、学び続けていきたいですね。

チームラボエンジニアリングの研修を経た彼女がどんな活躍を見せていくか楽しみである

ライターより

今、自分の置かれている環境に不満があるわけではない。ただし、自分が外へ飛び出したいと考えた時が、環境を変える時だと言える。
尾上あづささんはそうしてチームラボエンジニアリングへと入社した。
キラキラとした瞳で話す彼女を見ていると、自分が学びたいと思った領域を仕事にすることは幸せなことなのだと改めて感じさせられた。
「楽しいから土、日も勉強していたんです」
誰かにやらされるのではなく、自らの知識を深めるために行動することで楽しさは生まれるものなのだ。
チームラボエンジニアリングには、新しいあなたの可能性を見つけるカギがあるのかもしれない。

チームラボエンジニアリングの採用情報を確認する

取材/文:川野優希
撮影:赤松洋太

スキルアッププログラムとは

チームラボエンジニアリングでは独自の教育制度「スキルアッププログラム」があり、フルスタックなエンジニアに成長できるようサポートしています。
プログラムでは、Webアプリケーションやスマホアプリの開発に必要な技術を一通り学ぶことができる教育課題・体制を通じて、プロジェクトで活かせる技術を身につけることができます。

教育体制・・・チームラボのエンジニアリーダーが技術責任者として教育専任でつき、教育課題のコードレビューや技術に関する質問・勉強会を実施しています。また、入社直後に2〜4週間の研修期間を設けており、教育課題だけに取り組みます。
研修後・・・研修期間のアウトプットでスキルや適性をみて、研修後の配属案件と案件での役割が決まります。案件配属後も業務と並行してスキルアッププログラムに取り組むことで、案件で経験を積み、スキルは課題で身につけることができます。その結果、フルスタックエンジニアとして現場で活躍できるスキルが備わります。

エンジニアとして期待されること

担当するチームラボのクライアントワークは、多種多様なお客様と直接のお取引、そして企画・開発・インフラ構築・デザインのすべてを自社内で全て担当しているのが特徴で、エンジニアの担当領域は多岐に渡ります。
特定の技術や担当領域に縛られないことや、実装だけでなく打ち合わせや折衝を含めて開発に関わり、要件定義やアーキテクチャの設計といったフェーズから、開発を押し進めるエンジニアであることを求めています。

スキルアッププログラムの課題一覧(2019年7月時点)

概要
課題はサーバーサイド / フロントエンド / インフラ の3つに分ける
各課題で扱う技術要素は実案件でも活用できるものとする
課題を通して作成したアプリケーションはインターネット上で動作確認ができるようにする

目的
Webアプリケーション開発で扱う技術領域は、大きく以下の3つに分かれる
■サーバサイド・・・動的な処理を作る(Java / PHP)
  Spring Boot / Play Framework / Laravel
■フロントエンド・・・UIを作る(HTML / CSS / JavaScript)
  React / Vue.js
■インフラ・・・アプリケーションの動作環境を構築する(AWS)
  VPC / EC2 / ELB / S3 / RDS / CloudFront / ElastiCache / Route53 / ACM など
チームラボエンジニアリングのWebエンジニアに明確な役割分担はないため、全ての課題を通して実際の開発プロジェクトで利用される技術要素に一通り触れてもらう。1からサーバー上で動くアプリケーションを作ることで、システム全体を設計・構築できるエンジニアを目指す

基本(サーバーサイド)
■ Java + Spring Boot を利用
•【課題1】RESTful APIの作成
  商品の登録 / 検索 / 編集 / 削除
•【課題2】OAuthを使ったログイン認証の実装
  画面作成。OAuth プロバイダは Facebook / Twitter / GitHub のいずれかを選択
•【課題3】課題1のAPIに独自のトークン認証機能追加
•【課題4】定期ジョブ実行
  日毎でAPIのアクセスログを集計し、DBに保存する。管理画面で集計結果を表示
※ 開発言語として PHP(Laravel) / Scala(Play Framework) も選択肢に含める

フロントエンド
■ 基本の課題のRESTful APIの実装を済ませた人向け
•【課題1】基本課題で作成したRESTful APIを利用したSPAの実装
  React / Babel(ES5以上)
  Vue.js / Vuex

インフラ
■ サーバサイド / フロントエンド課題ともに完了した人向け
•【課題1】AWS上にサーバーサイド / フロントエンドのアプリケーションをデプロイ
  EC2 1台のみで構築
•【課題2】役割ごとにサーバ / サービスを分ける + 冗長構成を構築
  VPC / EC2 / RDS / S3 / CloudFront
•【課題3】CIサーバから自動デプロイ
  Code Pipeline または Jenkins
•【課題4】独自ドメインとSSL証明書の設定
  Route53 / ACM / CloudFront

PRの最近記事

  1. 福岡と京都に移住したLINEのエンジニアが対談!UIターンの魅力と課題を語り尽くしてみる

  2. 【受講生1万人越え!】Udemy「神」講師の最新講座5選+α

  3. エンジニアは『フリーナンス』を使うべき?独立1年目の技術者がCTOに直撃!

  4. 「SIer出身者を採用したい」LINE Growth Technologyが語るGrowt…

  5. 令和時代のアウトソーシングビジネスのあるべき姿は?パイオニア企業の取り組む組織改革が素晴ら…

関連記事

PAGE TOP