地方公務員がITスタートアップに転職した話
TL;DR
・地方公務員からITスタートアップに転職した
・転職するにあたっていろいろ取り組んだ
・うちの会社の文化がすごい独特
自己紹介
現在、WASD株式会社(WASD Inc.)という会社でエンジニアをやっています。
前職では地方自治体の職員として、インフラの維持管理や設計施工に携わっていました。学生のころアルバイトでソフトウェア開発をしていたことがありますが、実務としてはほぼ未経験の状態で昨年の10月に入社しました。
何故かSP皆伝の多い弊社の多分に漏れず、私も音楽ゲームを趣味にしております。主にbeatmania IIDXやDrumManiaをプレイしています。
会社紹介
WASD Inc.は、店舗においてお客様によるスタッフの呼び出しを効率化するデジちゃいむというサービスを開発、運営しているスタートアップ企業です。
技術スタックとしては、メインは React + TypeScript + GraphQL (Apollo Client) という構成となっています。ドキュメントが満足に日本語化されていないものも多いので、日々英語のドキュメントとにらめっこしながらガリガリ実装しています。詳しくは弊社CTOの進木が解説しております。
弊社の特徴としては、ゲームの好きな人間(それもかなりのレベル)が集まっている点があげられます。デジちゃいむの開発のきっかけも弊社CEO盛島のゲームセンター体験が原点にあり、デジちゃいむは全国のゲームセンターの店舗様に続々導入されています。ITスタートアップがファミ通のインタビュー記事に掲載されるということも、なかなか珍しいのではないかと思います。
ソフトウェアとの関わり
ソフトウェア開発との出会いは中学生のころ、ゲーム好きが高じて「自分でもゲームを作ってみたい」と思ったのがきっかけでした。環境構築などの情報も今ほどネット上に転がっている時代ではなく、辛うじて手に入る開発環境であったVisual Basicで簡単なゲームやツールを作っては自分のホームページで公開していました。この頃から、「将来はこういう仕事をするんだろうなあ」と漠然と考えていました。
よりソフトウェアについて勉強するため、東京大学工学部機械情報工学科というところに進学しました。ざっくり言うと、機械に頭の良いふるまいをさせる研究を行っている学科です。いわゆる人工知能や機械学習のソフトウェアを組むこともあれば、センサやアクチュエータを用いた組み込み開発をやったりもするなど、昼夜問わず楽しく勉強をしていたのを覚えています。
ただ、研究室配属以降は研究活動に全く馴染めず、辛うじて(本当に辛うじて)学部を卒業した後は、進学した大学院には全く通わなくなってしまいました。結局大学院に戻ることはなく、友人の伝手で紹介してもらったITベンチャーで、アルバイトとしてネイティブアプリの開発をしていました。典型的な大学院ドロップアウト組です。
前職について
地方公務員になったのは、アルバイトを始めて1年ほどたった頃、ふと「定職に就かないとまずいのでは???」と思い始め、たまたま地元の自治体の採用に理系の枠があることを知り、応募したのがきっかけです。幸い機械科を出ていたこともあり、受験に必要な工業系の知識は持ち合わせていたので、あまり苦労せず合格することができました。
最初の配属先はいわゆる下水処理場で、施設や設備のメンテナンスに従事していました。「定職に就きたい」という目的で就職したため、ろくに仕事内容もしらなかったこともあり、はじめはものすごく不安に感じていたのを覚えています。しかし、実際に手を動かす仕事は想像以上に楽しいもので、下水の仕事が嫌厭されがちなことも却ってモチベーションにプラスに作用していました。(「俺がやらなきゃ誰がやる」的な)このご時世なので最近はできていませんが、当時の職場の先輩方とは今でも飲み歩く仲です。
しかし、仕事自体に愛着はありましたが、徐々に自身のキャリアプランに疑問を持つようになりました。それは定年までのキャリアが見えてしまった(そしてそれがあまり好ましいものではなかった)ことです。
私はいわゆる事務職とは違った専門的な職種であり、そういった職種の人間が就けるポジションというのはかなり限られているため、うまく出世できれば○○部○○課の課長ぐらいにはなれるかもしれないという、極めて具体的な将来像が見えてしまいます。
働くにつれて、現場から離れてマネジメントに回らなければならないこともマイナスでした。現に、仕事内容が直接手を動かすことから徐々に調整メインにシフトしており、現場で働くことに楽しみを感じていた私にとっては、定年まで身をすり減らして働かなくてはならない将来を予感をさせるものであり、徐々に転職を考えるようになりました。
転職に際して
転職をするにあたって、まず初めに考えたのがソフトウェア業界にいけないかということでした。しかし、前職ではプログラムを書いたりすることがなく(唯一やったのは、毎朝職場で注文するお弁当の注文表をマクロを組んで自動生成するようにしたことくらい)、現在のトレンドなども全くわからない状態でしたので、前職と全く畑違いであるこの業界に飛び込むことに対して大きな不安を感じていました。実際、友人の紹介で某企業のエンジニア枠の採用試験を受けましたが、事前にマネージャの方からアドバイスをいただいていたにもかかわらず、知識のなさが露呈してまともな受け答えができずに、結果不採用となってしまいました。
転機となったのは、CAMSという知能検査を受験したことでした。
上記のとおり、CAMSを行う目的の一つとして「高度なソフトウェアの開発能力」を有する人間を発掘することが挙げられています。私はこの知能検査を受験し、下記のような結果となりました。
この結果を受けて、「自分も少なからずソフトウェア開発に適性があるのでは」と思うようになりました。そして、ひとまずは手癖でコードを書けるようになるため、いまの仕事とは全く関係ないと思いながらも、競技プログラミングを始めてコードを書き散らかしてみたり、Qiitaの記事を書いてみたりするようになりました。
やり始めると割と効果はすぐ出るもので、私がプログラミング意欲を持て余しているのを見かねて、長年の友人であるCEO盛島とCTO進木から誘われることとなりました。WASD Inc.の設立経緯やMVVはよく知っていたため、同じ方向を向いて会社に貢献できるかもしれないと思い、入社を決意しました。
入社までにやったこと
・競技プログラミング
前述のとおり、コードを書く手癖をつけるために競技プログラミングに取り組みました。多くの方と同様、AtCoderのコンテストに参加していました。
初めのうちは漫然と問題を解くだけでしたが、段々といい成績を残したいと思うようになり、下の記事を参考にしながら、アルゴリズムについて腰を据えて勉強するようになりました。
実務の勉強に取り掛かるようになってからはほとんど触れなくなってしまいましたが、最終的には緑コーダーになりました。もう少し続けていれば水色コーダーになれていたかもしれません。
他にはpaiza転職も活用していました。Python2とC++でSランクを取得しています。
・Full stack open
Full stack openはフィンランドのヘルシンキ大学が運営しているオンライン講座で、名前の通り、講座を通してフロントエンド、バックエンド双方の知識が身に付けられるものです。フレームワークもフロントエンドにReact、クエリ言語にGraphQLが使用されており、弊社の技術スタックに非常にマッチしています。
また、Full stack openは活発に内容が更新されています。Reactのサンプルコードを探しても書き方が古いものが散見されますが(classコンポーネントで書いていたり、JS的にもアロー関数でなくfunctionで書いていたり、そもそもReact公式のドキュメントですら古かったりしますし)、Full stack openではそのような心配はありませんでした。学習項目としても、この1年でTypescript、React Native、CI/CDの3つのpartが追加されています。
一方、内容が充実している分、勉強するにもそれなりの負担が求められます。私はPart 9まで内容を追いかけるのに、翻訳サイト片手に約2ヶ月かかりました。とはいえ、Reactを用いたWebサービスの開発について一から勉強しようと思ったら、これ以上の教材はないと思います。
・書籍
入社に当たって、CTO進木から読むようアドバイスを受けたのは以下の2冊です。
弊社はソフトウェア開発手法としてスクラムを採用しています。この本は、スクラムでソフトウェア開発をするにあたって生じる問題などを、事例形式で紹介するものです。しばらく実務に取り組んだ後に改めて読み返してみると、書いてある内容がどれも身に覚えがありすぎました。
この本は、Googleで開発チームのリーダーを勤めた筆者が、優れたチームを作り上げる方法を書いたものです。かなり直接的な言葉で書かれている部分も多く、読み物としても楽しく読めました。
入社してから
入社してからは主にフロントエンドの開発を行っています。毎日少しづつできることが増えていくのが楽しいですし、最近はインターンの方の指導を担当するなど、任される業務の幅も広くなってきました。やりたいことを自由にやらせてもらえるおかげで、高いモチベーションを維持できています。
一方、前職が堅い仕事だったというのもあり、弊社の自由な文化に驚くこともあります。この点については、既に多くのメンバーが弊社についての記事を公開しています。
私も、使用しているツールという観点から、WASD Inc.という会社の文化を紹介します。
・Slack
多くの企業と同様、弊社でも文字ベースのコミュニケーションツールとしてSlackを採用しています。特徴としては、メンバー全員に公開されている個人のチャンネルがあり、勤務中は今何に取り組んでいるか、何がわからないかなどを逐一書き込むよう運用されています。弊社ではこれを日報ならぬ分報と呼んでいます。常に情報共有をすることで、仕事が過度に属人化することなく、風通しのよい社風を実現できていると感じています。
・Discord
ゲーマーが集まった会社という特徴がよく現れているのが、音声コミュケーションツールとしてDiscordを採用している点だと思います。運用としては、大量のボイスチャンネルが用意されており(数えてみたら40個以上ありました)、勤務中は常にどこかのチャンネルに入っていることで、いつでも気軽に仕事の相談等などができるようになっています。以下は一例です。
仕事が終わったあとも、そのままボイスチャンネルで通話をしながらゲームをすることが多いです。FPSプレイヤーも多いので、毎晩のようにApexをやっている光景をよく見かけます。
・Notion
文書共有のあり方については、文書を書いても整理されずに再利用性が低い、不慣れな人にはマークダウンのような記法の学習コストが高いなどの様々な苦労がありました。その中で様々なツールで試行錯誤を重ねた結果、たどり着いたのがNotionでした。ざっくり言うと、社内wikiのようなものを簡単に作ることのできるツールです。非常に高機能で、例えば書いた文書をカレンダー上に並べて整理するといったことがNotion内で完結します。
欠点としては、高機能であるが故に初見では何をすればいいのかわからなくなりがちという点が挙げられます。前述のような文書を整理するといったことも、ある程度形が出来上がっていないと難しく感じてしまいます。弊社ではNotionに精通した方に整備を委託することで、この点をクリアしています。
おわりに
転職が決まったころから転職noteを書こうとは思っていたものの、先延ばしにする癖が発動し、約半年間塩漬けにされていました。その間にも私よりも後にジョインしたメンバーが次々とnoteを公開し、この記事も周りにせっつかれてようやく重い腰を上げて書き上げたものです。エンジニアとして今後の自分の身を立てるためにも、こういった書き物は定期的にやっていかないといけないと感じています。
この記事をご覧の方の中には、ソフトウェア業界への転職を考えている方もいらっしゃるかと思います。そういった皆様の背中を少しでも押すことができれば幸いです。
この記事が気に入ったらサポートをしてみませんか?