メルカリで働くエンジニアにちょっとだけお話を伺うインタビューシリーズ「エンジニアと立ち話」。第18回目のゲストは2018年度入社の新卒エンジニア、@makazutakaさんと@codehexさんです。 聞き手はお馴染み、ソフトウェアエンジニアの梶原賢祐(以下、@kajiken)。今回はいったいどんな立ち話が展開されるのでしょうか。
遊び心が高じてのめり込んだ、プログラミングの世界
@kajiken:@makazutakaさん、@codehexさん、ちょっとお話いいですか?
@kajiken:ちょっと、廊下は走らないでください。
@makazutaka:す、すみません……新卒なのでつい……。
@kajiken:さすがエンジニアルーキーズ。挙動がスピーディーですね。
@makazutaka @codehex:@kajikenさん、本日はよろしくお願いします!(お辞儀)
@kajiken:立ち話という設定ですが、とりあえず座りましょうか。
(着席)
@kajiken:今回は新卒エンジニアとして入社した二人に、根掘り葉掘り伺いたいと思います。まずは、簡単に自己紹介からお願いしてもよろしいですか?
@makazutaka:では僕から。「Customer Reliability Engineering(顧客信頼性エンジニアリング)」チームで、バックエンドエンジニアをしている@makazutakaです。出身は大阪で、奈良の高専に進学し、それから石川の大学院へと渡り歩き、今年の春、東京にやってまいりました。2018年4月入社です。よろしくお願いします!
@kajiken:なるほど。では@codehexさん、お願いします。
@codehex:はい。モノリスなアプリケーションのマイクロサービス化を進める「Microservices Development」チームの@codehexです。僕も@makazutakaさんと同じく、2018年4月に新卒としてメルカリへ入社しました。沖縄出身の22歳です。
@makazutaka:その自己紹介、ズルいくらい爽やかですね(笑)。
@kajiken:そもそも二人がエンジニアを目指すきっかけは何だったんですか?
@makazutaka:僕がエンジニアになろうと最初に思ったのは、中学生のときですね。周囲の友人はスポーツに明け暮れるなか、僕だけオンラインゲームに熱中していたんですよ。それからオンラインゲームの構造に興味が湧きはじめ、プログラミングにのめり込みました。普通高校ではなく、高専(高等専門学校)に進学したのも、プログラミングを専門的に突き詰めたいと考えていたためです。
@codehex:意識高いですね!
@kajiken:そんな@codehexさんは、なぜエンジニアへ?
@codehex:中学生のとき、はじめてiPhoneに触れ、それからアプリケーションに関心を持ちはじめました。高校に入学して、HTMLやCSS、JavaScriptなど、ソースコードを少しづつ書きはじめたのですが、本格的に勉強をはじめたのは大学(琉球大学工学部情報工学科)に入学してからですね。ちなみに、初めて買った参考書は『プログラミング Perl』でした。
@kajiken:充分に意識高いですよ。
@codehex:たしかに(笑)、僕も@makazutakaさんと一緒かもしれませんね。
@kajiken:オンラインゲームやプログラミングに興味を持ちはじめた当初から、将来的にエンジニアになろうと決めていましたか?
@codehex:僕は何も考えていなかったですね。純粋にプログラミングが楽しかったので、続けていただけというか。ただコンピューターの世界で、自分のつくったものが機能していることに斬新性を感じたんですよ。当時からオープンソースコミュニティにコミットし、あらゆる知識を吸収していきましたね。
@kajiken:それでは、メルカリに入社したきっかけについて聞いていこうと思います。
@makazutaka:僕は学生時代、いろいろな企業にインターンをしていたのですが、周りのエンジニアの先輩から「メルカリって最高だよね」という噂を耳にして(笑)。それがメルカリを知った最初のきっかけです。もちろんサービスは知っていましたけど、自らの就職先としては一切考えていませんでした。
@kajiken:何が決め手だったんですか?
@makazutaka:ふと自分の将来を考えたとき、一番メリットのある企業だと思ったからです。企業としても伸び盛りですし、何より新卒や中途関係なく、優秀なエンジニアが多い。彼らから学べることは、他の企業では得られない唯一無二の価値だと思ったんです。
@kajiken:@codehexさんは?
@codehex:正直に言うと、今もっとも勢いのある会社だからです(笑)。でも、決定打となったのは、「SRE(Site Reliability Engineering)」チームでエンジニアをしているbabarotさんのブログ(入社エントリ)を読んだことですね。たとえ新卒であっても実力さえあればきちんと評価してもらえる企業はなかなかないなと。そういう環境でエンジニアとしてのキャリアを積み上げたいと思ったんです。このブログを読んだあと、すぐにbabarotさんにDMをし、メルカリについて詳しい話を聞かせてもらいました。
@kajiken:凄い行動力ですね。
新卒エンジニアが感じる、メルカリ独自のギャップ
@kajiken:二人がメルカリに内定してから1年以上経ちますが、入社前後のギャップって何か感じましたか?
@codehex:入社前までは「メルカリの技術って、さぞかし夢が詰まっているだろうな」というイメージを持っていましたね。
@kajiken:どういう意味でしょう?
@codehex:技術に関して、既に「完成されているイメージ」があったんです。でも入社してみると、現実的な問題が沢山にあって……。あまり詳しいことは言えませんが、実際にコードを書くなかで痛感しましたね。未完成な部分が多いということは、逆に言えばできることが沢山あるということ。自分のスキルアップにつながる、いい環境だと思ったんです。
@makazutaka:僕が驚いたのは、グローバルな環境で仕事ができているということです。内定をいただいた当時(2017年4月)、外国人エンジニアは数えられるほどしかいませんでしたが、現在は国籍問わず多くのグローバルメンバーがメルカリにジョインしています。世界基準で活躍してきた(している)エンジニアと肩を並べて仕事ができるのは、贅沢な環境だと日々実感しますね。
@codehex:それは僕も思いますね。しかもグローバルメンバーのなかには英語だけではなく日本語も堪能な人が多い。何不自由なくコミュニケーションがとれていているのは凄いと思います。
@kajiken:なるほど。他に何かありますか?
@codehex:僕らの仕事はシステムを開発することなので、基本的にソースコードだけに向き合っていればいいと思っていました。でも実際はエンジニアだけではなく、プロデューサーをはじめ、さまざまなチームと連携する場面が多いんですよ。それにも驚きましたね。あと、苦労した点でいえばコミュニケーションのとり方。オンラインとオフライン、両方を使い分けながらコミュニケーションをとることが苦手で、大変苦労しましたね。
@kajiken:オンラインとオフライン、どっちの方が楽ですか?
@codehex:僕はオフラインですね。テキストに感情やニュアンスを込めることが苦手で……。しかも、ハイコンテクストで話してしまう癖があるので、最近はできる限り具体的に話すように心がけています。たとえば、Aという機能をつくって、僕が「〇〇がダメでした」と言えば、みなさん原因について何となく理解していると思っていたんです。でも、実際は人の捉え方って多様じゃないですか。当たり前なんですけど、自分と相手の捉え方なんて、いつも同じとは限らない。「Aという機能の〇〇が困っている。改善するためには〇〇が必要」というように細かく伝えるようにしています。抽象度が高いと、どうしても感覚的になってしまって、齟齬が生じるんですよね。入社当時は、それに悩ませられました。
@kajiken:プロジェクトに関わる人が多岐にわたると、エンジニア同士のコミュニケーションのとり方のままでは無理が生じてくると思います。目的までの到達方法が異なる人たちとコミュニケーションをとることは、とても良い経験ですよ。
@codehex:はい……痛感しました。
新卒も中途も関係ない。エンジニアとして対等に向き合うメルカリカルチャー
@kajiken:これまで二人はバックエンドエンジニアとしてどんなことに取り組んできたのでしょうか?
@makazutaka:現在、僕はカスタマーサービス(以下、CS)の課題をエンジニアリングで解決するCREというチームに所属しているのですが、いわゆる「守り」のシステム開発を担当しています。これまでのメルカリは開発のスピードアップや新規機能の開発など、攻めたプロジェクトが多かったのですが、より高い信頼性や安定性を確保するための開発も必要で。現在はその一環として、CS管理ツールなどを開発しています。
@codehex:僕は入社後すぐに「UX(User Experience)」チームにいたのですが、そこでは主にメルカリの配送関連のシステム開発をしていました。UXチームなのに、配送業務も担当するってすごいですよね。そこではサーベイ案件も行うので、メルカリのソースコードを徹底的に読み込むことができました。それからMicroservices Developmentチームに異動となり、現在は出品サービスのマイクロサービス化を進めています。
@kajiken:仕事のなかで印象に残っているエピソードはありますか?
@makazutaka:メルカリってコードレビューする文化が異常なまでに根付いていますよね。僕が入社当時に書いたソースコードがあるんですけど、GitHubのプルリクエストにコメントが160件くらい付いたことがあって。2回目のプルリクエストには、190件以上のコメントが付きました……。
@codehex:なんで、そんなに付くの(笑)。
@makazutaka:単純に実力不足です(笑)。でも驚いたのが、同じチーム内のバックエンドエンジニアだけではなく、メルカリグループであるメルペイのエンジニアの人たちも丁寧にレビューしてくださったんです。よりよいサービスやプロダクトをつくるために、メルカリグループ全体としてコードレビューする文化が醸成されている。嬉しさと驚きが入り混じった、印象的な出来事でしたね。
@kajiken:いい話ですね。メルカリに入社して良かったと思う瞬間はありますか?
@makazutaka:沢山ありますけど、出社時間が自由なところは嬉しいですね。
@codehex:わかる……(小声)。
@makazutaka:「遅くまで寝れるので最高!」ということが言いたいわけではありません。新卒といえど、自由と責任を持って仕事に取り組んでほしいという経営メッセージがあって。アウトプットを高めるために最大の配慮をしてくれていることは、モチベーションにつながりますし、「だからこそ、がんばろう」と心から思えるというか。
@codehex:メルカリらしさと関連している点で言えば、いわゆる「スーパースターエンジニア」が多くいるところですね。プロ野球選手と会話しながら一緒に練習できる、みたいな感覚というか。そんな会社、他にはありません。常に高いレベルで議論してもらえるので、僕のようなキャリアの浅いエンジニアにとっては、この上ない環境だと思っています。すぐには無理ですが、早く彼らに追いつきたいですね。
@makazutaka:それは僕も感じますね。あとはやはり、会社のミッションやバリューがあるところ。何かをやろうとしたときや意思決定に迷ったとき、「その選択って、GO BOLD(大胆)じゃないよね」とか、明確な基準で物事を判断できるのがいいですね。「GO BOLD」だと認められさえすれば、新卒でも関係なくチャレンジできる環境だと思います。
@codehex:「GO BOLD」は新卒研修においても言えますよね。僕の知る限りだと、企業の研修期間って数か月から半年間のイメージがあるのですが、メルカリはたった3週間で終了し、すぐにプロジェクトに入ります。とにかく入社から実戦までのスピードが速いんです。
@makazutaka:新しいサービスに携われるし、きちんと自分の意見やアイデアも言わせてもらえますしね。
@codehex:良い意味で新卒扱いは受けていません。エンジニアとして同じ土俵で戦ってくれるというか。「あなたは新卒だから、〇〇できないでしょ?」という接し方はされず、ひとりのプロのエンジニアとして対等に向き合ってくれます。僕のメンターであるエンジニアのvkgtaroさんなんて、「これはなんでそう思うの?」「これについてどう思う?」と、逆に僕の考えをきちんと聞いてくれる。もちろんご指摘やアドバイスをいただくこともありますが、決して否定はしません。常に対等な立場としてコミュニケーションしてくれていると感じますね。
メルカン編集部:オンボーディング担当の@kajikenさんとしては、今のお二人の声を聞いてどう思いますか?
@kajiken:そうですね。入社早々からプロジェクトに入っても、自ら積極的に吸収していける人しか採用していないという自信があるので、なるべく研修期間は短かくして、実践の場で学んでもらっていますね。
「ユーザーにとって価値あるプロダクト」とは……!?
@kajiken:そろそろ終了のお時間なので、最後に今後の展望や目標について教えてください。
@codehex:僕は社内でPerlのプロダクトをつくりたいです!(キリッ)。あとは、コミュニティ運営を通じてオープンソースに貢献していきたいですね。僕は学生時代、オープソースからいろいろとプログラミングの知識を学ばせてもらいました。大袈裟に聞こえるかもしれませんが、ソースコードを公開してくれた方々のおかげで今の自分がいると言っても過言ではありません。僕が学んだ知見をオープンソースとして発信し、誰かが学ぶきっかけをつくりたいと思っています。
@kajiken:いい話ですね。第二の@codehexを生み出そうと。
@codehex:そうですね(笑)。
@makazutaka:僕は新しいプロダクトをつくり出すためにプログラミングを学びはじめたので、そのための知識やスキルを身に付けたいと思っています。メルカリと同じような「ユーザーにとって価値あるプロダクト」をつくりたいんです。
@kajiken:「ユーザーにとって価値あるプロダクト」とは……?
@makazutaka:……。
@makazutaka:……「愛」ですかね。
@codehex:どういう意味ですか?
@makazutaka:僕らはコードを書くときに、誰を想像しているかというと、ユーザーであるお客さまなんですよね。お客さまがどんなことを考えながらサービスを使うのか。何を望んでいるのか。お客さまのために何かをしたいと思えることって、愛そのものなんじゃないかと思うんです。
@codehex:つまりユーザーの価値を高めるプロダクトとは、愛が感じられるプロダクトということですか?
@makazutaka:その通りです。お客さまにとって愛が感じられないプロダクトは、プロダクトとして成立しないはず。それはプロダクトをつくるときもそうですし、システムを改修するときも一緒です。そういう視点はエンジニアにとって重要な要素だと思っています。
@kajiken:いい話ですね。二人とも、今日話してくれた想いや展望を忘れずにいてくださいね。お話していただき、ありがとうございました。
@makazutaka @codehex:はい! ありがとうございました!
プロフィール
-
@makazutaka
2018年4月に新卒でメルカリにジョイン。メルカリチャンネルのバックエンドを経て、現在のCRE(Customer Reliability Engineering)を担当する。 大学院では階層ベイズモデルを使った時系列予測に関する研究を行っていた。趣味は座禅。
-
@codehex
大学卒業後、新卒でメルカリに入社。バックエンドエンジニアとして、UXチームでオファー機能のマイクロサービスの開発に参加。現在はMicroservices Developmentチームで出品用のサービスを開発する。好きなプログラミング言語は「Perl」と「Go」。