Findy Engineer Lab

エンジニアの"ちょい先"を考えるメディア

プログラミングを強みに生き残れるか? 焦燥感にとらわれた20代を越えて広がったキャリアの可能性

OSS活動をする中で知った、届かない存在に対する焦燥感。ソフトウェアエンジニアとしてプログラミングが一番の強みだという廣戸裕大hiroppyさんですが、IC(Individual Contributor)のキャリアを歩むなかで技術のキャッチアップにもがき、悩んだ時期もあったといいます。その焦燥感をどう解消していったのか、今につながった転機を寄稿いただきました。

筆者

△ 留学先のアイルランドにて、セミナーゲストとしてNode.jsを解説(2019年)

この記事を書くにあたって、過去を振り返って自分の強みとは一体何かと考えたときに、やはりプログラミングでした。高校生から本格的にプログラミングを始めたのですが、実は大学受験では情報工学と医療系のどちらに進むかを悩んでいたのです。最終的に情報工学部を選びましたが、そこから今日まで十数年プログラミングを続けられたのは、まさに天職を選べた実感があります。

自分にとってのプログラミングは、趣味でも仕事でもゲームのような楽しさしかなく、未だに何時間でもやり続けられます。手を動かせば動かすほど越えなければいけない山が見えて、それをどう越すかを考える楽しさが増していく。それがプログラミングを始めた頃も今も変わらない感覚です。スキルというより、いくらでも苦もなく続けられる点で、自分の強みはプログラミングだと言えます。

ずっとプログラミングを強みにして走り続けられるのか

飽き性な自分がプログラミングにはずっと飽きないのですから、Individual Contributorというキャリアの選択肢は20代の頃から意識しています。自信を持って定年までとは言えませんが、少なくともあと20年はコードを書いているのかなと漠然と思っていました。自分で手を動かすのが好きなので、チームを率いるよりも現場で活躍する方が合っていると思います。

技術は常に面白さを提供してくれます。この15年を見ても、Web開発は大きく変化しています。学生の頃はActionScriptが一番得意で、そのまま仕事でも使うんだろうと思っていたらAppleがFlashを採用しないでJavaScriptの波が本格的に来たり、Node.jsがリリースされてサーバーサイドもフロントエンドも一気に世界が変わったり。JavaScriptの初期の初期は本当に楽しい日々で、研究室に毎日こもって開発もしつつ情報をキャッチアップしていました。15年後に何が待っているのかを予想するとワクワクします。

新卒でドワンゴに入社して半年した頃に、自分たちの作ったサービスが大きなイベントで公開されました。公開直後は予想以上に大量のトラフィックがあり、社内にいたチームで無事に対応し、WBCで優勝したかのようにみんなで喜んだことが今でも忘れられません。サービスのリリース後にさまざまなフィードバックをSNSに投稿され、それも参考にチームで話し合って改善を続けていくのも自分の性に合っていて、一生エンジニアを続けていきたい気持ちがとても強くなりました。

ドワンゴが主催する「ニコニコ超会議」というイベントがあり、当時は年に一回の開催でした。10万人以上のユーザーが幕張メッセに集まり、社員はエンジニアも含めてスタッフとして参加します。自分はこのイベントはとても好きでした。普段はサービスを通してしか見れないユーザーを直接意識できる機会だったからです。この経験から「ものを作る視点から、ユーザーへの価値の最大化を考え、サービスを育てていきたい」という思いも芽生えました。

このようにプログラミングに関わるさまざまなことが楽しかったのですが、これをずっと続けていけるのか? という漠然とした不安もありました。

焦燥感と戦ってひたすらキャッチアップした20代の日々

自分がここまで成長できたのは、環境に恵まれたからだと確信しています。学生の頃から「この人に追いつきたい」と思う方が常に身近にいて、フロントエンドやサーバーサイドの知識のみならず、OSSや競技プログラミングなどの世界を広げてもらいました。世界が広がったことで、自分にとって楽しいことも分かってきて、社会人になってからはOSSに本格的に力を注ぐようになります。

OSSの活動では、普段は会えないような海外の方と気軽に会話したり、レビューし合ったり、仕事とはまた別の楽しさがあります。その結果、OSSの方針を決めるミーティングに参加したり、Google Summer of Codeでは外国人の方のメンターをしたり、なかなか仕事ではできない経験が多くあり、自分自身も大きく成長できました。

一方で、OSSを始めると一気に世界とつながるようになり、自分が何年かけても能力的に追いつけないなと思える方が、世界にはたくさんいることを身近で感じることができます。2019年に書いたこのブログはその頃の感情を表したもので、焦燥感について語っています。

hiroppy.me

この頃は、毎日コードを書いていないと「書き方を忘れてしまうのではないか?」という不安があり、また「新しい技術をキャッチアップできていないのではないか?」という心配性な面もありました。フロントエンドという分野には、HTML・CSS・JavaScriptそれぞれの仕様に加え、日々出てくるライブラリ、パフォーマンス、アクセシビリティなど多岐にわたる要素が一つになっています。全てに詳しくなるのは長い道のりですが、それでも全てに深く詳しくなりたいと思っていたのです。

というのも、それまで働いた複数の会社で、ゼロからプロダクトを作るプロジェクトにアサインされることが多く、常に技術選定を行っていました。プロジェクトの最初の技術選定は、ベースを作る上でものすごく大切なプロセスです。失敗すると書き換えるには時間がかかり現実的には難しいため、それを避けるためにも継続的に視野を広げて、多くの選択肢を持つ必要があります。当時は今ほどライブラリなども安定しておらず、選択の難しさがあった記憶です。

そのため、2017年から2019年には自身のブログで毎月最低でも1記事、多いときは毎週記事を書くことを目標にしていました。もちろんフロントエンド全てに深く詳しくなるのは難しいですが、この活動で自分は何に興味があって何を深堀りしたいのかが明確に分かるようになり、結果的にたいへん良い活動でした。もちろん今でも、新しいライブラリが出たり言語やブラウザの仕様が増えたりするのは楽しいので、引き続き日々キャッチアップしています。

また、英語を始めとするコミュニケーション能力などでも、他チームとの会話でコンテキストをしっかり共有できないまま話を進めてしまったり、プログラミング以外の部分でもやっぱり改善すべき点が多くありました。コミュニケーションはどこの会社でも必要なので、この能力を伸ばせるよう試行錯誤しながら生活していました。

この時期は技術や英語、コミュニケーション能力など、自身に改善するべき点がいくつもあることが分かり、社会人になって一番悩んでいた時期でした。

筆者

△ 2017年にサンフランシスコで開催されたChrome Dev Summitにて、PWAを始めとするWebの世界を牽引するAlex Russell氏と

新しくできた数名の組織に参加して広がった視野

2021年1月、以前にも所属したメルカリに戻ってたのですが、新規事業を担うグループ会社のソウゾウが設立されたタイミングで出向することになりました。これが人生の転換期だったように感じます。数名でスタートした会社に最初期から参加することとなり、まるで立ち上がったばかりのベンチャーにいる感覚です。自分のキャリアはそれまで大きな企業ばかりだったので新鮮な経験でした。

少人数の開発だったため、忙しい日々だったにもかかわらず職種を問わず会社の仲間と一致団結でき、同じ方向を向いて進んでいる楽しさを今でも忘れられません。技術の面でも、CTOをはじめとしてメンバーにさまざまな分野のベテランが集まっていたので学ぶことも多く、大きく成長できたと思います。

ソウゾウでは「Team Topologies」を参考にして、Stream-aligned teamとEnabling teamで組織が構成されました。フロントエンドのパフォーマンスの多くはバックエンドやインフラに依存しますが、この組織構成によって全体を容易に最適化できるようになり、パフォーマンスをはじめさまざまな改善をフロントエンドからインフラまで一気通貫で自分から進めることができたのです。このような経験を通して、組織づくりの大切さを感じました。

engineering.mercari.com

それまでは技術やサービスの成長に重きを置いて仕事を楽しんできましたが、仲間が徐々に増えてきて、サービスリリースの速度が上がる実感を得る中で、組織の成長という視点も面白いことに気付きました。あわせてマネジメントにも挑戦したいという思いが出てきて、それに連れて自分の中でプログラミングに対する焦燥感もしだいになくなっていったのです。

シード期のスタートアップでtoBサービス開発に挑戦

2022年7月、医療データ利活用を支援するシード期スタートアップのYuimediに、VPoEとして参画することになります。前職の経験から小さな組織の楽しさを知り、次は自分が会社を引っ張っていきたいという思いがありました。もともと医療系への興味もあり、自分たちのプロダクトによって医療の世界がもっと良くなってほしいというビジョンもマッチしたことで入社を決断しました。

小さな組織の次に自分が初めて経験したことが、toBサービスの開発でした。それまで大量のトラフィックを扱うtoCサービスの開発がメインだったので、それに比べると最初は物足りなさもあったのですが、徐々に難しさも分かってきました。それは、自分が利用者の立場にどう近づくのか? ということです。自分たちは病院に勤務する医師や企業のデータ解析担当者にサービスを提供していますが、その現場で働いた経験は当然ありません。そのため現場の現況や既存プロダクトの問題点はもとより、開発中のプロダクトに「こういうのあったらいいよね」といった意見を持つことも最初は難しく感じました。

一方でtoCサービスと違って、お客さまと間近で会話することができます。プロダクトの話はもちろん、現在の日本の医療に関する話なども聞けることは自分にとって新鮮な経験でした。自分のプロダクトの完全な利用者側に立つことはエンジニアをやっている以上難しいですが、それでも「どうしたらそこに少しでも近づけるのか?」を模索することが、今の自分にとって課題であり、それを解決するために日々試行錯誤することが楽しいのです。

まだまだ小さい組織で多くの課題がありますが、調達が終わって成長する時期に来ました。自分自身はマネジメントも組織を作った経験もないため、みんなの力を借りながら一つ一つの課題を解消し、みんなが少しでも働きやすい環境を目指して現在も試行錯誤しています。これまでの経験から、エンジニアが成長するには環境が最重要だと思っています。Yuimediでは、業務以外のことを学ぶ時間を「20%ルール」として会社が提供しています。この仕組みは大切にしていきたいと思いますし、このように社員をサポートする制度を引き続き考えていければと思います。

視野を広げてキャリアパスの選択肢を増やす

数年前はICとしてのキャリアを志向していた自分でしたが、徐々に組織作りやマネジメントの楽しさにも気付き、今は組織が成長し変化していく面白さを楽しみたいと思っています。仲間の成長をサポートしたいという気持ちも、過去にはあまりなかったことですが、今はその思いが強いです。マネジメントでも知識を付けることは必要なため、プログラミングを始めたときと同じ気持ちで勉強し、組織とともに自身も成長し続けていたいと思います。

大企業にもベンチャーにもそれぞれの楽しさがありますが、自身がどちらに合っているかはまだ見極めている途中です。数年後にはまたICのキャリアに戻るかもしれませんし、マネジメントだけをしているかもしれません。しかし、これまで考えてこなかった「組織を作っていく面白さ」を、たまたま入ったソウゾウで発見できて本当に良かったと感じています。以前は漠然とした理由から「マネジメントをやりたくないな」と考えていたのですが、振り返ると「案外こちらの道も悪くないな」という肌感を得ています。

これまでの職場では、また一緒に働きたいと思える方がとても多く、そのような環境ならば成長もできるはずです。自分ももう社会人になって9年目になりました。自分が感じてきた「仲間に追いつきたい」という感覚を、次は自分が仲間にとって少しでも刺激を与えられる人間になれるよう、キャリアに関係なく今後も目指していきたいということが変わらない思いです。

編集・制作:はてな編集部