Podcast番組 #32 | 技術顧問のリアルとこれから

『エンジニアストーリー by Qiita』は、「エンジニアを最高に幸せにする」というQiitaのミッションに基づき、エンジニアの皆さまに役立つヒントを発信していくPodcast番組(無料・登録不要)です。毎回、日本で活躍するエンジニアの方々をゲストに迎え、キャリアやモチベーションに関するお話をしていただきます。

配信一覧を見る

今回の記事では、TypeScriptの入門書「プロを目指す人のためのTypeScript入門」の著者でエンジニアのuhyoさんをゲストにお迎えした最終エピソード配信の模様をお届けします。uhyoさんのお仕事の話をメインでお話をお伺いします。

▼uhyoさんの過去の配信を見てみる

1回目:「TypeScriptにのめり込んでいる理由」

記事で読む

Podcastで聞く

2回目:「エンジニアのアウトプットと本の執筆」

記事で読む

Podcastで聞く

プロフィール

uhyo(うひょ)
<ゲスト>
株式会社カオナビ フロントエンドエキスパート
東京大学大学院情報理工学系研究科を修士で卒業し、LINE株式会社・株式会社バベルを経て2024年1月から現職。フロントエンド領域の横断的な改善に取り組む。著書『プロを目指す人のためのTypeScript入門』(技術評論者)

 

清野 隼史
<番組ホスト>
Qiita株式会社 プロダクトマネージャー
内定者アルバイトを経て、2019年4月にIncrements株式会社(現 Qiita株式会社)へ新卒入社。Qiita Jobs開発チーム、Qiita開発チームでプロダクト開発や機能改善等を担当。2020年1月「Qiita」のプロダクトマネージャーに就任。

テーマ「技術顧問のリアルとこれから」

清野:今回もゲストはTypeScript入門の著者で、エンジニアのuhyoさんです。よろしくお願いします。

uhyo:こんにちは、uhyoです。よろしくお願いします。

清野:uhyoさんとお送りする今回のテーマは、「技術顧問のリアルとこれから」です。今日はお仕事のところをメインでお伺いできたらなと思っています。

技術顧問のお話よりまず最初に、前々回の時に学生の頃やってたこととかはお伺いしましたけれど、そこから社会人になってからのお仕事についてもお伺いできたらなと思います。新卒で入社した会社はLINE株式会社(以下、LINE)なんですよね。

uhyo:そうです。

清野:LINEでは具体的にどういうことをやってらっしゃったんですか?

uhyo:新卒で配属されてからずっと「LINE証券」というサービスを作っていました。

清野:僕も使っていました。

uhyo:「LINE証券」の開発チームは結構大きくてフロントエンドとサーバーサイドでもチームが分かれており、私はフロントエンドチームに配属されて、「LINE証券」のフロントエンドを専門で作っていました。当時社内のフロントエンドチームの中でも1、2を争うような大きいチームになっていましたね。

清野:そうなんですね。

uhyo:使っていただいていた中で申し訳ないんですけれど、サービス終了が決まってしまいまして。

清野:当時、通知を受け取ってどうしようかなと思いました。

uhyo:そうなんです。私が初めて社会人になって担当したサービスが終了になってしまって残念ではありますね。そこでは3年半くらいやってました。

清野:そうなんですね。3年半ずっとそのフロントエンド周りをやってらっしゃったんですか?

uhyo:はい。その1つのプロダクトをずっと担当していました。

清野:そうなんですね。お聞きして良いか分からないですけれど、「LINE証券」のフロントエンドって何でできているんですか?

uhyo:これは結構何回か発表したことあると思うんですけど、ReactとTypeScriptの構成でした。

清野:そうなんですね。結構ピュアなReactでそのまま書いてるような感じですか?

uhyo:そうです。Next.jsは使ってないですね。

清野:そうなんですね。逆にNext.jsとかを使ってなかった理由ってあるんですか?

uhyo:サーバーサイドが必要なかったんだと思います。本当にただのいわゆるSPAですね。そしていわゆるSSRもないようなプロダクトだったので、Next.jsをあえて入れることで、フロントエンドチームで大がかりなサーバーをあまりメンテナンスしたくないという事情もあったんだと思います。

清野:じゃあデータのロジック周りとかはバックエンドのチームがやっていて、フロントエンドのチームはそこを上手く出していくところをやってたような感じですか。

uhyo:そうです。

清野:フロントエンドは結構大規模なチームだったってお話がありましたけれど、その中でuhyoさんはどういう立ち位置だったんですか?

uhyo:新卒で入ったばかりの頃は新卒らしくチームに入っていたんですけれど、「次入ってくる人はこんな人だ」みたいな事前の調査がチームミーティング行われていたらしく、後から聞いた話だと入る前の私の評判は「TypeScriptマスター」らしいです(笑)

清野:そういう感じで鳴り物入りで入ってきたみたいな感じですか?

uhyo:そうなんですよ。実のところ、LINEに入る前にはアルバイトとかを全くしていなくて、初めてお金をもらいながらプログラムを書くみたいな状態で現場に入っていったんですけれど、ある程度そういった期待も背負いながらですね。なので入ってすぐTypeScriptの設定回りを整えていました。

清野:そうなんですね。

uhyo:TypeScriptのNo Implicit Anyってオプションがあるんですけど、実は私が入ったときにそれが有効になってなくて、有効にしないとダメじゃないかみたいなところからスタートした記憶があります。

清野:なんとなくTypeScriptを使ってるときに結構やりがちなミスですかね。

uhyo:そうですね。やっぱり当時はまだまだTypeScriptを使ったことがないチームメンバーも多い状況でTypeScriptの導入となったので、とりあえずできるところから始めたんだと思います。

清野:uhyoさんってそういうところの知見があると思うんですけど、自分が環境を良くしていくとか引っ張っていくとなった場合に、しんどいさとかは感じなかったですか?

uhyo:思わなかったわけではないですね。どうしても環境にもよると思うんですけれど、自分が一人でひたすら前に進んでも必ずしも人々がついてくるとは限らない中で、ちゃんとみんなで一緒に進めるようにというのはすごく意識していました

清野:みんなでやっていこうという雰囲気を作っていく上で具体的に意識してたことって何がありますか?

uhyo:私はLINEのチームに入ったのは幸いなことだと思っていまして「こうすれば良いんじゃないか」とある程度ちゃんと理屈を立てて説明をすれば、結構みんな「たしかに」って言ってくれるチームだったんですね。

それは私にとってはすごいありがたかくて、ものすごい苦労をしなくても環境を良くしていくことができました。ちゃんとチームの皆さんも私の話を聞いてくれましたね。

清野:なるほど。ある意味でフォロワーシップのあるメンバーが多かったみたいな感じなんですかね。

uhyo:そうですね。

清野:ありがとうございます。そういう取り組みを3年半やっていく中で、環境や組織が変わったと実感したことありましたか?

uhyo:toCのプロダクトということで私はパフォーマンスを良くしたいなと思っていまして。なので私の方でその取り組みをちょっとやったこともあって、それについてはチームからの理解もかなり得られて、チーム全体としてパフォーマンスを良くしていった方が良いよねとかいう雰囲気になっていたのは、とても良い経験だったなと思います。

清野:そうなんですね。これも事業会社だと結構議論されがちな内容だと思うんですけど、いわゆる機能要件というかユーザーに提供する機能と、開発のパフォーマンスを上げていくとかシステム自体のパフォーマンスを上げていくとか、いわゆるリファクタリングや非機能要件っぽいところの優先度のつけ方について、ステークホルダーの方たちにどうやって理解していってもらうかみたいなところを、uhyoさんは何か意識してたこととか、どう考えていましたか?

uhyo:それでいうといわゆるステークホルダーを説得するために私がものすごい頑張ったというわけではなくて、結論を言うと、当時の私の上司だった人がそのあたりの理解があったと言いますか。あとはそもそも大きい会社かつ大きいチームだったので、そういった非機能要件を自律的にやる余裕もあったのが幸いしまして、非機能要件を良くすることに関しては、不自由なくというんですかね、行えていました。

清野:そうなんですね。上司の方の理解があるのは本当にすごいありがたいですね。

uhyo:そうですね、とてもありがたかったです。私が勝手にやらせてもらうだけじゃなくて、チームとして育てていこうという雰囲気に上司の方も巻き込んでやっていくことができましたし、そういう意味ではとても良い環境だったなと今でも思いますね。

技術顧問として何をやっているのか

清野:そこからLINEで様々なことをやっている中で、外部顧問みたいな感じで技術顧問のお仕事を始めたような感じでしたっけ?

uhyo:そうです。

清野:きっかけは何だったんですか?

uhyo:直接的に声をかけていただいたんですね。副業でも技術顧問でも良いから手を貸してくれないかみたいな感じで。

そのようなスカウト的なものがそれまでも全くないわけではなかったんですけれども、その依頼に興味を引かれて受けることになりました。理由はいくつかありまして、一つは副業でも良いとか稼働時間少なくても良いっていうふうに言ってくれたことですね。

清野:そうなんですね。

uhyo:そういったスカウトは実はあまりなくてですね。どうしてもフルタイムでやってくれないかというのが多い。あと声をかけていただいた方も、実は昔LINEにいたって話があって、私が「LINE証券」で書いたソースコードを見たことがあった人なんです。その繋がりで声をかけていただいたんで、私のことを信頼していただいてるっていうんですかね、必要としていただいてるんだなと感じて興味を持ち、技術顧問でをやらせていただくことになったという経緯ですね。

清野:そうなんですね。やっぱり知り合いの方から助けを求められるって嬉しいというかモチベーションになるなと感じました。

uhyo:はい。私はそういうのをモチベーションにするタイプですね。

清野:技術顧問として、どういうことをやっていましたか?

uhyo:TypeScriptの設計周りを良くして開発環境を良くするとか、あるいは、当時は私フロントエンド専門として入っていたんですけれども、フロントエンドの設計をもうちょっと良くしてまさにメンテナンス性のところが主な活動でしたね。

清野:そうなんですね。実際に手も動かしてたんですか?

uhyo:はい。私の方で一部具体的にリファクタリングをやってみせて実際にプロダクトを改善するとか、あとはレールを敷くような感じでしたね。稼働時間が少ない中で自分が1から10まで全部やってしまうというわけにもいかないので、他のメンバーでもできるように手法を見せるというか、レールを敷いて残りをお願いするような感じでメンバーの方に引き渡すような活動でした。

清野:そうなんですね。uhyoさんってそれまで副業ってやったことあるんですか?

uhyo:なかったです。

清野:やってみて大変だったとかありますか?

uhyo:あまり実動時間が多くはなかったので、すごく大変だったというわけではないですね。

清野:そうなんですね。週にどれぐらいやっていたんですか?

uhyo:ベースは5時間とかそんな感じですね。

清野:そうなんですね。確かに週に5時間で入ってアドバイスして組織が良くのは、なんて言うんだろうな、体験として結構良いのかもなんて感じました。

uhyo:そうですね。私も「週5時間でまともな成果が出せるものなのか」とちょっと心配ではあったんですけれど、先ほど申し上げた形でやることである程度の成果は出せたかなと思っています。

ビジネスは好き?

清野:今お話し聞いてる中で、LINEでも様々なことをされたり、今は技術コミュニティのでもされていたりすると思うんですけど、uhyoさんはそもそもビジネスはお好きですか?

uhyo:正直に言うと好きじゃないですね。

清野:前々回もお伺いしたかもしれないんですけど、ビジネスとしてプログラミングや立ち回りをしていくモチベーションは何ですか?

uhyo:そうですね、すごく単純ではありますけれども、どれくらい私に払ってもらえるかは一つ自分に対する評価の指標になっているかなと思いまして。もちろん様々な要因があるのは分かっているんですけれども、前回お話しした、Qiitaでいいね数を競っていた時代の考え方に近いものがあります。ある程度は自分の評価は可視化されていてほしいと言いますか、そのようなところで私の実力が反映されるような立ち回りをしていきたいと思っています。

清野:なるほど。本当にそこがちゃんと評価されているかどうかを一個指標にして仕事をしているというか、何かしらのバリューを発揮しようとしているみたいな、そんな感じなんですかね。

uhyo:そうですね。

清野:ありがとうございます。

目指しているもの

清野:ちょっと話を戻して、先ほど「限られた時間の中で技術顧問をやっていた」とお話しされていましたが、そこから転職もされているじゃないですか。何でそういう判断したのかもお伺いしても良いですか?

uhyo:はい、その会社に技術顧問として入って少ない時間でやっているうちに、やっぱり思うんですよね。もっと自分の時間を使うことができるのであれば、大規模なちゃんとした改善ができるのではないかというのが一つと、違う会社だと使っている技術も結構違うことがあるので、自分の時間をそこに使うことによって、自身の知見の幅が広がるんじゃないかというふうに思いました。

当時私は「LINE証券」のチームに所属していたんですけれども、個人的にあまり変わり映えがしなくなったというか、新しい技術をバンバン入れていきますよという感じでもないですし、良い意味でやり切ったっていうんですかね。そういったタイミングだったことも重なって、それなら違うところに移って新しい知見を貯めていきたいというふうに思ったんです。

清野:そうなんですね。言っちゃうとLINEってすごい大きい会社じゃないですか。安定性とかいわゆる待遇とかも差があると思うんですけど、転職するとなったときにそのあたり後ろ髪引かれるというか、悩んだりはしませんでしたか?

uhyo:さすがに結構悩みましたね。正直なところ、まだこの年だし、なんとかなるんとは思ってはいました。いくらLINEがいい会社だといっても、例えば定年までずっといるというビジョンはさすがに分からないんですよね。ITエンジニアとしてやっていると、一度も転職しないことはないだろうという考えた中で、規模で比べるたときに小さい会社に移る経験はある程度早い段階でやっておいても悪くないんじゃないかと思って転職を決意したというのはありますね。

清野:そうなんですね。一念発起というか、ここで挑戦しようって気持ちで転職もしていらっしゃるって感じなんですか?

uhyo:そうですね。

清野:実際転職してみてどうですか?そこらへん、やっぱりLINEのあの待遇良かったなとかあります?

uhyo:それはもう両手の指に収まらないぐらい。やはり規模がどうしても違いますから。前の方が良かったと思うことも正直ありますけれども、それでも新しい会社は新しい会社の良いところがきちんとありますので、そこを楽しもうという前向きな気持ちでやっています。

清野:そうなんですね。じゃあ転職して良かったか良くなかったかで言うとどうですか?

uhyo:そうですね。あまり後悔したくないので良くなかったとは言わないようにしてるんですけど、実際良かったかなと思っています。私個人の技術的な面での成長は転職したおかげだとは思っていますし、転職すると私の会社の中での立場も変わりますから、それでできるようになったこともあるかなと思っています。自分自身の新しい経験として、やって良かったなと思っています。

清野:そうなんですね。やはりベンチャーに入っている以上、安定性とかよりもそこで何かを成していくような、そこの面白さは多分あるんだろうなとお話聞いてて感じました。uhyoさんが考える自身のバリューってどういうところにあると思います?

uhyo:そうですね。ITエンジニアがバリューを発揮する戦略については様々なことが言われていますけれど、私は何と言っても技術力を本筋としてやっていきたいと思っています。そこに一番私のバリューっていうのはあるだろうと。純粋に知識があるのもそうですし、これまでのアウトプットの経験を通してよく言われることに「言語化能力がある」と評価をいただくことが結構多いんですよね。

自分の言語化能力って何だと考えたときに、一つは論理性かなと思ったんです。前回ちょっとお話したと思うんですけれど、とにかく記事の論理的な正しさを大事にしていること。もう一つはそれを読者に伝える説得力っていうんですかね、そういったところは実際フィードバックもいただいているし、自信があるところだと思っていいます。それらを通じてより良い設計っていうんですかね。非技術的な要件にもかかってくるところだと思うんですけど、推し進めることができる。ここをコアの私のバリューとしていきたいなとは思っています。

清野:ありがとうございます。逆にここら辺苦手だなとかあったりしますか?

uhyo:そうですね。ビジネス的な考え方とかはどうしても苦手ではありますね。それはまさに転職して今強く感じているところではあります。やはり大きい会社からそれよりも規模の小さい会社に移るとなると、どうしてもビジネス的な側面の能力の重要性が上がってくるんですよね。今考えると前の会社では技術的なことだけ考えていれば良かったから、そこは楽だったなとは思っていまして。

なのでビジネス的な能力、具体的にはあらゆる施策の根拠を例えば数字で示さないといけなかったりとか、数字でとは言わなくてもちゃんと毎回毎回説得する根拠を用意してあげないといけなかったりとか、そういったところはこれまでと違って難しいですね。

清野:なるほど。逆にそのあたりができるようになっていくこと自体は新しいバリューにはなっていきそうですよね。

uhyo:そうですね。なので今の会社ではそのための修行をしているのかなというふうに思っています。

清野:なるほど。数字も分かってエンジニアリングもめちゃくちゃできる、一人で何でもできるuhyoさんになったらと考えると、ワクワクと、飲み込まれないように頑張らなきゃと思いました。

今転職してそこでいろいろ挑戦していらっしゃる最中だと思うんですけれど、次にやりたいことってありますか?

uhyo:結構難しいんですけれど、私が今一番興味がある進み方は、いわゆるインディビジュアルコントリビューター(IC)の道ですね。インディビジュアルコントリビューターっていうのは、マネジメントよりは純粋に技術力を発揮していく立場。そういった立場を一回経験したいなと思っているところではあります。

特に高度な技術的な問題を解決するために、純粋に高度な技術力を求められるような経験は何だかんだでこれまであまりなかったので、そういった課題があって私がなんとかできそうであれば取り込んでみたいなと思っています。

清野:そうなんですね。やっぱり軸としては技術でどういう貢献をしていくかというか、そこの範囲を広げていくみたいなイメージなんですかね。

uhyo:そうですね。やはり自分の一番強みかなと思っているところではありますよね。

死ぬまでやり続けたいこと

清野:もっと遠い話するんですけど、死ぬまでやり続けたいこととかってありますか?

uhyo:死ぬまでやり続けたいことですか。仕事レベルであまりそのレベルのことは考えにくいというか、仕事は仕事でしょと思っちゃうところがあるので、やはり個人的にこれまでやってきた、前回だったか前々回だったかのキーワードだったかもしれないんですけど、「世界を良くしたい」っていう、これはいつまでも残っていくものなのかなと思っています。

この先も新しい技術とかが出てくると思うんですけど、私のついていく限り自分のものにして情報発信をしていく。なるべく皆さんに還元していくという活動は私の好きなことでもありますので、いつまでもやっていきたいなと思います。

清野:ありがとうございます。uhyoさんがそういう思いで活動を続ける限り、日本のエンジニアリングもどんどん進化していくなって改めてお話聞いてて感じたので、そういう人に日本のエンジニアリングがこれからも支えられていくんだろうなって、僕自身も思いました。僕も頑張ります。

すごい刺激になりました。ありがとうございます。uhyoさん、3回にわたり本当にありがとうございました。

uhyo:こちらこそありがとうございました。

清野:すごい色々学びになって、刺激的な時間でした。最後に何かお知らせありましたらよろしくお願いします。

uhyo:実はこれといって大きなお知らせというのはないんですけれども、これまで3回にわたって私をゲストとして出していただいて、TypeScript入門本の著者ということで紹介していただいたと思うんですが、実は今年に入ってからもこのTypeScriptの本を重版しておりまして、今年に発行された第4刷というのが存在しております。
もしまだ私の本を手に取っていないという方がいらっしゃいましたら、これからでも全然遅くないというふうには思いますので、ぜひ読んでいただけたらなと思います。

清野:uhyoさん本当にありがとうございました。また今回のようにゲストとして参加いただけることをお待ちしております。ありがとうございました。

uhyo:こちらこそありがとうございました。

さいごに

「エンジニアストーリー by Qiita」は、近年高まるエンジニア向けPodcastのニーズに応え、エンジニアのキャリア形成に有益な情報を発信しています。興味のあるテーマを見つけて配信を聞いてみましょう!

配信一覧を見る

  1. Qiitaニュース | 後輩「具体じゃなくて抽象に依存してもらえませんか?」〜命名編〜
  2. 子育てエンジニアに聞いた〜育児で役立つITツールやアプリ〜