こんにちはCTOの十川です。今回はNCDCでエンジニアの採用活動をしておりますという記事です。
NCDCの仕事に興味のある方はぜひ読んでみてください。
目次
1. どんなことをやっているか
NCDC全体ではコンサルティングや、デザインだけのプロジェクトもあるのですが、ここではエンジニアが主に関わる業務内容について書きます。
ざっくり表現すると、お客様である企業と一緒にサービス、プロダクトの企画からソフトウェアの開発までを行うのが8割、自社のサービス開発が2割というバランスでお仕事しています。
開発しているソフトウェアは次のようなものです。
Webサービス、モバイルアプリ開発
- コンシューマ向け、企業向けを問わずWebサービスや、アプリの企画から開発
- 新規のサービスが多いのが大きな特徴で、反対に、ゲームの開発や基幹システムの開発はあまりやっていません。
IoT、M2M
- 製造や建設の現場で各種センサーデータとクラウドで連携するIoTのサービス
- 楽器とBluetoothで連携して新しいユーザー体験を提供するモバイルアプリ
アーキテクチャ系
- 大規模なWebサービスのサーバレスでの構築
- 大規模なIoTのシステムでメッセージング層、アプリケーション層などのアーキテクチャの設計
Machine Learning、データ分析
- 動画からの物体検出モデルの開発
- IoTで各種センサーから収集したデータを元に、ある数値に相関関係のあるデータを分析する
実際に市場に出るプロダクトももちろん開発しますし、新規性の高いものはPoCとしてプロトタイプの開発なども行っています。
NCDCの強みは、サービスの企画フェーズでお客様やデザイナーと一緒になってサービスを考えるところから、ソフトウェアを開発してプロダクトやサービスという実際に価値を生むところまでトータルで提供できるところかなと思います。
NCDCの業務内容の特徴としては次の2点も挙げられます。
- エンドユーザーとの直接契約がほとんどです
- お客様のオフィスに常駐する仕事はほぼありません
2. NCDCのエンジニアチームの特徴
NCDCのエンジニアチームの特徴は以下だと考えています。
- 自分たちで開発プロセス、使う技術を選択する
- サービスの企画段階から参画できる
- リモートワークなどエンジニアが働きやすい制度
- メンバーが優秀&勉強会などが活発
続いて、この特徴について説明していきます。
自分たちで開発プロセス、使う技術を選択する
開発プロセスや、技術に対して自分たちの裁量が大きいです。
理由は私たちのお客様は事業部門の方が多く、使う技術についてはNCDCに任せていただけることが多いからではないかなと思います。もちろん選択の自由とセットで責任もついて来ますので、なんとなく流行っているからでは選択できませんし、選んだからにはきちんとユーザーが使えるものにする(もしくは、他の技術に変える判断をする)必要はあります。
これに関連する話なので併せて紹介しますが、NCDCの強みの一つは、モダンな開発プロセスや、技術を使ってサービスを実現することだと思っています。そのため、新しい技術を積極的に採用している方だと思います。
2021年版 モダンなモバイル、Webアプリ開発環境の紹介(当社の選択理由とは?)という記事があるので、気になる方は読んでみてください。
サービスの企画段階から参画できる
コードを書く時に、「この技術を使ったらもっとこんな機能を提供できるのに」とか「なんのためにこの機能があるのかわからない」と感じたことはないでしょうか。
NCDCの強みは、サービスの企画、デザイン、ソフトウェア開発を全部自社でできることです。そのため、エンジニアもサービスの企画段階から入って、技術的な側面からビジネス側の人たちと一緒にサービスを作り上げていきます。
リモートワークなどエンジニアが働きやすい制度
NCDCは創業以来リモートワークを採用しています。そのため、自社のオフィスに出勤するという考え方はありません。
一方、お客様先に行ってワークショップを実施したり、スプリントミーティングをやったりというのは積極的に行っていますので、週に1、2回はミーティングに出かけることがあります。(現在は新型コロナの影響でお客様とのミーティングもほぼリモートになっています)
10年以上リモートワークを採用していることもあり、リモートでも良いアウトプットが出せる仕組みや、コミュニケーションのとり方は工夫しています。
また、時間の使い方の裁量は大きいと思いますし、社内の事務作業などは極力軽量化されています。
お客様と話している時間より社内のマネージャーの承認を取る方に時間がかかる、というような時間のストレスはまずありません。
メンバーが優秀 & 勉強会などが活発
勉強会などの取り組みが活発なので、自発的な学習や新しいものに取り組むのが好きな方には良い環境なのではないかと思います。
これについてはエンジニアチームの中で年間の目標などを決めています。
2021年の目標に社内勉強会を24回、社外勉強会を8回開催することを上げましたが、社内勉強会はほぼ毎週やっているので8月の時点ですでにクリアしています。
社内勉強会の例
- DDD書籍輪読会
- Serverless frameworkみんなどんな感じでやっているのか共有会
- AWS資格勉強会
社外勉強会はAWS、ReactのLT会を社外の方にも登壇いただきながら7月から毎月開催しています。下記にてオープンにやっていますので、ぜひご参加ください。
NCDC Dev Meetup
また、Pull Requestのレビューや、モブプログラミングなども普通に行っており、動けば良いではなく、より良い設計、コードの書き方をしたいよね、という文化ができつつあると思います。
チームの他の取り組みは「CTOによるエンジニアチーム紹介」をご覧ください。
3. 募集しているポジション
2021年11月時点でエンジニアチームは12名です。
主に下記のポジションで募集しており、20名くらいのチームにしていきたいと思っています。
JavaScript(TypeScript)エンジニア
NCDCではフロントエンド、バックエンドともTypeScriptを採用することが多く、人数も最も多いです。技術スタックなどはこちらの記事をご覧ください。
2021年版 モダンなモバイル、Webアプリ開発環境の紹介(当社の選択理由とは?)
クラウドインフラエンジニア
AWSを中心にクラウドのインフラ設計、構築、運用自動化などを行います。NCDCではCloudFormation, Serverless Framework, Terraformなどを使って自動化を進めていますので、この辺の技術に興味がある、経験がある方は大歓迎です。
アーキテクチャコンサルタント(エンタープライズアーキテクト)
フロントエンドでもバックエンドでも担当領域のアーキテクチャは自分たちで決めますが、ここでは特に大規模なプロジェクトで、システム全体のアーキテクチャを検討するロールを指します。
iOS, Androidネイティブのエンジニア
Swift、Kotlinでのアプリ開発や、ReactNativeのプラグイン開発などを行います。
機械学習、データ分析エンジニア
機械学習などのライブラリを活用しながらIoTの仕組みが入ったWebサービスを開発したり、物体検出のモデルを作ったり、それを使用するモバイルアプリを開発したりします。言語的にはPythonを採用する事が多いですが、アプリに組み込む際にはJavaScript(TypeScript)を使用することもあります。
4. 採用プロセス
基本的には以下のようなプロセスで進みます。決まったプロセスとは別に、例えば、同い年くらいの同じ職種の人と話してみたいなどご希望があれば柔軟に対応しています。
NCDCのエンジニア採用プロセス
- 面談
せっかく転職されるので、ご自分のやりたいことや考え方と転職先がマッチしているのかが重要だと思います。面談では主にNCDCのことを知っていただくのを目的としていますので、遠慮なくいろいろ聞いてください。 - 技術課題、エンジニア面接
技術課題はフロントエンド、バックエンド、インフラなど得意な領域で受けていただくことが可能です。コードが書けるだけではなく、設計の考え方があるのか、使っているフレームワークの思想にあった書き方をしているのか、変更しやすい作りになっているのかなどの観点で確認させていただきます。面接の際に、どうしてこの設計にしたのかなどをお聞きするので、補足してもらえたらありがたいです。またGithubなどで公開されている方はそちらで代替できる可能性がありますので、その旨お伝えください。 - 最終面接
採用プロセスについては、私と一緒に採用活動をやっている茨木さんの記事も参考になると思うので、ご覧ください。
現役採用担当者が明かすエンジニア採用試験突破マニュアル
NCDCで働きたいな、話だけでも聞いてみたいなと思った方は、採用情報ページからエントリーしていただくか、十川にメールください!( sogo@ncdc.co.jp )