非Web系の僕がWeb系IT企業からTwitterで勧誘されて入社した話

30代後半のWeb系未経験な僕が、Twitter上で勧誘されてWeb系IT企業へ転職した話を書きます。
このツイートが異様にバズったので退職エントリを書くことにしました。

お前誰よ?

年齢:30代後半
学歴:偏差値50程度の地方大学院
職歴:
中規模ファームウェア開発会社

大手電機

現職Web系ITベンチャー (今ココ。年収も人生で最高額)


おしながき

■学生の頃
■1社目:ファームウェア開発会社
■2社目:大手電機
■Twitterでの勧誘
■現職では
■転職の決め手

Web未経験で30後半のヤツが、Web系に勧誘されてしかも年収上がるワケねーだろ」と考える方もおられるのではと思うので、どんな経験やスキルを積み重ねてきたかを、少し長くなりますが説明します。


学生の頃

小学生の頃からゲーム開発に興味があり、中学の頃親にお願いしてパソコン(富士通FM-TOWNS)を購入してもらいました。ベーマガなどのPC誌記載のソースコードを写経したり改造したりして、独学でプログラミングを学んでいきました。
アドベンチャーゲームを制作したり、開発したタイピングソフトが中学校のPC授業で採用されたりしていました。

コンピュータを学ぶべく大学は情報系を志望したのですが、試験の得点が不十分で二次志望の電気電子系へ。「ソフトもハードも知っていた方がツブシがきくだろう」と自分を言い聞かせ入学。


1社目:ファームウェア開発会社

人員削減で何かと話題のとある電機大手の関連子会社。電子回路、ファームウェア開発の会社。4年ほど在籍。
「ソフトウェア開発もできる」と聞いて入社したのにほとんど電子回路設計業務で、完全にミスマッチ。社内でソフトウェア開発業務がないか探し回る有様。

ミスマッチ以上にパワハラが酷く、「死ね」「くたばれ」「死ぬか家に帰れ」などの罵詈雑言が飛び交い、妻が妊娠したときも「失敗してできた子なんだろ?

(※この経験は私が制作したゲーム「バグハンター2」のブラック企業討伐シナリオに組み入れました。転んでもただでは起きない)

ある時同じチームの先輩が転職活動をしていて、転職に成功した話を聞き、自分も転職活動することに。前述の通り電子回路設計業務が多数を占める中、ソフトウェア開発業務を拾ってこなしていたので、Windowsアプリ開発経験(C#)や、DSPなどのファームウェア開発経験(C++)を武器に転職活動し、前職となる大手電機の本社の採用を勝ち取るに至りました。
ちなみに入社直後にリーマンショックが起こり、中途採用が打ち切られました。ギリギリセーフです。本当に運が良かったというか、もしタイミングを逃していたらと思うと生きている心地がしません。


2社目:大手電機

日本では知らぬ者がいないぐらい有名な大手電機会社です。10年勤務しました。
細々とソフト開発していた自分にとって、初めての大規模ソフトウェア開発経験。多少ヘンな社員はいましたがパワハラ社員はいませんでした。
前職の課題であったミスマッチパワハラは無事に解決し、大変嬉しかったです。ついでに年収も百数十万アップしました。


不足するスキルと蓄積される経験

中学の頃からプログラミングをしていたとはいえ、完全に井の中の蛙。大手のソフト開発部門だけあって、派遣さんも含め実装速度が非常に速く(※品質は別。後述)、圧倒されました。
開発対象はBtoBのWindows用アプリ(C#)。
ヘンな汗(冷や汗?ともかく物理的に尋常ではない汗)をかきながら懸命に技術をキャッチアップし、実装に勤しむ毎日となりました。

得意だと思っていたプログラミングが井の中の蛙」「即戦力として中途採用されたのに、全くおぼつかない」「ここで仕事するには、何かひとつでも特筆するスキルを身に着けなければ」常にこのような劣等感を覚えながら、勉強してはトライして、の繰り返しの毎日となりました。
どんなソフト技術が自分に向いているか確かめたかったため、上はUIから下はDB周り、その他オプションツールの開発など手広く何でもやりました。


クソコードとの戦い そして見出す得意スキル

入社まもない内に、あまりに頻発するバグに、開発部門全体が苦しめられることになります。クソコードとの戦いです
ソフトウェア開発はただプログラミングすれば良いという話ではなく、バグを出さないように設計する必要があります。そしてプログラマのスキル不足など何らかの要因によりろくな設計がなされずプログラミングされたソースコードをクソコードと呼びます。

現場では「顧客要望をとにかく機能に落として迅速に実装する」が繰り返され、今考えると設計度外視な状況。多くのクソコードが書かれ、バグが頻発。プロジェクトが炎上し、長時間残業が慢性化。
「なぜこんなに酷いソースコードなんだ」「なぜこれほどバグが発生するんだ」と苦悩する日々が続きました。

ところで、周囲に比べスキルが劣っていることを気にしている自分は、当時様々なソフトウェア技術を勉強している最中でした。その中でデザインパターンやオブジェクト指向設計の様々な技術に関して専門書で触れ、設計手法の知見を蓄積していました。
建築物でも免震技術があるのと同様に、ソフトウェアもバグが起こりにくい設計手法がある」「そもそもバグが発生しない設計に作り変える必要がある
バグに対する対抗策を知った自分は、知見を重ねるにつれ日増しに設計に対する思いが強くなっていきました。
そして設計技法の知見を高め実践に活かすにつれ、末端のソースコードだけでなくソフトウェアのアーキテクチャ全体の設計品質を考えるようにまでなりました。

ソフトウェアの外部から見た動作を変えず、ソースコードの内部構造を整理することをリファクタリングといいます。バグを抑止するには理想的な構造へリファクタリングしていくことが肝要なのですが、「設計技法を勉強してはリファクタリングに活かしてバグと戦って…」を延々と繰り返していった結果、ついには延々とリファクタリングのことを考えていられる体質になってしまいました。
クソコードはえてしてリファクタリング困難なものが多いですが、僕にとってリファクタリングはパズルを解くようなもの。謎解きの取っ掛かりさえ見つけられば一気に解決するのが快感であり、そしてソフトウェア設計技術書はパズルを解くための攻略本なので、読んでいて楽しいのです。
主にどんな技術書を読んできたかは下記記事を参照。

こうした経緯もあって、その後以下のような業務に自ら志願したり、アサインされたりしました。
■大規模リファクタリングプロジェクト
■設計ガイドライン策定
■プラグイン拡張型プラットフォームのアーキテクチャ研究
■既存ソフト資産のアーキテクチャ分析&拡張性向上リファクタリング


地獄の部門へ

話は変わって現職へ転職する数年前に社内で様々な組織改編があり、他所からは「北○鮮」と揶揄される部門へ流れ着きました。極めて閉塞的で雰囲気が悪く、たまに怒号が飛ぶような部門。
「管理を徹底すれば成長する」を信じ切っている人が部門の長であり、まさに上意下達な独裁体制然とした様相でした。
管理を徹底すると成長するどころか衰退する理論に関しては、下記記事が詳しいのでご覧下さい。まさにこの通りでした。

上層部からの苛烈な締め付け、PCどころか文房具すら買えぬ過度な経費削減…。などなど、こうした部門体制を嫌った人が退職していくような状況。
僕も心労がたたって会社で倒れてしまったり、情緒不安定になったりしていました。


Twitterでの勧誘

そんな中転機が訪れます。
精神的に満身創痍で仕事の悩みをTwitterでつぶやいていたところ、とあるフォロワーさんが話に乗ってきて、悩みについてやり取りすることに。直後その方からDMで「実は私はとあるWeb系IT企業の事業責任者であり、よければうちの会社の話を聞いてみないか」とお誘いが。
半信半疑でしたが、会社の事業内容等を調べ上げ、信頼できそうだと感じたため面談することに。
面談したところ、技術者を大切に扱う社風心理的安全性重視、そしてソフトウェア品質立て直しのためリファクタリングスキルの高い技術者を求めてる、といった点が合致したため、本番面接への移行を決心しました。

面接では、本記事記載の経験談の他、リファクタリングやアーキテクチャ設計についての持論や思いを話しました。リファクタリングのタイミングや対象スコープの選定方法、アーキテクチャの境界の区切り方やその意図。意図を裏打ちする自身の業務経験。
(※なお、面接官をされた方に入社後に印象を尋ねたところ「急にスイッチが入る人」だったとのこと。勢い余って思いの丈をブチまけてしまった模様w)

ただ、ひとつ気がかりだったのは、本記事のタイトルにあるように僕がWeb系のスキルが希薄なのにWeb系IT企業に入社してよいものか、ということ。しかも年齢的にも微妙な30代後半で。
それに対する面接官の回答は「我々はリファクタリング技術やソフト設計技術を求めているし、それは言語に関係ない。Web系やフレームワークの知識はこれから学んで頂ければ良い」とのことでした。

面接は「本当にこんなのでいいのか」と感じてしまうぐらいトントン拍子で進み、あっという間に採用に至りました。


現職の状況

まさに真・ホワイト企業です。
入社前、本当に技術者を大切にする社風なのか、心理的安全性が重視されているのか不安な一面がありましたが、全くの杞憂。まさに下記ツイート通り。

但し、こうした快適な職場環境は、弊社社長の「顧客より、まず従業員を大切にする」という考え方を筆頭に、社員一人ひとりの努力や工夫による心理的安全性の維持、向上の賜物であることが、入社以来ヒシヒシと感じられます。

入社してからは、Ruby on Railsでのプロダクトコード実装の他、メインミッションであるリファクタリング戦略の策定。また、早々に設計勉強会を開催したところ、同僚から多くの好評を受け、僕のスキルに確かにニーズがあることが嬉しかったです。

とはいえ、やはり非Web系からの移籍のため、目下キャッチアップ中です。
Slackには「どんな初歩的質問でも誰かが答えるチャンネル」が用意されており、「バカにされたりしたらどうしよう」と不安を覚える必要もなく気軽に質問できるのが大変助かっています。
(もちろん「何でも教えてクレクレ君」ではなく、可能な限り行き詰まったときに聞くようにしてます)


転職の決め手

生存者バイアス」が働いては困るので、話半分で参考程度に留めて下さい。

僕の場合、リファクタリングやアーキテクチャについていつも考え、Twitter上でたびたび設計についてウンチク語っていたのが、現職の事業責任者の目に止まりました。
多くのエンジニアの皆さんが語るように、Twitter上で小出しにでも、Qiitaで記事書くでも、規模問わず技術発信することが重要だと感じます。

また、何かひとつでも突出したスキルを持つことが大事だと思います。そしてそれは時代のニーズに沿っていることが重要とも考えます。
(下記はメンテ困難なクソコードにより兆円単位の損害が出ている旨の記事。僕のスキルはこのニーズにマッチしたのかも知れない)

あと最後に持論ですが、自分が得意なものは自分の喜怒哀楽に深く結びつくものだと考えます。僕はクソコードに対し怒り、綺麗な設計に仕上げることに楽しさを覚えます。
「自分の得意が分からない」と悩んでいる方は、自分が何に対して感情が動くのか、棚卸しされてはいかがでしょうか。

この記事が参加している募集

退職エントリ

この記事が気に入ったらサポートをしてみませんか?