全てがかなり違う。エンジニア向けソフトウェア企業で働くエンジニア

Koichiro, Sumi
8 min readJun 29, 2017

--

エンジニア向けソフトウェアを開発している企業のエンジニアに求められるスキルセットは多くの場合、一般的なWeb系企業やSI企業とは異なると考えています。

いくつか、日本国内に開発拠点がある会社の採用情報をベースに書いてみたいと思います。SideCI(アクトキャット)、Backlog(ヌーラボ)、mobingi、Tresure Dataなどの企業のページを引用しながら話していきます。

結論だけ先に書けば、実際に参画すると求められるスキルセットの幅が非常に広いことにびっくりするでしょうが、それらが身に付くことは自身の価値向上に繋がるはずだし、楽しいと考えています。

各社の採用ページを見ていってみる

SideCI

残念ながらSideCIについての募集の詳細はWeb上では多くは語られていないので、補足しながら見ていきます。

SideCIのエンジニアの採用情報ページにおいて注意を引く部分の一つに下記があります。

サポート言語: PHP, Python, Golang, JavaScript, Node.js, CoffeeScript, TypeScript

多くの場合、1企業において使われるプログラミング言語は1つです。もちろん、スマートフォンとサーバサイドがある場合、JavaかKotlinやObjective-CやSwiftも加えられるでしょう。サービス規模が大きい場合、要所要所でCやGoやScalaなどを使っているかもしれません。ですが、これらを1人で全て使うのは稀だと思います。

SideCIの場合はサポートしているプログラミング言語の全てに触れる機会があり、解析器(Lint)のコードを読んだりコントリビュートしたりする兼ね合いからいろいろな言語に触れ、時には開発します。

また、SideCIでは2014年からDockerを採用していますし、複雑なインフラを少数で運用するためにPackerやTerraformも使われています。(あれ、採用ページに書いてありません)
その他、もうすぐKubernetesを使うかもしれないという話もあります。
そういえばこれも書いていないのですが、フロントエンドはReactを全面的に採用しています。全てのページを英語でも書いています。(むしろ英語で書いて日本語に翻訳しています)
ページに書いてないことが多すぎますね😁

Backlog

誰もが知るBacklogのページを見てみます。
やはり企業としてもう十分大きいので、ソフトウェアエンジニアとインフラエンジニアが職能として分離しています。

歓迎するスキルから。

GUI/SPAアプリケーションの設計技術(MVC、MVVMなど)の理解がある方

お、SPAですね。

Java、JavaScript、Scala、Swiftなどでの開発経験

やはり複数言語ですね。

英語によるコミュニケーション(主に読み書き)が可能な方

やっぱり英語使いますよね。

mobingi

コンテナベースのクラウドアプリケーションのライフサイクル自動化とサーバーコストの削減サービスのmobingiです。

まずは入るのに必要な条件から。一部抜粋

【必要条件】
フロントエンジニア
プログラミング経験者(PHP・javascript)
サーバー仮想化の知識

フロントエンドエンジニアでもサーバ仮想化の知識が必要。凄い。

バックエンドエンジニア
プログラミング経験者(Shell・Perl・Ruby・Python)
各種言語フレームワークのデプロイおよび運用経験
アプリケーションモニタリング、運用監視の経験
サーバー仮想化の知識

プログラミング経験者のプログラミング言語の経験がAND条件なのかOR条件なのか分かりませんが、多くの言語を使うのは間違い無さそうです。

続いて職務内容から一部抜粋。

フロントエンド
オープンソースプロジェクトへの貢献

バックエンド
Dockerコンテナ / 独自Daemonの作成
フロントエンジニアと協働し、ホストコンフィギュレーションのデザイン・サポート

やはりオープンソースプロジェクトへの貢献が推奨されていますね。
仮想化の会社だけあってDockerが大活躍していそうです。

Tresure Data

採用ページが全て英語なのでその時点で少しハードルが高く感じるかもしれませんが、幸いインターンのページが日本語だったのでそこを見てみます。

・分散データベース、大規模分散処理
・データコレクタ Fluentd の機能追加・改善
・機械学習、機械学習を利用したデータ分析、Apache Hivemallへの機能追加
・DigDagを利用したデータ分析ワークフローの作成

業務内容が凄いですね。インターンの業務内容で分散データベースを使ったり、ワークフローエンジンを使ったりするのはTresure Data以外には日本にはないのではないでしょうか。

プログラマとしての知識・経験をお持ちの方 (Java/Ruby/Pythonが弊社で主に利用されています)
オープンソースソフトウェアの利用経験およびコントリビューション経験を歓迎します

やはり複数言語ですし、OSSへのコントリビューションを歓迎しています。

続いて、インターンではない職種も一つ見てみます。

On top of all this goodness, we’re also contributing to open source software such as fluentd, Hive, Presto, Hadoop, and MessagePack, so you can expect to participate in that, too.

名だたるOSSのコントリビュートすることが出来るのは本当に凄い。

エンジニア向けソフトウェア企業で働くメリット

各社に共通して下記の3つがあることが分かりました。
これらはエンジニアとしてのスキル、キャリアを伸ばす良い経験になると思います。

  • オープンソースソフトウェアへの貢献
  • 英語を絶対使うらしい
  • 複数のプログラミング言語

また、上記に加えて、各社、事業ごとにコアとなるテクノロジーがあり、それに関連する部分のスキルが身につきそうです。

機械学習、サーバ仮想化、解析器と各社各様なのでこれは企業を選ぶ上で企業とセットで技術セットも選ぶ事が必要かもしれません。

おわりに

エンジニア向けソフトウェア企業で働くことは技術面での良さが絶対にあると思います。

一般的な企業ではスマートフォンアプリエンジニアが使うのはアプリサイドの技術だけですし、サーバサイドもPHPやPythonやRubyとAWSをちょっと、もしかするとHerokuに`git push`するだけ、もしくは完全にサーバサイドの開発だけかもしれません。

たくさんの技術を試していきたい、身につけていきたい場合、エンジニア向けソフトウェア企業は、悪くない選択肢です。

--

--

Koichiro, Sumi

Founder of Sider. Sider is Automated Code Review Platform on GitHub. 取り留めもなく日々思ったことを綴ります。