木村 優斗 プロフィール
大学院の研究でプログラミングに触れたことをきっかけに、エンジニアの仕事に興味を持つ。学生の時にインターンで働いていたITスタートアップに就職。そこでは、主にKubernetesやGoを使ったバックエンドの開発に従事。その後、キャリアを拡げるため、2019年7月にスマートショッピングにバックエンドエンジニアとして入社。2022年にSREチームへ異動し、SREとして活動。
スマートショッピングは「日々のモノの流れを超スマートに」をミッションに、IoT重量計を使った在庫管理・発注自動化のSaaSサービス「スマートマットクラウド」を展開しています。「スマートマットクラウド」は2018年の発売からわずか約4年近くで1200件以上の取引社数、4万枚以上の導入実績を誇り、急成長を続けています。
今回は、SREチームで働く木村に、スマートショッピングにおける開発のやりがいや魅力について話を聞きました。
他に類を見ない。IoTサービス「スマートマット」の革新性が、入社の決め手
ーー転職を考えるようになったきっかけは何でしたか?
前職で担当していたGoやKubernetesを使ったバックエンド開発のスキルを活かして、よりキャリアを拡げたいと考えたからです。
その頃「Twitter転職」が流行っており、私もその流れに乗ってTwitterで技術スタックを投稿していたところ、代表の志賀から連絡をもらい、面談することになりました。
常々、私は業務の自動化や効率化や拡張・加速のためにエンジニアリングの技術を活かしたいと考えており、IoTで在庫管理を行う「スマートマットクラウド」の画期的な部分に魅力を感じたんです。また、KubernetesやGoなどモダンな技術を積極的に取り入れて開発する姿勢も決め手となり、2019年7月にスマートショッピングに入社しました。
ーー現在のポジションと業務内容について教えてください。
SREチームでSREをしていますね。具体的には、SREチームが掲げる「日常を革新するプロダクトが走り続けるために、整備された道とガードレールを作り改善していく」というミッションに基づき、開発組織全体の生産性向上における各施策の企画・実行を担っています。
SRE(Site Reliability Engineering)は、日本語でサイト信頼性といいますが、弊社は、このサイト信頼性を「システムの安定性だけでなく、より良い開発者体験による迅速なバグ修正や魅力的な機能改修によって構成されるもの」と定義しています。
システム運用負荷の改善、セキュリティの強化だけでなく、プロダクト開発チームの認知負荷を低くする業務の一環として、インフラ構築や運用に関するツールの整備なども担います。
入社数ヶ月で、中核プロダクトのフルリプレイスを担当。事業成長を実感する日々
ーー入社当時の開発体制について教えてください。
当時、スマートショッピングは、日用品・食品通販の価格比較サイト「スマートショッピング」と、「スマートマットクラウド」の2つのサービスを運営していました。私は、スマートマットクラウドのバックエンドエンジニアとして働いていました。
スマートマットクラウドがリリースして1年ほどであったため事業規模も小さく、開発メンバーも2、3名でした。当時はECサービスの方がエンジニアが多かったです。
スマートマットクラウドの方向性は今と大きく変わりませんが、構成が今よりもずっとシンプルでした。インフラもシンプルなAmazon EC2で動いており、デプロイも手動でしたね。
ーー当時、木村さんが抱えていたミッションは?入社してから、どのようなことに取り組みましたか?
大きな最初の仕事がスマートマットクラウドのフルリプレイス(作り直し)でした。当時のスマートマットクラウドは、「IoTデバイス」が基本単位になっていました。これだと、「2枚のスマートマット上に大きな在庫を載せる」みたいなイレギュラーな測り方に対応できません。そこで、基本単位を「IoTデバイス」から「在庫」に変更しました。こうすることで、複数のマットで1つの在庫を管理できるようになりますし、マットがなくても手動でデータが登録できるようになります。
プロダクトのデータ構造やインフラ構成など、4〜5人の開発メンバーでほぼゼロから作り直しました。大変でしたが、やりがいのある経験でした。
ーーフルリプレイスにあたって、技術選定はどのように行われたのでしょうか。
Kubernetesの導入は決まっていたため、いかにKubernetes上でスマートマットクラウドをスムーズに動かすかという観点で、Emissary-Ingress(旧Ambassador API Gateway)の採用を検討しました。
Emissary-Ingressは、細かいリクエストのルーティング制御が可能で、将来的なカナリアリリースの実施や、サービスメッシュを実現するIstioとの連携ができる点などが主な導入理由です。
また、Kubernetesを使うため、マイクロサービスアーキテクチャの採用も検討していました。マイクロサービスで複数サービスが連携して動くのですが、それを自身のパソコン上で動かすと、マシンに必要となるリソースも増加してしまいます。そこで、Telepresenceを活用して、AWS上の開発環境と、ローカル開発の環境をつないだ状態で開発できるようにしました。
壁がなく、フラットな関係。モダンな技術も積極的に導入するカルチャー
ーースマートショッピングを表す風土やカルチャーについて教えてください。
エンジニアについては、技術やプロダクトが好きな人が多いですね。あと、プロダクトの成長に必要なことなら、年齢や立場に関係なく提案や議論ができる雰囲気があります。
また、要件が合えば、モダンな技術を積極的に取り入れる風土もあるので、新しい技術に触れたい方にはピッタリの環境かもしれません。
ーー働きやすいと思うポイントは?
ウォーターフォール開発から、スクラム/アジャイル開発に移行するなど、ここ数年で開発フローは大きく変わっており、とても働きやすい環境になっていますね。また、コロナ以後、フルリモートになったため、プライベートとの両立も図れます。
ーーSREとして、スマートマットの開発に携わる面白さや魅力について教えてください。
大きく2つあって、1つが取り扱う製品がIoTプロダクトだからこそ、技術的にも未知の課題に取り組めることです。
もう1つが、日々行っている運用を主体としたソフトウェアエンジニアリングが、自社プロダクトの成長に繋がっていることですね。これは、まだまだ成長フェーズにあるプロダクトだからこその面白さだと思います。
自身のスキルをもって、プロダクトや会社を成長させたい。そんな情熱のあるエンジニアと働きたい
ーー技術力向上のために、何か取り組んでいることは?また、社内にそのような取り組みや機会はありますか?
技術力向上のために、大きく3つのことを実践しています。1つ目が自主学習です。興味のある技術に触れたり、技術書を読んだりして、スキルや知見を日々磨いています。最近は、今話題のChatGPTライブラリ「LangChain」でよく用いられる、ベクトルデータベース「Pinecone」のTerraform Providerを作りましたね。
2つ目がドッグフーディングです。私の場合は、スマートマットクラウドのAPIを使い、コーヒー豆の管理をしています。家にあるコーヒー豆が減ってきたら、自作したECサイトから自動発注するようなシステムを構築して、日常生活にうまく取り入れていますね(笑)。
3つ目が勉強会です。部署内では、毎週水曜日の13時からオンラインで勉強会を実施しています。テーマは、アーキテクチャのドメイン駆動設計や、マイクロサービスといった技術的な内容から、マーケティングなどビジネス的な内容までさまざまです。
ーー今後、実現したいこと・目指したいことを教えてください。
SREになってまだ日が浅いため、まずはSREとしての経験を積んでいきたいです。中長期的には、SREが大企業だけでなくスタートアップでもビジネスの成長を加速させる役割となりうることを証明したいですね。
引き続き、プロダクト開発チームが全力で安全に走り続けられるようなプラットホームと文化を作っていければと思います。
ーーどんな方が、スマートショッピングに向いていると思いますか?
私がバックエンド開発だけでなく、SREにもチャレンジできているように、手を挙げれば任せてもらえる環境があります。与えられた仕事をこなすだけでなく、自分で課題を発見したり提案したりと、自走できる方が向いていると思いますね。あとは、プロダクトや会社の成長のために、どんどん意見を出していける情熱がある人だとなお良いです。
IoTのプロダクト開発というところで、技術的にも予測不能な課題に出会うことも多いでしょう。そういった難しい課題に取り組める面白さも。
スタートアップの環境で、SREまたはエンジニアの立場からビジネスやサービスの成長を加速させたい、そんな方は、ぜひ当社に来てもらいたいですし、一緒に働きたいです。ご応募お待ちしております!