Cha道

Chatworkの「人」「組織」を
伝えるメディア

自分の書いたプログラムで数千人の業務を改善。その経験がエンジニアリングの醍醐味に気づかせてくれた。

f:id:cw-recruit:20220404091143j:plain

「かつては、自分が何をしたいのかわからず迷走していました。けれど、エンジニアという仕事に出会えてよかった。いまは働くことが本当に楽しいです」
こう語るのは、PHPエンジニアとしてChatworkで活躍する山下 祐。なぜ山下はエンジニアとして働くことを決意したのでしょうか。そして、Chatworkに魅力を感じた理由とは。これまでの歩みを語ってもらいました。

■プロフィール

f:id:cw-recruit:20220404091344j:plain

山下 祐
プロダクト本部 サーバーサイド開発部(PHP)

大学卒業後、ICTシステムの導入・構築などを行う大手企業に就職。カスタマーエンジニアとしてハードウェアのメンテナンスを担当する。同社所属時代にプログラミングに没頭し、独学でスキルを磨く。その後、Chatworkのサービスやコーポレートビジョンに関心を抱き、2019年12月にChatwork株式会社へ転職。サーバーサイドエンジニアとしてPHPのコーディングに携わる。

やりたいことを探し、遠回りの末にプログラミングの面白さに気づいた

――山下さんは大学では情報系の学部だったそうですが、プログラミングの勉強に力を入れていましたか?

正直なところ、当時はダンスサークルに夢中でほとんど勉強していませんでした。昔から、何かにハマったら時間を忘れて没頭するタイプで、大学時代はダンス一色でした。そういった状態でしたから、プログラミングの知識や技術はあまり身につかなくて。そのため新卒では、コーディングスキルを要求されないハードウェアのカスタマーエンジニアとして就職しました。
社会人になったばかりのころは、仕事にあまりやりがいや面白さを見いだせなかったです。自分が本当にやりたいことや没頭できることを見つけるために、いろいろなことに手を出してはやめるのをくり返していました。
もともと絵を描くことが好きだったので「自分はイラストレーターになりたいのでは?」と思ったこともあります。けれど、時間を忘れて熱中するくらいの情熱がないことに気づいて、志すのをやめました。ちなみに「ヨガのインストラクターになりたいのでは?」と考えた時期もあります。それは一週間で終わったのですが、いま振り返るとだいぶ迷走していたかもしれません(笑)。

――そこから、本腰を入れてプログラミングに取り組んだ理由は?

本業に熱意を持てないなか、副業として、日本と海外でそれぞれ展開されているECサイト価格差を利用して小遣いを稼ごうと考えました。商品によっては日本と海外のサイトで異なる価格で売られているケースがあり、安い側で仕入れて高い側で販売すれば利益が出ると思ったんです。
人力で一つひとつ商品を確認するのは不可能なので、価格差のある商品を自動で調べるプログラムを作ることにしました。学生時代にプログラミングの基礎くらいは身につけていたので、なんとか開発できるだろうと。余暇の時間にコードを書いていたところ、とにかく楽しくて夢中になりました。
これをきっかけにプログラミングの面白さに目覚め、エンジニアを志しました。だいぶ遠回りしましたが、自分のやりたいことがやっと見つかって嬉しかったです。ちなみに、そのときに仕入れた3本のハンマーが今でも私の部屋にあります。邪魔なので捨てたいです(笑)。

――前職時代に、プログラミングを利用して業務効率化に取り組んだと伺っています。

前職は外回りのある業務だったのですが、駐車場代や交通費を自分で立て替えて、後で経費精算のシステムで申請する流れになっていました。移動した場所や距離、金額など複数の項目を入力する必要があり、面倒くさくて時間もかかる作業でした。
そこで、ブラウザ操作を自動化するVBScriptを書いて社内のSNSで共有したところ、他部署の人たちから問い合わせがくるくらいに人気が出ました。前職は外回りの社員が数千人ほどいる会社だったので、自分のプログラムが社内で利用され、全員の工数を削減できたことに達成感が大きかったです。
業務の特定の工程をプログラムにして、効率化することで誰かの役に立って、喜んでもらえる。そんな経験は初めてだったので、すごく感動しましたし、これを機にエンジニアとして転職する決意が固まりました。

Chatworkのミッション「働くをもっと楽しく、創造的に」が心に刺さった

f:id:cw-recruit:20220331123432j:plain

――転職先としてChatworkを選んだ理由を教えてください。

Wantedly主催の転職イベントがきっかけです。当時はChatworkについて社名くらいしか知らなかったのですが、イベントに出展していたためどんな会社なのか調べてみました。私は「自分が楽しめる仕事をしたい」と考えて転職活動をしていたので、Chatworkの理念である「働くをもっと楽しく、創造的に」という言葉がすごく刺さったんです。
イベントでChatworkの社員と話してみてびっくりしたのが、「夜20時くらいにはみんな退社して、残業も月にトータルで10時間くらい」という話でした。労働環境がよく、業務内容も面白そうだったので、自分の理想の働き方ができると考えて応募しました。ちなみに当日はあまり積極的になれず、結局Chatwork以外の会社の話は聞けませんでした(笑)。

――採用面接で印象に残ったエピソードはありますか?

2次面接での面接官の対応が印象に残っています。緊張してしまい、自分が伝えたいことを上手く言葉にできませんでした。焦っていたところ「ゆっくりでいいですよ」と面接官に声を掛けられました。心が落ち着きましたし、丁寧に話を聞いてもらえて嬉しかったです。このときの印象がよかったことからも、Chatworkならばのびのびと働けそうだと思いました。

――Chatwork入社後の印象はいかがでしょうか?

入社後も、日常のコミュニケーションにおいて安心感を覚える場面が多いです。上司との関係性もフラットで、上司と部下というよりも同僚のような感じですね。社歴が長い年上の方でも、私にとても丁寧に接してくれるので、居心地がよく働きやすいです。
メンバーが業務改善の提案をしたり、意見を述べたりすると、それを尊重してくれるケースが多いのもChatworkのよさだと思います。たとえば私が以前、CIにPHPStanというPHPの静的解析ツールを組み込むことを提案したところ「ぜひやろう」とみなさんに賛同してもらえて、導入することになりました。
他にも、私たちの会社ではメンバー一人ひとりが自分の作業状況などを投稿するためのグループチャットがあるのですが、そこで作業の疑問や感想をつぶやくと、誰かが反応したり、教えてくれたりします。私は自分の考えを素直に伝えたいタイプなのですが、Chatworkは心理的安全性の高い環境なので、安心して意見を発信することができます。発言のしやすさが、仕事をするうえでプラスに働いています。

根気強くデバッグを続け不具合を解消。大きな達成感を得た

f:id:cw-recruit:20220331123436j:plain

――Chatworkでの業務内容についてもお話しください。

PHPエンジニアとして働いています。最近携わった主なプロジェクトとしては、ChatworkとMicrosoft Azure Active Directoryとの連携機能や、PHP7.3からPHP8へのバージョンアップ対応などですね。他には、RFCを読み解いてコードに落とし込んでいく作業をチームで実施したり、個人活動としてCIの改善なども行ったりしています。

――それらの業務のなかで特に印象に残っているものはありますか?

一番印象に残っているのは、PHPのバージョンアップ対応ですね。この変更によって、Chatworkの各機能がデグレードしないかをテストしました。すると、PDFの領収書を発行する機能において、なぜか名前が表示されなくなってしまったんです。
最初は原因が全くわかりませんでした。なんとしてもバグが生じる理由を特定しようと思い、Chatworkで利用しているPDF生成のライブラリのコードを、根気強くデバッグしていきました。長時間パソコンに向かって調べた結果、曖昧比較をしているコードにたどり着きました。「ああ、これか!」と思いましたね。
PHP8では下位互換性のない変更が入っており、数値と非数値文字列とを比較する場合に、 数値を文字列にキャストしてから文字列と比較するようになりました。これにより、PDF生成のライブラリの挙動が変わってしまったんです。チームメンバーがみんなお手上げ状態のなか、粘り勝ちして自分が原因を突き止められて嬉しかったです。根気のいる作業だったため、物事に没頭する私の特性が活きました。
幸い、PHPのバージョンアップにより挙動がおかしくなったのはPDFのライブラリだけだったため、パッチを当てて全機能が正常に動くようになりました。エンジニアとして、チームやプロダクトに貢献できたと実感したエピソードです。

さまざまな技術に触れられる、エンジニアにとって幸せな環境

f:id:cw-recruit:20220330185001j:plain

――Chatworkで働く面白さはどういった点にあると思いますか?

まず、CI/CDが整備されていたり、本番環境でDocker・Kubernetesを運用していたり、New RelicやDatadogでモニタリングをしていたりと、最先端の技術やツールを積極的に導入していること。働いているエンジニアのスキルレベルも高いです。日々の仕事のなかで、周囲の環境からよい刺激を受け、エンジニアとして成長できます。
先ほどお話しした静的解析ツールの導入事例のように、社内であまり前例がないことでも、優れたアイデアなら積極的に採用する文化があります。こうした特徴があることから、高いモチベーションを持って仕事に取り組めています。

――今後伸ばしていきたいスキルや目標はありますか?

PHPのコーディングスキルもさらに磨いていきたいですが、リリースフローの整備やDevOpsの推進といった運用・体制の改善などにも取り組み、自分の強みにしたいと考えています。このように考えるようになったきっかけは『LeanとDevOpsの科学』という本を読んだことです。この本は、LeanやDevOpsといった開発・運用スタイルが、組織文化やリーダーシップ、マネジメントとどう関連しているかを解説しています。
これまで自分が業務で意識してきた点、たとえば変更容易性の高いコードを書くことなどが、組織のパフォーマンス向上につながっていると、感覚ではなく数値で理解できました。もともと開発・運用体制の改善に興味はありましたが、この本を読んだことで改めて意義の大きさを実感し、興味が高まりました。こうしたスキルを身につけて、チームや会社をよりよくしていきたいです。
それから、チーム全体にレバレッジを効かせるような行動を積極的にとっていきたいです。先ほどの静的解析ツールが典型的な例ですが、新しい手法やツールを導入することで、システムの開発効率や品質の向上につなげたい。組織全体を強くして、さらに新しいチャレンジができるような循環を生み出したいと考えています。

――最後にお伺いしますが、どのようなエンジニアがChatworkにはマッチすると思いますか?

学ぶことが好きで、さまざまな技術に触れてみたいエンジニアですかね。たとえば自分はPHP部に所属していますが、PHPという枠にとらわれず、多種多様な技術に携わっています。社内にスキルの高いエンジニアがいるからこそ、周囲から刺激を受けて「もっと頑張りたい」と思えますし、挑戦もしやすい環境にあります。
私はChatworkに入って、エンジニアリングに触れることが本当に楽しくなりました。やりがいを持てる環境ですから、ぜひエンジニアリングが好きな方に参画していただけたらと思います。