転職した

これは「Rubyist近況[1] Advent Calendar 2021」の6日目の記事です。

adventar.org

自称 Rubyist なので近況を書きます。

2021年10月末で30年ほど勤めた富士通グループを退職しました。

11月からは SmartHR という会社で働いてます。 3年ほど Ruby は仕事ではあんまり使ってなかったのですが、また Ruby を仕事で使うようになりました。

会社から配布された PC は Core i7 メモリ32GB の MacBook Pro なんでかなり人権がある感じなんですが、人生初 Mac で1ヶ月位経ってもまだ慣れなくて、VM で Ubuntu Deskutop 入れようか迷ってます。

近況は以上です。以下は富士通グループの入社〜退職までのメモ。長いので読まなくていいです。

1991〜

設立7年目の今はなき「富士通長野システムエンジニアリング」という会社に入社。 就職活動は特にしてなくて、大学に来てた推薦募集の中から選んだ。大学推薦なので落とされることはなかった。

当時たぶん社員250人くらいの会社だったのに、新人70人も取って「大丈夫なのか?この会社」と思った。

3ヶ月の新人研修後、希望してなかったUNIXの技術サポートをする部署に配属。配属当初は「うげー、サポートかー、少ししたら辞めよう」…と思ってたのにやってみたら面白くて10年くらいいた。

配属当時はインターネットはまだなかったし個人に PC も配布されてなくて、フロアを見渡しても机の上はまっ平だったのに、サポート部署だけは UNIX ワークステーションが各自の机に鎮座してて、異彩を放ってた。

ていうか他の部署の人は PC もなくてどうやって仕事してたんだろう。そういや、1年後の新人の成果発表的なやつは手書きで OHP だったな。

インターネットはなかったけど、JUNET だか WIDE だか(忘れた)には繋がってて、電子メールやネットニュースはできてたような気がする(うろ覚え)。

部内の会話は口頭よりもメーリングリストや talk コマンドを使うが多くて、隣の部署の人からはずっと無言で気味が悪いと言われたりしてた。

問い合わせは電話で、電話に出た人がそのまま答えるのが基本で、そして新人は電話に率先して出ることとなってたので、配属当初のサポート品質は相当悪くなってたはず。 自分が最初に出た電話は「ソケットについて聞きたいんだけど」という質問で、なんのことだかわからずに近くの先輩に「ソケットって何ですか?」って聞いたら「ソケットは電球をくるくる回してはめるところだよ」とふざけて言われたのを覚えてる。質問にどう回答したのかは覚えてない。

さすがにこれはダメだってことで、翌年からはちゃんと新人向けの部内研修をするようになった。

問い合わせを管理するシステムが端末で動く curses ライブラリで作られてて、1年目からそれを GUI 化する開発を担当した。新人でプログラミングできるのが自分だけだったからかも。 SunView という GUI ライブラリで作って、後に X 上の OPEN LOOK の XView で作り直したりした。

問い合わせがこないときはかなり自由で、ずっと UNIX の勉強をしてたり、ツール作ったり。 当時は今と違って残業時間の規制はなかったか緩かったので、毎日遅くまで自主的に自習してた。

サポート担当が UNIX 上の製品ではなく OS と開発言語だったのも良かった。UNIX の一般的なスキルと開発のスキルも身についた。

1997〜

RDBMS は今はなき Informix というのを使ってたんだけど、C から使うのに ESQL/C という変な SQL 埋め込み言語を使わないといけなくてかなり辛かったので、もっと簡単に使えるのを探してたら MySQL と PostgreSQL というのを見つけた。 軽く速度を測ってみたら MySQL が速かったので MySQL を使うことにした。 MySQL は C から普通に使いやすかった。

アプリを Motif 化したかったんだけど、C で GUI アプリを作るのも辛いんで Perl で作ろうと思ったけど、Perl に Motif を使うためのライブラリはなくて、自作するかーと。

もう覚えてないけど、Perl で C のライブラリを作るのは何故か辛くて、当時ちょっと噂になってた Ruby を試してみたらえらく簡単に作れたので Ruby を使い始めた。

Java でオブジェクト指向むずかしいなーと思ってたところだったので、オブジェクト指向なのに Ruby は簡単だなーと思った記憶がある。

MySQL と Ruby を気に入ったので、その後 MySQL を日本語化したり、MySQL の日本語マニュアルを公開したり、Ruby から MySQL を使うためのライブラリを作ったりした。

2000〜

技術サポートは結構楽しかった。UNIX はワークステーションとして使われるのが普通だったし、問い合わせてくる人も技術レベルの高い人が多かったので、問い合わせ対応で自分のスキルも向上したし。

ただ、サポート部門では OS のソースコードを読むことができなかったのはストレスだった。

SunOS のバグではないかというお客さんからの問い合わせに対して、同じ BSD 系の FreeBSD のソースコードを調べてバグを見つけて、再現方法を確立してから、社内の開発元(という名目の Sun との中継をする部門)に報告したこともあった。

ソースコードが読めない製品のサポートをするよりも自分で何か作ったほうが楽しいだろうと思って、SI をする部署に希望して異動した。当時インターネットが普及して、会社内にインターネット系サーバーを作るお客さんも増えてきたんで、UNIX のスキルが必要とされてた。

お客さんのネット環境にメールサーバーを作ることが多くて、当時は商用のお高い製品を使ってたんだけど、メールサーバー程度なら OSS 使って作ればいいんじゃね? と思って、Postfix + MySQL + Apache + Ruby で作って導入したりしてた。

富士通が受注した大きな仕事のうちメールサーバー部分を担当するみたいな仕事が多かった。 SI 業はお客さんとの距離が近くて面白かった。

当時はまだ仕事用の PC として好きなのを選べたので、富士通なのに ThinkPad を持ってお客さん先で作業したりしてた。富士通がまだモバイル用の PC を作ってなかったということもあり。 さすがにこれは後に NG になって、一律富士通の PC が配布されるようにはなった。

この頃だったと思うけど(違うかも)、上司に「管理職になる気はないか?」と聞かれて「ないです!」と即答したら「即答じゃなくて奥さんにも相談してみろ」と言われたんで、いちおう嫁さんにも聞いてみたところ「やめたほうがいいよ、絶対向いてない。それに管理職の人たち見てても幸せそうに見えない」と(嫁さんは元同僚)。よくわかってらっしゃる。

出張続きで週末くらいしか家にいなくて、月曜日の朝に家を出るときに娘に「ばいば〜い、また娘ちゃんの家に遊びに来てね〜」と言われたのもたしかこの頃。

2003〜

そうこうしてるうちに SI だけじゃなくてパッケージ製品を作ろうって話になって、Postfix + MySQL + Apache + Ruby でメール製品を作った。MySQL はちゃんと商用ライセンス使ってたはず。

まだ Rails もなかったし、ウェブアプリは当初は cgi.rb 使ってゴリゴリ書いてた。今思い返すと相当酷いコードだったな…。

「OSSなんかを製品に使って何かあったらどうするんだ!」って言われたりもしたな。「何かあったら直せばいいでしょ。自分で直せない製品を使うよりはいいのでは」なんて返したような。

徐々に SI よりも製品開発に掛ける時間が多くなって、ほぼ開発専任化してた。

もともと製品開発部隊じゃなくて SI 部隊の中で製品開発してたので、かなり好き勝手にやってた。

最初はソースコード管理に CVS 使ってたけど、そのうち複数人で開発することになって Subversion を使い始めた。 Subversion サーバー以外にも、部内のコミュニケーション用に IRC サーバーを立てたり、イシュー管理用に Trac 立てたり、Samba でファイル共有サーバーを立てたり運用してた。

2008〜

たしかデブサミだったと思うんだけど、アジャイル開発というものがあるのを知った。ウォーターフォールなんかよりも随分マトモな開発手法があるもんだと思った記憶。

この頃 Trac を Redmine に変えたり、Subversion を Git に変えたりした。

Subversion から Git への変更は、一人で3ヶ月くらい検証していけそうだと判断したので数人に使ってもらって、1ヶ月くらい掛けて使い方のレクチャーしたりして移行した。おかげでそんなに問題なく移行できたと思う。

この頃はテキトーにアジャイル風開発をやり始めてわりとうまく行ってた気がする。

2012〜

富士通子会社統合の流れで、東日本の子会社が4社くらいが合併して「富士通システムズ・イースト」という会社になった。

合併したのは別にいいんだけど、別の会社が作ってた製品を、引き取ってメンテしないといけなくなって、そしてそれはとんでもない作りだったり…。まあ自分はほとんど関わらなかったんだけど。あれに関わった人は不幸だったなー。

自分が関わってた製品も、社内都合でユーザーに何のメリットもない機能を追加したりとか、オフショアに発注するのがノルマになったりして、うへぇ…って感じ。

この頃、そろそろ Rails もいいかなと思って使ってみたんだけど、ActiveRecord に馴染めなくて断念した。

会社とは関係ないけどMySQL絡みで第8回OSS貢献者賞をもらったりした。

Docker を知って開発で使うようになった。

2016〜

さらに統合が進んで富士通に吸収された。

えらい人が「富士通のSEになったからには一人あたり売上がXX円必要で、自分たちで手を動かすんじゃなくて、協力会社を使って売上をあげるようにしないといけない」とか言い出して、うへぇ…って感じ。

IRC の代わりに Mattermost を使い始めたり、GitLab を使い始めた。

2018〜

そんな感じで、うへぇって感じが大きくなったのでゆるく転職活動を始めた。

パッケージ製品開発は開発自体は好きにできるんだけど、顧客や運用の現場から遠いのがまどろっこしいと感じてたので、サービス運用系がいいかなーと。

と言っても長野の自宅から通える範囲の会社や、自宅からフルリモートできるようなところは見つけられず…。

その頃 RubyKaigi で SmartHR を知って、面白そうな会社だと思ったんだけど、やっぱりリモートワークできなかったので断念。自腹で東京に単身赴任するのは金銭的に厳しい。

富士通グループ内にクラウドサービスを運営している「富士通クラウドテクノロジーズ」(FJCT)という会社があって、もともとニフティが個人向けビジネスを売却して社名を変更した会社なので、富士通文化とはかなり違って面白そうだったので、転属を希望してみた。

当時は親会社と子会社の間は社内募集での異動もできず、断念しかかったんだけど、謎の力により異動することができた。 親会社から子会社への本人希望での転属というのはかなり稀だったみたいでいろいろ調整が大変だったらしい。いやー、申し訳ない。

職場は東京なんだけど転勤&単身赴任扱いにしてくれたので、家賃補助(自腹1万円くらい)が出たし、その他に単身赴任手当も出たので金銭的には困らなかった。

これまでもそうだったんだけど、大きな会社というのはいろんな組織があって転職の手間がなくて転職みたいなことができていいですな。

ということで9月から FJCT で働き始めた。

思ってたとおり富士通とは文化がかなり違ってて良かった。 社内コミュニケーションに Slack を使ってたり、ボトムアップでチームにかなりの決定権があったり、必要だと判断されたら有料の外部サービスもどんどん使えたり、毎月社外向けの技術セミナーを開催してたり。 とは言っても自分も富士通の一部しかしらないので、富士通本社内にもそういう部署はあるのかもしれない。

まあ富士通に比べてイマイチなところもあったんだけどそれはまあいいや。そのうち改善されるだろうし。

仕事は Ruby はほぼ使うことはなくなって、レガシーシステムの改善みたいなことをしてたんだけど、そういうのも好きだったので面白かった。

富士通とは違ってもともとリモートワークには積極的な会社ではなかったんだけど、コロナのおかげで富士通グループ全体でフルリモートワークになった。それにともない単身赴任者は自宅に帰ってもいいということになったのはありがたかった。これは富士通のおかげだな。

当時は単身赴任と言いながらも娘と暮らしてたので(社内制度上はそれでも単身赴任扱いだった)、娘の引っ越しを待って年末に自宅に戻った。

2021〜

FJCT は文化は良くて仕事も面白かったんだけど、4月にまた富士通が大量に子会社の吸収をし始めた

2020年に就任したばかりの FJCT の社長も1年で退任になるというあまり尋常じゃない事態で、これはまた富士通に吸収されるんじゃないかと思って、出戻りを回避するためにまたゆるく転職活動を始めた。 実は10月にも吸収されるかもしれないと思ってたんだけどそれはなかったし、ただの杞憂で吸収なんてされないのかもしれない。

転職先の条件は、

  • 長野の自宅からフルリモート勤務
    • もう単身赴任は懲りた
  • 独立系SaaS
    • 親会社の意向でどうこうなるのはもういいので
  • メインの開発言語がRuby
    • 他の言語でもそれなりにできると思うんだけど、自分の「Rubyだったらもっとパフォーマンス出せるのに」という思いを拭えないと思うので
  • 社内公用言語が日本語
    • 英語ムリポ

って感じ。

探してたらちょうど SmartHR が7月からフルリモート可になったというので、応募してみたらめでたく採用となった。

ということで11月から SmartHR で働いてます。