Go経験者0人スタート!メルカリ アッテ サーバサイドエンジニア事情

ソウゾウは会社設立から1年、メルカリ アッテのリリースから半年が経過しました。 主要の開発言語はメルカリと同じPHPではなく、Goです。新会社設立の意義として技術的チャレンジ、投資をしています。 設立当初、Go経験者がいなかったソウゾウに、同じく未経験で入社したサーバサイドエンジニアの一人が八木さんです。 今回はそんな八木さんと、ソウゾウ立ち上げメンバーの一人でもある鶴岡さんに、ソウゾウ流のGoの身につけ方や求めるエンジニア像についてお話してもらいました。

f:id:mercan:20161102213942j:plain

鶴岡達也
メルカリ創業期からサーバサイドの開発とエンジニア組織全体の開発環境作りに注力。ソウゾウ設立後は新規サービスの技術選定・開発・運用を担当し、現在は開発チームのマネジメントを行う。

八木達也
2016年4月入社。サーバサイドエンジニアとしてメルカリ アッテの主要機能のAPI開発を担当。アッテの基本体験を改善するGrowth チームのプロジェクトマネージャーを兼任。

「知識や経験がリセットされることにドキドキする」

鶴岡:八木さんは今年の4月入社ですが、どうしてソウゾウに入社しようと思ったんですか?

八木:僕は新卒でDeNAにサーバサイドエンジニアとして入社したんですけど、実は社長室に配属になったり、ゲームの企画をしたりもしていて。器用貧乏っぽくあちこちにいたんですね。で、6年が経過した頃に、一番楽しいと感じるエンジニアに軸足を置いてそろそろ外も見てみたいな、と思ったのがきっかけです。メルカリ/ソウゾウは進太郎さんの”現場感アリアリ”なところに惹かれて、雰囲気が良かったから選びました。

鶴岡:現場感アリアリ(笑)確かにありますね!メルカリとソウゾウで迷ったりはしました?

八木:圧倒的にソウゾウでした。新しいサービスを作りたかったのと、その上でビジョナリーな会社がいいなと思ったときに代表の松本さんと話したことが決め手になりました。

鶴岡:Wantedlyで応募してもらって、その後面談の中でGoの話もしたと思うんですけど、その時って開発言語についてどう思いました?

八木:僕自身はPerlを中心とした開発経験があったんですが特定の技術にこだわりがあるわけじゃなかったんです。PHPでもよかったんですが、未経験の立場からするとGoは嬉しかったですね。

鶴岡:確かに、面接でお話しているときに特定の技術へのこだわりのなさや、過去の知識を活かせなくなることを躊躇していないのを感じました。それって結構めずらしいですよね。過去の資産に固執しすぎないで、問題解決していける人だなと。

八木:いろいろな仕事を経験してきたので「リセットされること」にドキドキするんですよね。自分が積み上げていくことよりも、新しいチャレンジで新しい価値観を感じたいタイプですね。

f:id:mercan:20161102213937j:plain

Goは初心者でも書きやすい?

鶴岡:Goで開発してみて、実際どうですか?以前やられていたPerlとのギャップを感じたりすることってありますか?

八木:動的な言語から静的な言語への変化で、コンパイルによって事前にエラーに気づけるようになった変化が大きいですね。かつ、他の静的な言語に比べても書く量はそんなに増えるわけではないから、安心感があります。

鶴岡:そうですよね。Perl / Python / PHP / C など、別の言語の経験者でも戸惑うことが少ない言語だと思います。強力な言語であればあるほど、初心者と上級者の書いたコードが全然違うことってよくあるんですが、それがあまりない。それは Go が単に高度な言語機能を足していくのではなく、問題を解決するために本質的に必要な機能だけをそろえるという思想だからなんですよね。

八木:ソウゾウの他の未経験者も同じような感想を持ってますね。めちゃくちゃ簡単にかけるという体感はないんですが、堅牢な印象。

ソウゾウで未経験者が新しい言語を習得する方法とは

鶴岡:未経験で入っても、なんらかの言語をマスターしていればその経験があるので、1~2ヶ月は勉強期間で3ヶ月後から貢献していけるイメージかな?一定期間で自走していければいいなと思ってますね。

八木:結構、勉強期間があるなぁと思いました!

鶴岡:そうでしたか!手取り足取り教えるわけじゃないけど、でも周りは教える姿勢はある。そこを手厚くするのはちょっと違うと思っているので。あと最近は詳しい人も入社してきているので、「Go Friday」という底上げのための社内勉強会も毎週している感じですよね。

八木:僕の場合は本番のコードを見たほうがはやく覚えられるってことで、最短距離で最初から結構実践していましたね。まずは影響の少ない簡単なBugFixから。

鶴岡:そうそう、この方法もなんちゃってOJTみたいな感じで完璧ではないんですが。専任がいるわけではないので、個人のパワーに頼っていますね。 とはいえ、GAE/Go などの裏側の細かい仕組みとかって普段の開発で触らないところだったりするから、そういうところは情報をまとめておくとかの仕組みは作りたいですね。

f:id:mercan:20161102213933j:plain

鶴岡:ちなみに4月の入社から半年経ちましたが、ソウゾウのGoエンジニアとしてもう自立した!っていうタイミングっていつ来ました?

八木:さすがに今はもう大丈夫かなと思ってますけどね(笑)

鶴岡:もう2ヶ月くらいでバンバンやってましたよね?

八木:4月は勉強、5月の途中から分かってきて・・・データベースがコントロールできるようになったらまあ大丈夫だと思っていて、そこがある程度詳しくなったのがそのあたりかな。アッテのサーバサイドってすっごい細かいメモリ管理とかが必要なわけじゃないので、それくらいで自走してきた感じがありますね。

ソウゾウで求められるエンジニア像

鶴岡:ソウゾウの社内の雰囲気はどうですか?実際働いてみて。

八木:あったかい会社だなぁと思いましたね。のびのびやれています。自然と雰囲気も似た人が集まっているような気がしますね。

鶴岡:なるほど。メルカリでは All for One というバリューがあって、各メンバーが自身の専門性を発揮しチームで成功することを目指しています。ソウゾウでもそのバリューにもとづいて採用をしていて、カルチャーマッチ度合いだけでなく、プロダクトオーナーやデザイナーとコミュニケーションを取れる人かどうかも見ています。その結果、メルカリと同じような雰囲気になっていますね。

八木:まさに文化ですよね。

f:id:mercan:20161102213928j:plain

八木:鶴岡さんはエンジニアを評価する立場だと思うんですけど、ソウゾウのエンジニアはどういう人が評価されるんですか?

鶴岡:問題解決能力があるか、というのは一番重視していますね。問題解決というのは、何が問題なのかを発見して、実際に解決していくこと。発見や解決のためにもちろん技術力は重要で評価もしやすいんだけど、そもそも解決したい問題は何なのかというのを見極めることが大事ですよね。実際に、問題の抽象度が高いままその解決を任せられる人ほど活躍していると感じます。ソウゾウには大胆に任せられる優秀なメンバーが多くいて、お陰様で僕がコードを書かずにマネージメントに注力できるようになりましたよ(笑)

八木:今、APIチームってインターン生含めて7名くらいだと思うんですけど、これからはどんな人に入社して欲しいですか?

鶴岡:Goは未経験でもよくて、でも新しい技術を覚えたい、しかもこれまでの自分の資産に固執していない!みたいな、まさに八木さんのような人! そういう人がいろいろ吸収して活躍していけると思っています。これまで使っていたものをすべて捨ててやらないといけない。考え方を一旦おいておいて、真っさらに戻らないといけない。初心者に戻ることを楽しめる人がいいですね。八木さんはどうですか?

八木:僕は、僕が出来ない事ができる人がいいなというのがあるんですが(笑)、 シンプルに自走できる人がいいですね。困ったら誰かに聞けて、自分でコミュニケーションをハンドリングできる人。あとは前向きな人ですね、建設的に議論できる人。なんでもかんでもいいことばかりじゃないと思うので、よくないことがあった場合に、建設的にアクションできる人と働きたいですね。

鶴岡:そうですね。あとは、アッテも形ができているように見えますがまだまだやるべきことは山積みです。当然これからグローバルも目指しますし、アッテの次のプロダクトも開発していく予定です。未経験者を育てる仕組みと、優秀な Go エンジニアが活躍できる場の両方を作っていかなければなりません。そのために、社内外で Go への積極的な投資を続けていくつもりです。

www.wantedly.com