エムスリー株式会社New Graduate
Recruit

コードに対する哲学を言葉にする力へ。技術を楽しみ続けた6年間 

Nagayama2021年新卒

Profile

京都工芸繊維大学大学院 情報工学専攻を修了した後、2021年エムスリーに新卒入社。m3.com開発チームにて開発リードを経験。Rubyへのコントリビューション経験などOSSカルチャーの中でも活躍。

エムスリーには、新卒で入社したエンジニアでも早い段階から大きな仕事を任される文化があります。実装だけを担当するのではなく、ユーザーや事業の課題に向き合いながら、何を作るべきか、どう進めるべきかを自ら考え、提案し、プロダクトを前に進めていくことが求められます。責任も伴いますが、その分得られる経験の幅は広く、多くのエンジニアが想像以上のスピードで成長していきます。

2021年に新卒ソフトウェアエンジニアとして入社した永山は、現在、医療従事者向けプラットフォーム『m3.com』の開発を担うチームで、トップページのリニューアルやポイント施策など、幅広い領域の開発に携わっています。中学生の頃からプログラミングに親しみ、大学・大学院では言語処理系を研究。Ruby本体へのコントリビュート経験も持つなど、一貫して技術そのものへの強い興味を持ち続けてきました。

一方で、入社後はエムスリー特有のROI文化や、大規模かつ長い歴史を持つサービス開発にも向き合うことになります。技術へのこだわりを持つエンジニアは、そうした環境の中でどのように成長してきたのでしょうか。入社後に最も成長したと語る「言語化する力」とともに、永山の6年間を振り返ります。

プログラミングそのものが好きだった学生時代

学生時代はどのようなことをされていましたか?

プログラミングを始めたきっかけは、中学生の頃にゲーム制作に触れたことでした。当時はゲーム制作ツールで遊んでいましたが、仕組みを調べていく中で、プログラミングを使えばより自由に作れることを知りました。用意された機能の範囲ではなく、自分の考えたものをそのまま形にできる点に強く惹かれたのが原点です。

大学に進学するとゲーム制作への熱は少し落ち着きましたが、代わりにプログラミングそのものへの関心が強くなりました。特定のアプリを作ることよりも、コードがどう動くのか、言語がどう解釈されるのかといった仕組みに興味が移っていき、インタプリタやコンパイラといった領域を学ぶようになりました。研究室でもセキュリティ領域に所属しながら、テーマとしては言語処理系に寄せた内容を扱っていました。

また、インターンでは大規模なコードベースに触れる経験もありました。著名なエンジニアの方々から指導を受けながら、実際にRuby本体にコントリビュートする機会もあり、それまでの個人開発中心の経験とは大きく異なる学びがありました。コードを読むだけでなく、設計思想を理解したうえで変更を提案するプロセスは、現在の業務にも直結しています。長く運用されているサービスでは、既存の構造を理解しながら改善していく力が重要だと実感しました。

エンジニアを目指そうと思ったのはいつ頃からですか?

実はかなり早い段階から、プログラミングを仕事にしたいと思っていました。中学生の頃には、プログラミングで生計を立てるのが良いのではないかと考えていました。人見知りな性格だったこともあり、自分が面白いと思えることを仕事にしたいという気持ちが強かったんです。

せっかく好きなことがあるなら、それを仕事にできた方が良い。その頃から将来はエンジニアになりたいという意識は自然と固まっていきました。就職活動でも、特定の業界というよりはWebサービスを中心に見ていました。業界そのものへの興味というよりも、技術に触れ続けられる環境かどうかを重視していた形です。

技術を楽しめる環境を求めた就職活動

就職活動ではどのような軸で会社を選んでいたのでしょうか?

一番重視していたのは、技術そのものを楽しめる環境かどうかでした。勉強会を開催していたり、技術ブログなどの発信が活発だったり、エンジニアが日常的に技術を楽しんでいるような会社に惹かれていました。

技術発信が活発な会社には、技術そのものが好きな人が多い印象がありました。本業以外でも技術に時間を使い、面白いと感じたことを発信している人たちがいる環境の方が、自分には合っていると感じていました。

また、自分自身も技術記事を読むときは実用性よりも面白さを重視していて、そうしたアウトプットをしている人たちがいる会社には自然と興味を持っていました。

最終的に受けたのは、プロダクト系の事業会社を中心とした数社です。どの会社も共通して、技術的に面白そうだと感じたことが応募の理由でした。

エムスリーへの入社を決めた理由を教えてください

最終的には、2社の間で迷う形になりました。どちらを選ぶかは一つの決め手で決まったというよりも、自分がどのような環境で働きたいかを重ねていった結果でした。

当時は事業ドメインに強いこだわりがあったわけではなく、特定の業界についても深い理解があったわけではありませんでした。どちらの会社についても、外から見える情報や技術ブログなどを通じて知っている範囲に限られていました。

そんな中で印象に残っているのが、選考途中で参加した社内の技術勉強会でした。面接後に声をかけていただき、実際にエンジニアたちの発表を聞く機会がありました。

そこで感じたのは、業務のための技術というよりも、技術そのものを楽しんでいる人たちがいるということでした。仕事としての開発に閉じず、個人の興味としても技術を深く掘り下げ、面白いと感じたことを共有し合っている。その空気感がとても印象に残っています。

学生時代に自分が惹かれていたのも、まさにそうした姿勢でした。同じように技術を楽しんでいる人たちがいると感じたことが、その環境を強く意識するきっかけになりました。

最終的な判断は一つの理由ではありませんが、この勉強会で受けた印象が非常に大きかったのは間違いありません。入社後に振り返っても、その感覚は大きく外れておらず、実際に技術を楽しんでいる人が多い環境だと感じています。

自分は自作キーボードが好きなので、社内の勉強会でもキーマッピングシステムやキーボードの歴史について調べて発表しています。

歴史あるサービスとROI文化。入社後に感じたギャップ

入社後、最初はどのような業務を担当したのでしょうか?

最初に担当したのはニュース記事の管理画面でした。Ruby on Railsで作られていましたが、当時はRailsの経験がそこまで豊富ではありませんでした。Railsは型情報が少ないため、静的解析ツールだけでは構造を追いづらく、実際にコードを読みながら理解していく必要があります。特有のお作法も多く、最初は慣れるまで当時のリーダーと一緒に試行錯誤していました。

キャッチアップそのものは、思っていたよりも時間がかかりませんでした。すべてを理解してから開発するのではなく、必要な部分をその都度読みながら、少しずつ理解を広げていく形で進めていました。新卒1年目の段階では大きな機能を任されるというよりも、既存コードを参考にした小さな改修を積み重ねながら、サービス全体の構造を掴んでいく経験が中心でした。

その後、入社半年ほどで担当することになったのが「クイズ」コンテンツです。これは担当プロダクトの中でも特に歴史が長く、長年にわたってさまざまな施策が積み重ねられてきた領域でした。基本機能自体はシンプルですが、その周辺には多くの機能や運用上の工夫が存在しています。コードにも歴史的な経緯が色濃く残っており、全体像を掴むのにはかなり時間がかかりましたが、同時に、長く続くサービスを改善していく面白さを実感したタイミングでもありました。

入社して感じたギャップはありましたか?

大きく二つあります。

一つは、サービスの歴史の長さです。新しい事業や技術に積極的な会社という印象を持っていましたが、実際には長く運用されている基盤も多く存在していました。開発を進める中で、古いコードがなぜ存在しているのかを調べる場面も多く、十数年前に書かれたコードにたどり着くこともありました。単にコードを読むだけではなく、その背景にある意思決定や当時の目的まで理解する必要があります。新しいものを作ることだけが開発ではなく、過去と向き合いながら改善していくことも重要な仕事だと感じました。

もう一つは、ROIを重視する文化です。施策や開発の優先順位を考える際に、どれだけの価値があるのかを定量的に説明することが求められます。もともと技術そのものに興味が強かったこともあり、最初はこの考え方に難しさを感じる場面もありました。今でも試行錯誤している部分はあります。

ただ、見方が少し変わってきた部分もあります。定量的に考えるということは、自分の取り組みがなぜ必要なのかを明確にすることでもありますし、結果として価値の検証もしやすくなります。開発の目的が曖昧になりにくい点は、この文化ならではの良さだと感じています。

また印象的だったのは、ビジネスサイドのメンバーが自然にSQLを使ってデータ分析をしていたことです。自分の中ではエンジニアの領域という認識が強かったので驚きがありましたが、数字をもとに議論する文化が根付いているからこそ、自らデータを取りにいくことが当たり前になっているのだと感じました。

「これが綺麗でしょ」だけではない。入社後に最も成長した言語化する力

入社してから最も成長したと感じる部分はどこですか?

一番変わったのは、人と関わる部分だと思います。学生時代は個人開発が中心で、他人のコードを読んだり、自分のコードを誰かに説明したりする機会はほとんどありませんでした。

入社後は、自分が書いたコードについて「なぜこの設計にしたのか」を説明する場面が増えましたし、他の人のコードに対しても「なぜこちらの方が良いと思うのか」を伝える必要が出てきました。コードを書くことそのもの以上に、それを言葉で説明する力が求められる環境だと感じています。

以前は「こっちの方が綺麗だから」で判断が完結してしまうこともありました。ただ、そのままでは相手には伝わりません。なぜ綺麗なのか、どのように保守性が高いのか、どんなトレードオフがあるのかを、きちんと説明する必要があります。

エムスリーのエンジニアは、そういった話にも敏感で、「本当にそうなのか」「もっと良い方法があるのではないか」と議論も発展しやすく、結果的により良いものが生まれる事も多いです。

コードを書くという行為自体へのこだわりは昔から変わっていませんが、それを他者に理解してもらうために言語化する力は、入社後に大きく伸びた部分だとも思います。

チームでの開発を通じて学んだことはありますか?

小規模なチームで新規サービスを立ち上げる際は、3〜4人ほどで開発することが多く、フロントエンドとバックエンドで役割を分けながら、それぞれが高い自律性を持って進めていきます。お互いを信頼しながら意思決定していくスタイルで、スピード感のある開発ができる環境でした。

一方で、兼務していたチームでは、より多くのエンジニアが同じ領域に関わる開発も経験しました。その場合は設計方針や実装方針について合意形成を行う場面が増え、少人数チームとは違った難しさがあります。

どちらの経験にも共通していたのは、技術力だけでは仕事は進まないということです。自分の考えを言葉にして伝え、相手に納得してもらう力が、開発を前に進めるうえで重要だと強く感じました。

言語化の時間は今まで以上に大切にしています。散歩に出かけ、カフェに入り、「なぜ、あのコードはこんなに複雑に感じるのだろう」と考え込む時間もまたサービス改善のための行動の1つだと思っています。

不要なコードを消すのが楽しい。永山流エンジニアリングの哲学

これまでで特に印象に残っている仕事や、楽しかった経験を教えてください

少し変わっているかもしれませんが、不要なコードを削除することが好きです。新しい機能を作ることももちろん楽しいのですが、使われなくなったコードや、もう必要なくなった機能を見つけて整理していく作業には別の面白さがあります。本当に使われていないのか、なぜ残っているのか、どこに影響があるのかを一つずつ確認しながら、少しずつ取り除いていきます。

毎年年度末くらいになると、サービス全体を見渡して不要なコードがないかを確認しています。結果としてかなりの量を削除してきました。こうした取り組み自体は直接事業利益にすぐつながるというものではありませんが、エムスリーではポジティブな評価やフィードバックをもらえることもありますし、コードベースが少しずつ整っていくこと自体に達成感があります。

コードを書くときに大事にしている価値観はありますか?

よく「プログラミングは手段であって、重要なのは何を作るかだ」という話があります。それ自体は間違っていないと思いますが、自分は少し違う捉え方をしています。

もちろんユーザーに価値を届けることは大切です。その一方で、プログラミングそのものにも面白さがあると感じています。同じ機能を作る場合でも、どう設計するか、どう表現するかは人によって異なります。

例えば小説のように、同じ出来事でも作家によって文章や表現が違うように、プログラムにも書き手ごとの個性が出ます。何を作るかだけではなく、どう作るかにも価値があるという感覚です。

だからこそ、コードの読みやすさや保守性、設計の美しさには強いこだわりがありますし、その設計を考えている時間そのものも楽しんでいます。

AI時代にエンジニアに求められる力は変わると思いますか?

本質的な部分はあまり変わらないと思っています。生成AIはコードを書くこと自体は非常に得意で、自分も日常的に活用しています。ただ、そのコードが正しいのか、安全なのか、長期的に保守できる設計になっているのかを判断するのは人間の役割です。

特にコードを削除するような仕事は、まだAIが苦手な領域だと感じています。複雑な依存関係の中で、本当に消して問題がないのかを見極めるには、システム全体の理解だけではなく、その機能がユーザーや事業、関係するステークホルダーにどのような影響を与えるのかまで考える必要があります。

コードを書くスピードや手段は今後変わっていくと思いますが、良いシステムを作るために考え続けることそのものは、これからも変わらないのではないかと思っています。

エムスリーで活躍する人とは

エムスリーで活躍している人にはどのような共通点があると思いますか?

まずは手を動かすのが早い人だと思います。ものを作るスピードが速いことはもちろんですが、それに加えて、ビジネス的なインパクトを理解しながら行動できる人は強いと感じます。

自分はどちらかというと技術寄りの人間ですが、活躍している人は技術だけではなく事業側の視点もよく見ています。プロダクトに対して自分から意見を出し、ビジネスサイドのメンバーと同じ目線で議論できる人は、やはり存在感があります。

また、コードに対する哲学を持っている人が多いのも特徴だと思います。単に動けばいいではなく、その後の保守や運用まで見据えて設計する。そうした意識を持っている人が多いので、技術的な議論もしやすい環境だと感じています。

エムスリーだからこそ感じる難しさはありますか?

やはりROI文化ですね。作るものや改善するものに対して、どれだけの価値があるのかを数字で説明することが求められます。技術そのものへの興味が強い人にとっては、最初にぶつかりやすい壁かもしれません。

実は自分自身、コードや設計のことを考えている方が好きなので、数字を追い続けることに自然と強い関心を持てるタイプではありません。

ただ最近は、この文化の良さも少しずつ見えてきました。定量的に説明するということは、逆に言えば「なぜその仕事をやるのか」が明確になるということです。結果として、やったことがどれくらいの成果につながったのかも捉えやすくなります。

まだ得意とは言えませんが、目標となる数字に関心を持つことが、この文化を理解する第一歩なのだと思います。技術だけを見ていた学生時代にはなかった視点であり、自分にとって大きな成長につながった部分でもあります。

一人で何でもできるエンジニアを目指して

現在はどのような役割を担っているのでしょうか?

エムスリーはフラットな組織なので特別な役職があるわけではありませんが、技術的な課題の整理や設計に関する相談を受けることが多く、そうした面でチームに貢献することを期待されていると感じます。

もともとマネジメント志向が強いタイプではなく、技術的な課題を解決したり、設計を考えたりする方が好きです。その部分を評価していただき、技術面でチームを支えるポジションを任せてもらえるようになってきました。

現在はトップページなどのリニューアルに加えて、キャンペーン基盤やm3.com内のダッシュボードなど、複数のプロジェクトに携わっています。特定のサービスに固定されるというより、必要に応じてさまざまな領域に関わりながら開発を進める形です。

開発の現場には新規プロジェクトに集中するフェーズもあれば、既存システムを改善し続けるフェーズもあります。その中で求められる役割が変わっていく点も、この環境の面白さだと感じています。

今後挑戦したいことを教えてください

技術面では、一人で何でもできるエンジニアになりたいと思っています。

もちろん現実的にはすべてを一人で担うことはできませんが、フロントエンドやバックエンドといった領域にとどまらず、新しい技術領域にも挑戦し続けたいという気持ちがあります。最近はアプリ開発のキャッチアップにも取り組み、これまで触れてこなかった領域にも少しずつ広げています。

また、既存システムのクリーンアップにも引き続き取り組んでいきたいと考えています。

長い歴史を持つサービスは、これまでの改善やリニューアルの積み重ねによって現在の形になっています。一方で、その過程で生まれた構造や複雑さも残り続けています。

だからこそ、少しずつでも構造を整理し、より扱いやすく、保守しやすい形にしていくことには意味があると思っています。大規模なサービスだからこそ、継続的に整えていく価値があると考えています。

社内LTに向けた自由研究として、タイプライターも購入しました。Caps Lockがなぜ必要なのか、など想像以上に発見が多く非常に良い体験でした。

技術を楽しみ続けられる場所

新卒で会社を選ぶ際に大切なことは何だと思いますか?

まずは、自分が楽しめる環境を選ぶことだと思います。

仕事は毎日続くものなので、興味が持てないことや苦痛に感じることを長く続けるのは大変です。もちろん待遇や事業内容も大事ですが、それ以上に、自分が面白いと思える環境かどうかは重要だと感じています。

私自身、就職活動では技術を楽しんでいる人たちがいる会社を探していました。その軸は、振り返ってみても間違っていなかったと思います。

また、学生のうちにできることとしては、チーム開発の経験はもう少し積んでおけばよかったと感じています。個人開発が中心だったため、他人と一緒に何かを作る経験はそれほど多くありませんでした。

ハッカソンのような場でも良いので、複数人で一つのものを作る経験は、社会人になってから必ず役に立つと思います。

最後に、一緒に働きたい人へメッセージをお願いします

一番好きな文化を挙げるとすると、社内技術発表会だと思います。業務に直接関係する話だけではなく、自分が面白いと思ったことを自由に発表できる場です。私もたまに発表していますが、自分は正直仕事には役立たない話ばかりしています(笑)。

最近だと、自作キーボードの話をしました。市販のものでは満足できなかったので、3Dプリンターで筐体を作って、自分好みのキーボードを作ったんです。業務との関連はほとんどありませんが、そういった話でも面白いと言ってくれる人がいるのは、この環境の良さだと思います。

入社前から変わらないのは、プログラミングそのものを楽しむ気持ちです。一方で、この環境での経験を通じて、自分のこだわりを周囲に伝え、それをプロダクトの中で形にしていく力は確実に磨かれてきました。

技術そのものが好きな人。何かに強いこだわりを持っている人。役に立つかどうかだけではなく、面白いと思ったことを追求したい人。そういう人にとって、この環境はきっと楽しめる場所だと思います。

あなたの力とアイディアで
医療の未来を切り拓いてみませんか。