Sansanのスマホアプリ開発をリードするエンジニアたちMembers2019/07/25こんにちは、人事部の杉本裕樹です。Sansanに所属するクリエイターをさまざまな視点で紹介していく当企画。今回はSansanのスマホアプリ開発をリードするメンバーです。iOSアプリ、Androidアプリの開発をリードするエンジニア2名と、スマホ開発のプロジェクトを推進するプロダクトマネジャーの3名から話を聞きました。Sansanに入社したきっかけや業務上の課題、彼らが考える優秀なエンジニアの条件など、リアルな声をお届けします。Remoを使った家電の自動化プラットフォームを作るために現在の業務内容を教えてください法人向けクラウド名刺管理サービス「Sansan」Androidチームのリードエンジニアをやっています。役割としてはアプリのQCD(生産管理において重要な3つの要素である品質、コスト、納期の頭文字をとった用語)に責任を持つことなので、コードレビューや全体のアーキテクチャや開発フローを考えたり、各プロジェクトのスケジューリングやメンバーのアサインがメインの仕事です。自分でもプロジェクトを持って開発をしています。Deliveryの略。日本語でいうと継続的インティグレーション/継続的デリバリー)を改善したり、スクラムのイベントを回したり、中途採用のカジュアル面談・一次面接を担当しています。Sansanへの入社の決め手は何ですか?SansanからはLinkedInで声をかけてもらい話を聞きにいったのですが、モバイルアプリに会社として注力していて、Kotlin等最新の技術を積極的に採用して良いプロダクトを作ろうとしているところが良いなと思いました。社内の文化としても勉強会が積極的に行われていたり、エンジニアに対する社内制度が充実していたり、Droidkaigiなどのスポンサーになったりと、会社として技術的な部分に注力している点に惹かれました。AndroidはMVP+レイヤードアーキテクチャで開発しています。今までは大きな問題はなかったんですが開発が進むに連れてボイラープレートコードが多くなったりPresenterの肥大化、Presentation層とUseCase層の責務が曖昧になったりと問題が増えてきました。4月からはメンバーも増え、リニューアルプロジェクトも終わったタイミングのため、これらの問題を解決し今後の開発スピードを上げるためにアーキテクチャの刷新を進めています。具体的にはFluxアーキテクチャを採用しこれらの問題を解決しようと模索しています。いう観点で考える時間が増えたことが一番だと思います。今、身につけたい技術分野は何ですか?Androidの最新情報やライブラリ、FlutterやPWAなどAndroid/iOSを脅かしうる周辺技術は追っていかなければならないと思う一方で、リードエンジニアという立場になったので技術的な最終判断を正しくできる力を蓄えないといけないなと感じています。プロダクトの開発を前進させるために、どういったアーキテクチャや責務のあり方がより良いものなのか、マルチモジュールを採用したときにどういったレイヤーで切るか、チームがスケールしても耐えうるのか、など、基礎的な部分から学びなさなければいけないと思っています。優秀なエンジニアとはどのようなエンジニアだと考えますか?技術的にレベルの高い問題を解決できたり、アーキテクチャに関して深い知識があるというのもありますが、その問題を解決するだけでなく、今後の運用や正常系以外のフローなどソフトウェア全体を考えて開発できるエンジニアが優秀だなと思います。どのようなエンジニアを目指していますか?新卒で働き始めてから一貫してAndroidアプリエンジニアとして6年半ほど働いていますが、いつかAndroidが廃れていくかもしれないし、他のプラットフォームに興味を持つかもしれません。いったときにベースとなるエンジニアとしての技術力や考え方がしっかりしていれば、今後のキャリアとしてもどこでもやっていけると考えています。・最近はまっていること:子供と特撮ヒーロー番組を見ること事業を前に進める技術を磨く現在の業務内容を教えてくださいSansanのiOS版スマートフォン向けアプリ開発のリードエンジニアをしています。山口さんと同じくアプリのQCDに責任を持ち、全体的なアーキテクチャや開発フローを考えています。メンバー4名のコードレビューやアドバイスをしています。今は特に名刺撮影機能に力を入れています。Sansanへの入社の決め手は何ですか?たまたま結婚式で大学時代の友人と再会したときにSansanの話題になり、いろいろと調べていくうちに興味を持ちました。気づけば他社を受けることなくSansanへの入社を決断しました。エンジニアとしてSansanに入社して良かったと思うことは何ですか?入社後はEight事業部でも業務をしたこともあり、多様な考えを持つ人とコミュニケーションできて世界が広がったことです。いうのも、前職は二次受けのSIerで50名位の組織でしたので、同じような価値観を持った人が多くなっていました。ユーザーの声がダイレクトに聞ける環境もやりがいを感じます。今、身につけたい技術分野は何ですか?今は色々な本から知識を得て設計スキルのレベルアップをさせたいです。プロダクトに求められることが変わっていき、開発に関わるメンバーも増えていくことにより課題も沢山見えてきています。いった課題をクリアしていけるような高度な設計スキルを身につけたいと思っています。優秀なエンジニアとはどのようなエンジニアだと考えますか?周囲に良い影響を与えることができる人。事業要求に技術面から応えることができる人です。どのようなエンジニアを目指していますか?自分が理想にしている優秀なエンジニアに近づくこと。エンジニアとしての明確なゴールを設定していないのですが、まだまだです。そこに向かいながらSansanを事業成長させ、自分も周囲のメンバーも生産性をあげられるような存在になっていきたいです。・最近はまっていること:落語プロダクトの進むべき道を描く現在の業務内容を教えてくださいSansan開発のプロダクトマネジャーとしてiOS、Android共にプロジェクトの推進をしています。ユーザーや営業現場からの開発要望をまとめ、次に何をしていくべきかを決定していきます。Sansanへの入社の決め手は何ですか?Web上に限定したサービスではなく、名刺という物理的なものと関わりがあるサービスだったからです。Webで完結しているサービスは個人的には行き詰ってしまう印象があり、転職活動中はIoT関連を中心に企業を見ていました。coroutineと親和性の高いfluxアーキテクチャを模索しています。コードのメンテナンスのしやすさや、新機能を追加した際に不具合が出来る限りでないように設計していきたいと考えているからです。エンジニアとしてSansanに入社して良かったと思うことは何ですか?社内外向けの勉強会を開いたり登壇の機会などがあり、エンジニアの交流の機会があって良いと思います。実際にKotlin勉強会を開催したり、DroidKaigiで登壇することがありました。『kotlinイン・アクション』という開発者向けの本の翻訳にも関わることもできたのが良い経験でした。今、身につけたい技術分野は何ですか?データビジュアライゼーションです。composeやSwiftUIなどのView構築DSLがどうなっていくのかには興味があります。優秀なエンジニアとはどのようなエンジニアだと考えますか?ささっと問題を片付けてしまうエンジニアです。そのためには、もともとの設計がきれいでないといけません。何か機能追加する度に違う部分にバグが発生してしまうような設計ではなく、あらゆることを想定し設計ができることです。どのようなエンジニアを目指していますか?定年まで一線で活躍することですね。楽しく働けるエンジニアになりたいです。環境やユーザーから求められる要望といった変化に順応しながら、自らを含む開発メンバーのアウトプットクオリティを向上させ、さらに生産性をあげることに向き合っているようです。試行錯誤を繰り返しながら、技術面で事業の成長にコミットしている彼らと一緒に働けることが嬉しくなりました。Sansanでは、一緒に働くエンジニアのメンバーを募集しています。興味がある方は、採用情報をご覧ください。Box」も合わせてお読みください。Members誰も思いつかないやり方を考え抜く。Sansanエンジニアであることの面白さ。