新卒で日立へ
おれが新卒で入ったのは、日立製作所だ。 おれが面接を受けたのはシステム開発研究所というところだったが、 おれが入った年に研究所の再編成があって、横浜研究所というところに配属になった。 横浜研究所は横浜の戸塚というところにあり、 寮はそこまでバスで一本のところにあった。 寮生活は隣人の先輩が発狂して泣き叫びだしたり、色々トラブルはあったが、 まぁ楽しかった。 寮というのはなかなかいいものだ。 京大で吉田寮や熊野寮にわざわざ住みたいという人がいることも微妙にだが理解出来る。
システム開発という名前のとおり、 そこはソフトウェアの応用研究をやってる研究所で、 と言っても企業の応用研究というのは事業所から依頼された研究(通称、依頼研)だったり、 あるいはもう少し先のことを考えた先行研と呼ばれるものがあったするくらいで、 大学のような研究をやってるというところではないのだが、 まぁおれ的にはそれで良かった。 Linuxカーネルをやりたかったからだ。 その頃のおれの頭の中は、Kernel or dieだった。
Linuxカーネルをやってる部署は、 LTC (Linux Technology Center) というオープンソース活動をするところが花形で、 他にはLinuxファイルストレージをやってる部署があった。 花形の部署に採用されたのは京大理学部出身の変なやつで、 おれはファイルストレージの部署に配属となった。 まぁ色々とあったことはあったのだが、 今になって思うとLinuxカーネルの中身を理解出来たことは財産になってるし、 感謝してる。
日立からV社へ
入社から2年9ヶ月半後に別の会社に転職した。 これが、V社というところだ。 転職した理由は、そこで車載OSの開発エンジニアを募集していたからで、 当時おれの頭の中は完全にKernel or dieだったから、 挑戦しようと思って応募した。 当時のおれは相当生意気で、面接でも「骨のある仕事がしたい」 などと言っていたように思う。カーネルは骨であり、 骨がないことはしない。そういう考えだった。
今ではなんでもコンテナ・仮想化であり、 開発の中心はそういったレイヤーに移ってきているが、 当時からゴリゴリのカーネル自体の仕事というのはどんどん縮小しており、 OSを開発出来る仕事というのはもうここを逃したら巡り会えないと思ったわけだ。
その後、ここも1年半くらいで辞めてしまうのだが、 その時におれが「土下座して日立に戻りたい」とツイッターでたまたま言ってしまったことが 今になってもネット上で語り継がれていて、 ツイートしたこと自体は事実なのだが、 その解釈にかなり誤解があるのでここで正したい。
日立から底辺の嘘
よくある誤解が、 日立から都落ちしてV社に行ったという指摘だが、 実際のところ業界の人間から見ればV社でOSエンジニアをやることは 非常に素晴らしいキャリアだ。 仮に日立が素晴らしい会社であったとしても、 そこを辞めて行く価値のある会社だとほとんどの人は考えると思う。 この事実を無視して、日立から底辺会社に堕ちた結果辛くなって日立に戻りたくなった というストーリーで理解している人間がいて、かなり迷惑である。
実際、V社の開発レベルは非常に高い。 1年半しかいなかったが、MAXレベルの開発者が ソフトウェアの質に対してどういう態度をとってるのかを実地で 経験出来たことはその後にも間違いなく活きている。
仕事のチームは、OSのプロ氏とおれの二人で、 おれはどちらかというと補助的な役割だったが、 あるCPU向けの実装を一人でやらせてもらったりと、 それなりには独立して扱ってもらっていたように思う。 門前仲町の居酒屋で酔って 「私のやり方は虎が子を谷底に突き落とすようなものだ。 そこから這い上がって来なかったやつのことは知らん。 早川くんは今のところ這い上がって来れている」 と言ってたのを思い出す。
実際おれとしても、仕事についていけないとか、 難しくて辛いとか思ったことはなかった。 当時、AUTOSARという規格のOS開発競争はベンダー間で競っていたのだが、 おれ自身は世界最高のソフトウェアを作ってるという気持ちだった。
そして、発狂へ
では、なぜ発狂したのだろうか。
理由は2つある。
(1) MISRA-C
1つはMISRA-Cというコーディング標準のために コードを破壊することに耐えられなかったからだ。
OSの開発が進んできた頃、それを製品化するためには MISRA-Cに準拠させる必要があるということになった。 これは、親会社からの命令で、 一応は逆らおうとしたものの、結局折れざるを得なかった。 OS開発は日立でいうところの依頼研のようなものであったわけだ。
MISRA-Cというのは車載ソフトウェアにおける コーディング標準のことであり、 MISRAというのはMotor Industry Software Reliability Association の略なわけであるが、これが完全にゴミだった。 MISRA-Cをまじで良いと思ってるやつは完全に知的障害者である。
これを必死に適用していった結果、 もともと、Linuxカーネルのコーディングルールによって 書かれていて美しかったソースコードはぐちゃぐちゃになり、 却って理解しづらくなり、 おれが目指していた理想的なソフトウェアとはほど遠いものとなった。 MISRA-Cという存在そのもの、それを強要してくる親会社、 それに対して断固反対出来なかった上司に対して かなり腹立たしい思いだった。
MISRAのルールは、それとAUTOSAR OSの一部仕様もだが、 Rustを使えばコンパイル時に検出出来るようなものも多く、 一体何の意味があるのかさっぱりわからなかった。 こんなことならばRustで書けばいいだろとも思った。 当時、Rust 1.0がちょうどリリースされたばかりだったが、 おれはその頃からRustに注目しており、 これはまさにRustで書ければ全部解決するのではないか?と思っていた。
こういった激しい情動は天才特有のものであり、 凡人には理解出来ないかも知れないが、 これが発狂ポイントの1点目だ。
(2) 出社&打刻
もう1点は想像しやすいかも知れないが、 残念ながらV社は伝統的な出退勤管理システムを採用していた。
出社時間は自由で、中には6時に出社する人もいたのだが、 どんな職位の人であれ、出社するとまず打刻をする。 そして所定の労働時間がすぎるとまた打刻をして、帰る。 労働時間が短いことは許されないため、 とにかく猛烈にコードを書いて頭がへとへとに疲れていようが、 時間が過ぎるまでは椅子に座り続けていなければいけないという 意味不明な勤務管理がされていた。
これは、ソフトウェア開発という仕事とはマッチしないやり方だ。 今の求人を見るとフルリモートも採用されているようだから、 きっとずいぶんと緩和されたのではないかと思うが、 当時ははっきりいって日立よりもガチガチだった。 こういった勤務管理方法は、麻布京大スーパーフリーダムガンダムの おれにとって、ひどい苦痛だった。
これがおれがV社以降、フルリモートの会社のみを選び続けている理由でもある。
発狂
自身の書いたコードがMISRAにより穢されていくことへのストレス、 そして、知的労働というものを理解せず、 毎日毎日意味もなく束縛されるクソ労働環境へのストレス。 こういうものが積み重なって、ある日おれはある朝七原くんのようになってしまい、 うっかりと「日立に戻りたい」とお得意のブラックジョークをつぶやいてしまったわけである。
これはジョークだったのだが、 社会は麻布高校ではないので、そうは受け取ってもらえなかったようであった。
日立に戻りたいか?HELL NO
最後に、本当に日立に戻りたいと思ってるのかだが、 これについては完全にNOであると断言する。
日立という会社はご想像そのまま コテコテのJTCであり、 スーパーフリー早川の異名を持つおれにとっては とてもでないが長く勤められる企業ではなかった。 朝起きると枕が髪だらけになってたこともあったし、 ストレスから息の仕方がわからなくなることもあった。 おれにとって日立が合わない会社であること自体は、 おそらく理解されると思う。
よって、そもそも出戻りが出来る会社でもないだろうが、 仮に出来るとしても戻る気はない。
日立から数えて今は5社目になるだろうか。 過去4社は一言でいうとこんな感じだった。
- ゴリゴリの日式
- ゴリゴリの開発&ゴリゴリの勤務管理
- 未踏ストレージベンチャー
- アプリベンチャーからの給料未払い
こういった経歴の中で、 自分にとってどういう会社はだめなのかがよくわかってきたし、 逆にどういう会社なら自分にとって長く勤められる可能性が高いかも少しずつ理解してきた。
そして今の会社だが、 長く勤めることを狙って入社して、 狙い通りついに日立を超えることが出来た。 日立のあとはどの会社も1年半くらいでジョブホップしてたが、 ついに日立を超えることが出来た。 おれにとって、これは快挙だ。
こう考えると、おれのような人間には結局のところ 何回もジョブホップすることは必要だったと考えられる。
あの時、布団の中から出られずに日立に戻りたいなどと いうジョークが炎上したことが本当に必要だったかはともかく、 それ自体には後悔はないし、 失敗したとしても活かせばいいだけのことだ。
そうは思わんかね。成田くん。