「速さ」と「安全性」の追求。ユニークビジョンがRustを標準採用する理由とその舞台裏

2026.02.13

ユニークビジョンがプログラミング言語「Rust」を本格的に採用し始めてから、数年が経過しました。今では当社のバックエンド開発において欠かせない存在となっているRustですが、その導入のきっかけは、ある「切実な課題」でした。今回は当社がRustを導入するに至った背景や当社の開発スタンスについてお話しします。

きっかけは、Ruby on Railsで限界を感じた「大量の帳票作成」

Belugaキャンペーンを提供する際、以前はSNSキャンペーンのデータを集計する帳票作成プログラムをRuby on Railsで実装していました。しかし扱うデータ量が膨大になり、処理が追いつかず動かなくなってしまう事態に直面しました。4GBのメモリを積んだサーバーがメモリを食いつぶし、サーバーごとダウンしてしまったのです。

そこで、当時プライベートで学んでいたRustを試験的に投入してみたところ、わずか6分ほどで14万件ものデータ処理とダウンロードが完了しました。しかもメモリ使用量はわずか10MB程度に収まったのです。この圧倒的なパフォーマンスの差を目の当たりにし「RailsとRustを適材適所で組み合わせれば極めて効率的なアプリケーションを構築できる」と確信しました。その後、大量データ処理や速度が必要なプログラムに利用を広げています。

なぜ、私たちはRustを選ぶのか?——3つの選定理由

上記のきっかけ以外にも、私たちがRustを高く評価している理由が3つあります。

1つ目は、Rustの「堅牢さ」です。
– 多人数開発を支える「強い型システム」: 複数のエンジニアが異なるコンポーネントを開発する際、タイプミスやデータの扱い方に対する認識の違いは避けられません。Rustのコンパイラはこうしたミスを事前に厳格にチェックするため、開発の初期段階で間違いに気づけます。
– 非同期処理の信頼性: 大量データを捌くための非同期プログラミングにおいて、最も厄介なのがデータ競合です。Rustは所有権システムによりコンパイラがメモリアクセスの安全性を保証してくれます。コンパイラが「どのデータがどこで使われているか」を厳格にチェックして実行時のメモリエラーを防ぐため、複雑な非同期ロジックも安心して実装できます。

2つ目は、ビジネスの安定性とコストに直結する「パフォーマンスの良さ」です。
– 速い実行速度による高品質なサービス提供:RustではC/C++に匹敵する速度で動作するプログラムを書けます。当社はSNSキャンペーンで大量のデータ処理や配信処理などを行うため、実行速度の速いプログラムが書けるのは大きなメリットです。
– インフラコストを押さえて高いパフォーマンスを発揮:RustはCPUもメモリも効率よく使えます。そのため、高い処理能力を維持しつつ、欲しいパフォーマンスを出すために必要なインフラコストを最小限に抑えられます。これは、ビジネスの観点からも大きなメリットです。

3つ目は、開発を支える「エコシステムが充実している」点です。
– 一貫した開発体験: 公式が提供するcargorustfmtclippy(Linter)といったツールの完成度が非常に高いのも特徴の一つです。これにより、プロジェクトごとにコーディング規約を細かく策定したり、開発環境の構築・維持にリソースを割いたりするコストを最小限に抑え、一貫性のある開発環境を迅速に整えたりできます。

エンジニアの間では「Rustでコンパイルが通ればバグがほとんどない」という言葉をよく聞きます。他の言語ではなかなか得られないこの安心感こそが、Rustを採用する最大のメリットかもしれません。

現場での実践。Rustが支える大規模SNSキャンペーンの裏側

実際の開発の現場では、高いパフォーマンスと信頼性が求められる領域でRustを活用しています。

– SNSクローラーとWebhook処理: SNSキャンペーンシステムでは、数百万規模の投稿をリアルタイムで収集・処理する必要があります。投稿の収集はREST APIだけではなくWebhookで収集するものもあります。SNSなど外部プラットフォームで発生したイベントに呼応して実行したい処理があり、イベントの発生がWebhookで通知される場合を想定してみます。受信側のサーバーは速やかにイベントを処理しなければなりませんが、Rustのようなパフォーマンスの良い言語で実装すれば即時のレスポンスができます。また能動的にデータを取得するクローラーにおいては、レートリミットを遵守しながら、最大限の効率で取得し続けるための精緻な並行実行制御が必要です。こうした「速度」と「複雑な状態管理」の高度なハンドリングをRustで実現しています。

– 即時性が求められる配信プログラム: キャンペーン参加者への即時返信など、一瞬の遅延も許されない配信処理をRustの速度が支えています。キャンペーン参加者にとって、自分のアクションに対する「即時返信」はユーザー体験の核心です。特に人気キャンペーンで参加が集中した際、大量の返信タスクを即座にさばき切る必要があります。収集フェーズと同様、配信時にも各プラットフォームの制限を考慮しつつ、最大限の効率でメッセージを送り出す必要があります。大量・即時というハードな要求に対し、Rustの実行速度が不可欠な要素となっています。

– 高負荷WebAPI: キャンペーン公開直後などの急激なアクセス集中(スパイク)が発生するWebAPIでも、Rustが活躍します。リクエストごとのオーバーヘッドが小さく、ガベージコレクション(GC)による一時的なパフォーマンス低下も発生しないため、過酷な状況下でも安定して稼働がします。一方で、私たちは「銀の弾丸」は存在しないとも考えています。機械学習の結果を利用する際にはPython、開発のスピード感を優先する管理画面のAPIサーバーにはTypeScriptといったように、要件に合わせた技術選定を徹底しています。

課題と向き合い、コミュニティと共に歩む

もちろん、Rustの導入には学習コストが高い、工夫しないとコンパイル時間が長くなってしまう、公式ライブラリが少ないなどの課題が伴います。
そのため、当社ではさまざまな取り組みを行っております。学習コストについて、Rustに詳しいエンジニアによるコードレビューやペアプログラミングをいつでも受けられるようにし、組織的に学習をサポートしています。また、Rustをテーマにした勉強会を継続的に開催することで、個人に閉じない形で組織全体のレベルアップを図っています。コンパイル時間についてはCI/CDでキャッシュを最適化をしています。また、足りないライブラリは自作してOSSとして公開しています。特に私はSNS関連のAPIのラッパーについて書くことが多いです。そのほか、Rust.Tokyoへのプラチナスポンサーとしての活動やRustをテーマにした社外勉強会の開催を通じて、コミュニティ発展への寄与を目指しています。

技術への飽くなき追求が、プロダクトの信頼を生む

ユニークビジョンにとってRustは、単なるプログラミング言語の一つではありません。「堅牢な設計」でバグを未然に防ぎ「高いパフォーマンス」でユーザー体験を最大化し「優れたエコシステム」で開発の質を維持し続ける。これらすべてを組み合わせて、初めてお客様に「絶対に落ちない、止まらないサービス」を届けられると考えています。

難解なコンパイラエラーと向き合う時間は、プロダクトの信頼性を積み上げる時間でもあります。私たちはこれからも、新しい技術への挑戦を楽しみながら、より強固なシステムを構築していきます。

SHARE

コミュニケーションを大切に、人と人との相乗効果でより良いサービスを生み出す働き方を求めて

2022.02.08

個性豊かなユニークビジョン社員の入社に至るまでの経歴や、どんな想いをもって日々の仕事に打ち込んでいるのかなどをご紹介する「ユニークビジョンではたらく仲間」。
今回は、ユニークビジョンのエンジニアとして活躍している中村 遥に話を聞きました。

未経験からエンジニア、未経験からweb業界、「モノづくり」を求めて新しいことに挑戦

ユニークビジョンに入社する前は、新卒で入社した500名ほどの規模のSIerで働いていました。下請けの仕事が多い会社ではありましたが、僕は3,4人で構成された社内ベンチャーのチームにアサインされて、自社のBtoBパッケージ製品の開発をしていました。携わっていたのは工場の生産ラインに部品を供給していくためのフォークリフトの動きを可視化する仕組みで、実際にお客様先に足を運んでヒアリングもしましたし、設計、開発、テスト、またお客様先に行って見てもらう…という風に、全部やっていましたね。

もともとは生物系の大学で修士まで行っていたのですが、博士課程に進んだり研究職についたりという道ではなく、モノづくりに関わりたいと思って就職を選びました。生物に興味を持ち始めて大学の専攻を決める前からコンピューターは好きだったので、特段経験はありませんでしたがこれを仕事にできたらと思っていたんです。
研修が長くてしっかりしているという観点で最初の会社を選び、半年間の座学や仕事の中でも沢山学んで来れました。この会社ではエンジニアもしつつお客様先にも行くという働き方でしたが、使っている人の声を聞くと実際に必要とされていると感じられるのでうれしかったですね。
求められた機能を作って喜んでもらえると、漠然と「モノづくりがしたい」と思っていた自分はこういった仕事をやりたかったんだなと実感できました。

ただ自社サービスの開発というのは自分に合っていたものの、この会社で自社サービスを作っていたのは僕たちのチームだけだったため、何を始めるにもノウハウが無かったんです。もちろんその分やりがいはありますが、それが本当に正しいのかもわからない状態で続けていくのは難しく、とても大変でした。
そんな時、広い世界の中で何でもできてエネルギーの高いWeb業界に興味を持ち始めていたので、思い切ってWebの自社サービスを開発する会社への転職に踏み切りました。Web業界への転職にあたっては、解いたプログラミング問題がそのまま転職活動のアピールになるサービスを使って勉強していましたね。数問解いたところですぐに何社かスカウトが来たので、Web業界の情報収集や、実際にその現場で働く人と話してみたいという目的でカジュアル面談をいくつか受けていました。

その時のユニークビジョンはまだ今の半分以下の20名弱しかいなかったのですが、面接で代表の白圡と話した中で、この先会社をどうしていきたいといったビジョンがとてもしっかりしている印象を受けました。当時のユニークビジョンは受託開発の割合もそれなりにありましたが、そこから自社サービスのみに切り替えていこうとしているところで、自分の考えていたことと繋がるものを感じて入社を決めました。
あとは、その時から既にTwitter事業での強みを持っていたことも魅力的でしたね。Webの業界は差別化が難しいので、会社全体として技術的に強みとなるものを持っているのは純粋にすごいなと思いましたし、500人規模から20人規模への転職でもユニークビジョンにはそこまで不安はなかったです。

人との関わり・サービスとの関わりを深めていく働き方が好き

ユニークビジョンに入社して最初は、SNS総合管理ツールBelugaのリニューアルプロジェクトで最初の設計段階から収束まで足掛け3年携わり、その後はBelugaの新機能開発をしていました。
社内でコードレビューの制度が整ってきた段階で各チームにレビュアーを置こうとなった時には、長くBelugaにいて一番仕様を把握していたこともあり、Belugaチームのレビュアーになりました。その後のプロジェクトでもレビュアーを続けています。プロジェクト立ち上げ・設計の段階から入ることが多いので、コーディングだけでなく仕様的なレビューを行うことも多いですね。

去年からはLINE上でキャンペーンを行う仕組みのBelugaキャンペーンfor LINEにて、キャンペーン結果を閲覧できるダッシュボード部分の立ち上げと開発に入りました。その後は現在に至るまで、本体部分の機能追加や実際のキャンペーン対応などを行っています。
去年の後半からはそれに並行して、「ユニークビジョンで複数回案件を実施する」ということに付加価値を生み出すCRM(顧客関係管理)や、「案件ごとの運用コストを抑える」というメリットをユニークビジョン・お客様の双方にもたらすCMS(コンテンツ管理システム)サービスの立ち上げにも関わっています。

最初のBelugaで設計段階から最後まで関わらせてもらえたのはタイミング的なことも大きいですが、その中でいろいろな経験をしたのでそれを他のサービスにも生かしていきたいという思いがあり、ユニークビジョンのエンジニアの中ではかなり早い段階からプロジェクトに関わる存在になっていますね。 一口にエンジニアといっても色々な働き方があるかと思いますが、僕は自分が関わって決めた仕様が形になって、それを使ってもらうところを見ることができて…というところにやりがいを感じるので、ひたすらコーディングをしているよりも今の働き方が好きなんです。

設計は難しいですがコーディングよりも広い範囲の仕事ができますし、よりそのサービスを深く知っていけるのが魅力的ですね。Belugaでは設計が上手くいかず、その後の開発も含めて長く時間がかかってしまったという背景がありました。当然ですが設計の善し悪しはそのままプロジェクトの進行に影響を与えるので、それだけやりがいも大きいですし、学ぶことが多いです。

この働き方をしていると、サービスで何を実現するかというところからPMやディレクターと議論したり、時には実際に必要としているお客様と会話する機会を設けてもらったり、他のプロジェクトでも関係する人たちと話してみたりと、沢山の人と関わります。 設計はコーディングよりも周りの人たちとのコミュニケーションが必要になってくるフェーズですが、それが自分に合っていると感じますし、常に全体像を明確に持ちながら進められる仕事は楽しいです。前職でもお客様とよく話しながら進めていましたが、モノづくりというのはそういう仕事かなと思っています。

1エンジニアとして開発するにあたっては、なんでこれが必要なのか、何のための機能なのか、ということはとても考えますね。エンジニアがサービスに関わる上で決めないといけないことは、画面の見た目、データの持ち方など様々ありますが、そういったものは各々の好みで決めるものではありません。どういう人がどういう業務、どういう思考の流れで使うものなのかというのは出来る限り考えるように意識しています。
キャンペーンであれば、作ったものを提供するユニークビジョンのディレクター、使ってもらうお客様、そして参加してくれる一般の方々と、いろんな人たちのやり取りのを繋ぐものなので、いろんな立場に立って考えることが大事だと思っています。

現在はキャンペーンの案件対応業務にあたっていますが、今までユニークビジョンでやってきた仕事とはかなり異なっています。どちらかといえば、前職での経験に近いですね。
お客様と会議やslackでやり取りを重ね、お客様が何をしたくてユニークビジョンは何ができるのかというところを常に判断しながら進めていきます。安心して進めてもらえるベストなキャンペーンを実現するためにはこちらから曖昧な部分は残せないですし、ディレクターを挟む挟まないに関わらずお客様と対面するからこその緊張感があります。

Belugaのようにすべてユニークビジョンの中で考えながら作っていく開発色の強いものと、Belugaキャンペーンのようにどんどん変わる状況の中で対応していく運用に手を動かし続けるものと、どちらもできるのはユニークビジョンの面白いところですね。 ユニークビジョンで作っているものは現在すべて自社サービスなので、いろんなサービスをその時々で作っていけるのは働き方としてとてもいいなと思います。

ユニークビジョンは技術でお客様の要望を解決していくので、お客様がより良いキャンペーンにしていくために実現したいということは極力叶えられるよう動きますし、それが開発などの途中段階であっても随時対応していけるのはユニークビジョンの強みです。本当にすごいお客様ばかりですし案件も錚々たるものばかりなので、上手くいけばかなり面白くて影響力も高いキャンペーンになるだろうなという案件が多く、とても身が引き締まる思いです。

ユニークビジョンはTwitter社のTwitter Marketing Partnerに選定していただいていますが、Twitterに関わる技術的な部分で困ることはそうそう無いですね。入社前にも感じていましたが、これはとても大きな強みだと感じています。 今僕がメインで担当しているのはLINE側で、こちらはまだまだ大変なところもありますが、案件をたくさんいただいていくにつれてTwitter側と同じくらいまでの強みに持っていける感覚は十分にあります。

何か困ったときはいろんな人に聞いて最善策を探すことが多いですが、みんな自分が持っている技術をもったいぶらずオープンに教えてくれます。
去年、社内の有志によってプロジェクト横断で使用できるコマンド群が開発されたのですが、通常業務をこなしつつそのように各々の活動も進めていくのは、これまで経験してきた環境と比べてもかなり顕著に感じています。前職の時はみんな余力がなかったのかそういうことが全くなかったので、今の環境には技術的な活発さを感じますね。

ただ、ユニークビジョンは業界をリードしているからこそ、新しいものをリリースすればするほど難しくなっていく立場にあります。この状態でうまく生き続けるには、会社の中で何人かだけが特別仕組みに詳しくある状態ではなく、バランスを保たないといけません。 実は技術的に属人化してしまっている部分も現状では存在していて、そこは今後を考える上で解決しないといけない課題だと感じています。

会社としてのコミュニケーションを向上して、最大限に力を発揮できる環境づくり

ユニークビジョン特有の取り組みとして、部署がない代わりにプロジェクト以外の仕事をそれぞれが担う「ワーキンググループ」という働き方があり、その中で僕はコミュニケーションチームに参加しています。 最初は別のメンバーが社内の連絡ツール導入を推進するために作っていたチームを引き継いで、社内のコミュニケーション改善に取り組んでいます。

コミュニケーションという言葉の意味は広いですが、会社としてコミュニケーションに求められることは、会社という大きな人の集まりの中で一人ひとりの力を真に発揮できる状態にもっていくことだと思っています。何人かの人が集まった時、1+1は2に満たないこともあれば、相乗効果で大きな力になることもあります。2にならなくても、一人では見えなかった景色が見えてくることもあります。コミュニケーションチームとしては、この1+1でできることを理想の状態に近づけていけるように動いています。

現在は毎月アンケートを実施して心理的安全性を調査したり、ソーシャルキャピタル、つまり社内の関係性の可視化を進めたりといったことを軸にして、それぞれの数値を改善するため、その時々で必要な施策を考えて取り組んでいます。 こういった要素は会社を進める中で置いて行かれてしまいがちですがとても大事なことなので、ただ施策を打つだけでなく考えていることもみんなに伝えて、コミュニケーションの重要性の啓蒙にも重きを置いています。

ユニークビジョンにはOPEN&FLATという指針があり、何においても決断が早く、それにより動きがとても早いです。何か新しくやりたいということだったり、プロジェクトの再編成だったり、人員配置も一週間前に告知されたものから変わっていたりします(笑) それは、その時々で最善が変わり、柔軟に対応していっているということなのだと思います。無駄にだらだらと同じことをするのではなく、その時必要なことに集中することができるのでとてもいいですね。
部署という概念もないので、会社全体で適材適所の配置ができるのは会社・個人双方に良い環境だと思います。ワーキンググループも強制ではなく、声をかけられたり希望者が手を上げたりして進めるチームですし、会社をこうしていきたいんだ!という気持ちがある人には実現しやすくて向いている環境です。

OPEN&FLATかつ50名ほどの今の規模感というのは、誰にでも話しかけやすくてプロジェクトを円滑に進めやすいですね。Belugaの開発をしていた時はリニューアル前の仕組みもあって完全な0からのスタートではなかったのですが、Belugaキャンペーンfor LINE以降では新しいことを決めないといけないことが増えつつも、やはり自分一人で完全に決められないことも沢山あります。上下関係や部署がなく、エンジニアとディレクターの隔たりもないユニークビジョンの環境では、いろんな人とざっくばらんに会話ができるのがありがたいです。

この状況をいかに維持していくかも、コミュニケーションチームの頑張りどころだなと感じています。今年からオフィスが移転して2倍の広さになり、コミュニケーションに良くも悪くも変化が生じています。会社規模自体の拡大も見越してのオフィス拡張なので、このタイミングはコミュニケーションの観点で転換期なのかもしれないと感じています。

コミュニケーション改善の一環…というわけではないですが(笑)、個人的に登山が趣味で、会社のメンバーを募って時々山登りに行っています。
同じ体験を共有すると自然と仲良くなりますし、普段の仕事では見られないメンバーの一面が見られたり、プロジェクトではあまり関わり合いのないメンバーと交流出来たりして、とても有意義だと感じています。回を重ねるごとにメンバーが増えてきているので、もっといろんな人に参加してもらえたら嬉しいですね!

個々にリーダーシップを発揮し、巻き込みあって新しいものを作っていきたい

ユニークビジョンに入社した時から、アサインされたプロジェクトではそれぞれ最初から最後まで関わらせてもらっていますが、安心して0から100まで任せられて、このプロジェクトといえば中村遥が頑張っていたよね、と認識されるくらいの存在になりたいなと思っています。
一人でできることは限られているのでうまく周りを巻き込みながら、関わるメンバーにとって新しいことができて、サービスとしても今までにないものが作れたら最高ですね!
会社もますます大きくなっていく段階ですが、チームメンバーだけでなく社内のいろんな人としっかり繋がりを持っていられる人でありたいです。社内の誰にでもすぐに相談に行けて、自分にも気軽に来てもらえる状態でいたいです。

気が付いたら僕ももう古株の方になっていて、OPEN&FLATを掲げる会社ではあるものの先輩と言われる立ち位置ではあるので、若手エンジニアに与えうる影響も考えるようになってきています。
見られる側の立場として、自然と模範になれたらと思って意識して仕事を進めているところはありますね。困っているときに、技術のことでも仕事のことでもなくても、相談相手になれる人でありたいと思っています。

ユニークビジョンで大事にしているOPEN&FLATという考えにおいて、FLATな会社でいられる最大は100人ほどだと聞いています。なのでそれくらいの規模感にはすぐに達していくのだと思いますが、その規模になってもみんなの気持ちにムラがなく、同じくらいの熱量を共有していける会社を目指したいですね。
動きが早くてどんどんサービスを作っていくベンチャーらしさは保ちつつも、業界をリードする存在であり続けたいと思っています。

短期的には、今関わっているBelugaキャンペーンfor LINEをBelugaキャンペーンと同じくらいにまで成長させたいです!CRMやCMSもそこに寄与できるサービスだと思うので、どちらも全力で推し進めていきます。

ユニークビジョンの環境にマッチする人は、会社の指針にもある通り、リーダーシップを持っている人です。個人的には、リーダーシップを個々が発揮するからこそ、OPEN&FLATな環境が成立すると思っています。
何かこうしていきたいという信念があって、それを周りに伝播したり共有したりして進めていける人と一緒に仕事をしていきたいです。想いがないのも困りますが、自分の信念だけでコミュニケーションなく突き進まれてしまっても、それは会社として1+1=2にならないと思っています。
個人個人ではなく、会社だからこそできることに取り組んでいきたいです。

一緒に話すことでお互いに気づきを得られたり、各々が持つ良い者が組み合わさることもあると思います。これはディレクターでもエンジニアでも変わらず共通して大事だと思っています。
ユニークビジョンには個性的なメンバーも多いですが、そういう意味では個性や特色の強い人と働けたら、刺激的で面白いですね!

SHARE

【CTOインタビュー】”泥臭さ”と”瞬発力”で成長し続けるユニークビジョンの技術

2021.02.05

個性豊かなユニークビジョン社員の入社に至るまでの経歴や、どんな想いをもって日々の仕事に打ち込んでいるのかなどをご紹介する「ユニークビジョンではたらく仲間」。
今回は、ユニークビジョンの創業メンバーでありCTOを務める青柳 公右平に話を聞きました。

ユーザに使いやすいものを作りたい

大学を出てエンジニアとして働き始めた当初は、ソフトウェア会社で翻訳ソフトの画面側を作っていました。その当時から「使いやすいものを作りたい」という気持ちが大きかったので、例えば翻訳する画面では横に並んだ翻訳元と翻訳先の両方を、真ん中のスクロールバーで同時にスクロールしていくようなUIを開発しました。その後、他の会社でも同様のUIが作られていったのには驚きましたね(笑)

この仕事は1年ほどで、次は大手企業のUI研究部署に行きました。ここではweb上で3Dモデルのキャラクターと触れ合うシステムに携わり、ここでも画面側をメインで担っていました。web上で3Dモデルを動かすことは今でこそ当たり前ですが当時はとても先進的なことでしたし、ユーザーの行動に合った反応ができるようにキャラクターの動きを作っていくのは今で言うチャットボットのようで、ゲームみたいで楽しかったです。

ただそういった仕事をしていく中で、作ることはもちろん楽しいもののITを軸に新しいことをやりたいと思い、ITコンサルの会社に転職しました。代表の白圡やCOOの菊池と出会ったのはこの会社ですね。当時は会社の一同僚、という関係でしたが。
技術だけではなくもっと幅広くITに触れていきたいと感じていたので、様々な分野の研修に参加していました。実際に配属されていたのはR&Dの部署だったのですが、プロジェクトにベタ付きではなかったこともあり、時間をやりくりして当時500人くらいのメンバーの中でも研修には最も多く参加していました。

部署の中ではリポジトリツールの開発に携わっていました。元々は他の部署で作られたものを引き継いだ形でしたが、それを改善したり全社で使えるようにしたりという部分です。全社統括的な部署だったので、今現在の、他のエンジニアにアドバイスしたりレビューしたりといった業務には通ずるところがありましたね。

仲間に惹かれて加入したユニークビジョンで感じた”今までなかったものが生まれる予感”

その会社でやっていくのも楽しかったのですが、断片的なところではなく初めから自分で作ればもっと良いものを作ることができると思い、フリーランスに転向しました。自分で会社を興すつもりはなかったのでそういった道を選んでいましたが、その後ユニークビジョンを立ち上げた白圡と菊池に声をかけられたので加入することにしました。それまで働いてきた会社や関わった人たちの中で色々な社長を見てきましたが、白圡はその中でも一番良い社長像だなと感じていたのでユニークビジョンへの加入を決断しました。

正直、当時のユニークビジョンと比べたらフリーランスの方がよほど稼げてはいたのですが、この二人となら今までなかったものが生まれるような予感がすごくあったんです。既存のものの拡張などではなく、一から自分たちで新しいものを作れると思いました。技術者は実質自分だけでしたし、かなり大変になるだろうとは思っていましたが、同時にこのメンバーならそれも何とかなるだろうとも感じていました。今思うと、現時点では実際に何とかなってきましたね。ここから先でまた大変なことがあるかもしれませんが…(笑)

ユニークビジョンの一員として働き始めてから、最初はエンジニアが僕一人だったのでもちろん技術面についてはコードの一行一行、隅から隅まで完璧に把握していました。大きなトラブルは特にありませんでしたし、何か小さな問題が起きてもすぐに解決できていました。割と規模の大きい仕事もこなせていけていたので、それは人数が増えても変わらないことだと思っていたのですが、エンジニアを増やして複数人で開発するようになると、品質を保つことが本当に難しくなってしまいました。一人なら自分の集中的な頑張りでなんとかなってしまうことも、チームで動いていたらそういう訳にもいきません。

会社やプロジェクトの規模が大きくなるにつれて、会社として出来るものは増える反面、品質の担保が難しくなるということを身をもって体感したので、今では全体的な品質を横断して見るようにしています。ユニークビジョン全体としてもそういった経験から、品質チームやレビューチームなど、様々な細かい視点からチェックするようにしています。

失敗を繰り返して自分なりのメソッドを確立した、エンジニアとしての信条

CTOとして第一に考えていることはもちろん、プロダクトをきちんと作るということです。早く、品質良く、というのが大前提です。ユニークビジョン加入当初の自分一人のパワーで乗り切るという形ではなく、人が増えて選択肢も多くなった中で、チームやプロジェクトとして同じ目標を達成する方法を常に模索しています。

あとは「同じものを二度書かない」ということもかなり大切にしていますね。同じことを二度書くことは単純に時間も倍かかるということなので、早く作るということの延長でもあります。二度書かないように共通化することになりますが、きちんと共通化ができているとバグが発生しにくくなり、それもまた早く作れることに繋がります。

ただ、共通化や抽象化の線引きは今でも難しいですね。共通化や抽象化をやりすぎると、なんでも受け入れられるお化けのようなものが出来上がります。なんでも出来ますがその分パラメータが大量になり、何の為に存在しているものなのか分からなくなってしまいます。共通化を全くしないのはもちろん良くないですが、やりすぎても弊害が出て来てしまうんです。

この辺りは経験というか、試行錯誤していくうちにバランスを掴んでいくものだと思います。最初から共通化を気にしすぎて遅くなってしまっては意味がないので、僕はまず一気に書いてみて、二度書くタイミングが出て来たら共通化するようにしています。たくさん経験して、たくさん失敗して、この考え方に落ち着きました。設計の本をたくさん読んで論理的に自分のやり方を身につける人もいるかとは思いますが、僕は頑固なので自分で失敗を経験して納得する方法が合っていたんだと思います(笑)

良い考えだなと思っているのは、Perlの作者が提唱している「プログラマの三大美徳」です。怠惰、短気、傲慢、この三つが全てあると良いプログラマだとする考え方です。

まず怠惰だと、いかに楽をできるかという観点で全体の労力を減らすための努力ができます。僕も面倒くさがりなので同じものを二度書くことは無駄だと思っていますし、何度も同じ作業をしたくはないと思っています。その考えから、例えばデプロイ作業を繰り返さなくて良いようにDevOpsチームで自動化を推進するなど、会社全体での活動にも繋がっています。

次に短気というのは、ちょっとしたことにも怒りを覚える気質なので、すぐに改善すべく対応し、瞬発力が高くなるので良いプロダクトになっていきます。

最後に傲慢だと、自分の書いたコードに絶対の自信を持っています。そのためには指摘の余地なく完璧で綺麗なコードを書こうとする努力を惜しまないので、これも結果的に良いプロダクトになっていきます。

どれも言葉自体は悪いですが、エンジニアとしては良い気質なんです。今改めて考えてみると、ユニークビジョンの中でも特に技術力の高いエンジニア達には共通している気質だなと思いますね。

ユニークビジョンが高い品質を提供し続けられる秘訣は”泥臭さ”と”瞬発力”

ユニークビジョンの技術的な一番の強みは、この規模としては非同期プログラミングやパフォーマンスの良いシステムなどでとても速さが出せていることと、Twitterをはじめとする各種SNSなどのAPIを長年使い続けてきたことで積み重ねられたノウハウにあります。
APIについてはただ与えられるまま普通の使い方をするだけではなく、どうしたら最大限に活用できるか考えたり、万が一APIが動かなくなっても自分たちの技術でカバー出来る仕組みを用意したりと、かなり試行錯誤しています。泥臭くてもここまでしっかり要求を実現する方法にたどり着くことができるのは、なかなか難しいことだと思いますね。

どちらも、在籍しているエンジニア陣の成長意欲がとても高く、積極的に動いてくれているからこそ可能になっています。メンバーが積極的にアイデアを出しあったり、活発に技術的な議論が行われていたりと、会社としては今が過去最高に良いチームを築けているなと感じています。

プロダクトとしては、保守性の高さが自慢できるところですね。例えばTwitter上で施策を行う仕組みである「Belugaキャンペーン」ですが、様々なジャンルの企業様からお話をいただいて行う施策は本当に千差万別です。しかし、どんなことを要求されていても全て実現できています。動的にプログラムを追加する独自の仕組みなどもあり、色んな部分で柔軟に要求を吸収できる仕組みになっているんです。

柔軟性が高いということは、先まで見通して考え、問題を先回りして解決していくということです。開発しているその時だけでなく、後から開発する時のことも想定して負債を残さないように考えて作っています。先々までしっかり考えるとその分工数もかかってしまうのでバランスも考えつつではありますが、保守性を上げることは後の工数を減らすことに繋がるので、大事に考えています。

この「Belugaキャンペーン」が少し他と違うのは、かなり高い瞬発力が求められ続けるという点です。実際にそれぞれのお客様に使っていただく期間は一回一回が短いものの、利用頻度は高く、施策の度に全く異なる様々な要求があるんです。様々な問題をかいくぐりながらも泥臭くやり遂げる力や、そのためのベースとなる要求に素早く対応する瞬発力は、ユニークビジョンならではの強みだと思います。
他の会社では見たことがないですし、僕の開発人生でも無かったですね。これだけ頻度高く、すごい量の機能開発をしていることは、エンジニアにとっては面白く感じる部分だと思います。

時代とサービスに合わせた柔軟な技術選定

ユニークビジョンでは創業当初から今まで、いくつかの技術を移り歩いてきました。最初に作った「Beluga」ではFlashだったりPHPだったり、色々な技術を使って沢山失敗してきましたね。創業当初は受託事業が多かったこともあって、書きやすくて人も集めやすいPHPを主に使用していました。しかし会社も発展し始めて受託事業の割合が下がってきたタイミングで、当時のPHPではなかなか痒い所に手が届かず、根本的な部分に手をかけることができないところに不便さを感じていました。制約が多く、自由度が低かったんです。

それからは次から次へと様々な技術に手を出してみていたのですが、会社としてきちんと習熟した言語を持とうと考え、Rubyに集中することにしました。Rubyでは根本的な部分にも手が届きますし、コードに手を加えず差し込みで対応できるくらい柔軟性も高く、少ない量で楽にかけたりと、良い言語だなと感じています。

ただ、Rubyではなかなかパフォーマンスが追いつかない部分があり、今は徐々にRustに切り替えていっています。Rubyではサーバーごと落ちてしまっていたものもRustでは数分で返ってくるなど、かなり恩恵は感じていますね。最近はユニークビジョンとしても世間的な流れとしても、静的型付け言語の方が良いのではないかという考えになってきていることもあり、RustとTypeScriptを主に使用するようになっています。技術はあまり変えないようにしているつもりでしたが、結果的に見ると結構変わっていますね(笑)

幅広い領域に触れられる環境に、意思を持って取り組むエンジニアがたくさん在籍しているユニークビジョン

ユニークビジョンには、UCバークレーを卒業してAppleに買収されたベンチャー企業で働いていたり、命に関わる繊細な仕組みを扱う自動車会社で技術をつけてきていたり、AI将棋の世界大会で上位入賞していたりといった派手な実績を持つメンバーたちに加えて、些細な変化も見逃さずに安定感を発揮し続けるメンバー、新卒でエンジニアの少ないチームにジョインしてメキメキと総合力を身につけているメンバーなど、幅広く強力な視点や技術力を持つエンジニアが在籍しています。

あとは期せずして国際色は豊かになっていますね。エンジニアではベトナム、ミャンマー、アメリカ、ディレクターではオーストリアなど、世界中からメンバーが加入してくれています。海外からくるメンバーは考え方がユニークな人が多いですし、海外で働こうという覚悟を持って来ているので成長スピードやパワーが凄いなと感じます。

また、ユニークビジョンにはワーキンググループという枠組みがあるので、開発プロジェクトのエンジニアとしてだけでなく、各々の領域で力を発揮してくれている人が多いですね。色々なことが出来る環境があり、そこで意思を持って取り組んでくれるエンジニアが沢山いることは、本当に面白い環境です。
ここ数年では成長意欲が高くて積極的に発言してくれる人が増えて来ているので、それはかなりありがたいと思っています。

今後としても、問題を自分で見つけ出して対応できる人に入って来てもらいたいですね。何かに乗っかるだけでなく、自分で動く人と一緒に働きたいです。
考え方としては、この技術が何を解決するためにあるのかという本質を考えることが自然にできる人だと、ユニークビジョンの考え方とマッチするかなと思います。
この言語がやりたい、この技術がやりたい、ということがベースになっていると手段が中心になり本質からずれて来てしまうので、その時々で適した技術を考えられるような、ものづくりが好きな人に入ってもらえたらと思っています。

SHARE

【ワーキング・グループ紹介】メンバー主体で会社全体のコミュニケーションについて考える

2020.08.30

ワーキング・グループ」とは、メンバーが自分の興味・関心がある技術や、社内の改善点について提案すると、日々の業務時間内でその研究・議論を行うプロジェクトチームをつくることができる、「OPEN & FLAT」を掲げるユニークビジョンで大事にしている取り組みの一つです。

事業企画や採用・広報など、普通の会社だったらそれぞれの部署がありますが、ワーキング・グループとしてチームができることで、「部署が無い=固定した役職者を作る必要が無い」ため、組織がフラットになり、”偉い人”が生まれない仕組みになっています。
”偉い人”がいない、良いことを言う人の意見がフラットに取り上げられる環境を作ることで、メンバー全員がオープンに課題にフォーカスした発言をできるようになり、ボトムアップで会社全体のパフォーマンスが最大化されると考えています。

***************************************

今回は、私、ベルーガがユニークビジョンのワーキング・グループの1つ、コミュニケーションチームについてご紹介します!

コミュニケーションチームのメンバー3名に話を聞きました。

ー初めに、コミュニケーションチームの役割について教えてください。

中村 (遥):コミュニケーションチームは、社内のコミュニケーション活性化を目的に活動しています。
もともとは社内の情報共有の仕組みを整備する事を目的として始動したのですが、最近は更に踏み込んで、企業文化の醸成やコミュニケーションの質・量の向上まで関わっていきたいという思いで活動しています。堅い話をするとこんな感じですが、活気のある状態、イメージとしては”常に文化祭の前日の様な状態(笑)”が理想だなって思っています。みんなそれぞれ役割を持って働いているので、それぞれが自分の立ち位置で知恵を出し、協力し合って前に進んでいける組織が作れたらと思いますね。

ー最近、『Belpoi』の導入や『つながりアンケート』の実施など、新たな働きかけを積極的に行っていますが、その背景について教えてください。

中村 (遥):『Belpoi(社内いいね制度)』(Belpoi:社内の誰かの「いいね!」を見つけたら、「belpo」を贈ろう!という取り組み。ユニークビジョンはslack上でこのやりとりを行っています。名称はユニークビジョンの主力サービス Beluga Pointから来ています。)は、かなり前からピアボーナスを送り合うという仕組みに注目していて、同じ様な感じで社内の色々なメンバーが脚光を浴びれるような仕組みが作れたらいいなあと思い、自社に合う形に変化させて導入しました。

ユニークビジョンでは、メンバーが心身共に健康な状態で働けているか調査するアンケートを定期的に取っているのですが、その中で特に「心理的安全性」(みんなが安心して自分の意見が言える環境かどうか)に関する項目を注視していて、直近のテーマとしてこのスコアの向上を掲げています。

それにあたり必要な要素として、”自分のありのままの状態が組織に受け入れられている”という認識が大切なので、その醸成が『Belpoi』の目的の一つです。また、単純にメンバー同士が日常的にポジティブなことを言い合える状態って良いと思うので、それも目的の一つとして運用しています。送られて嬉しいだけでなく、送る側もBelpoiを送るために、仕事をしながら他の人の良いところ探しを習慣としてすることが出来るというメリットがあり、双方に良い影響を及ぼすのではないかと思っています。

今、導入して5カ月位経っていますが、最近は業務の中で「ありがとう。後でベルポ送るねー!」なんていうコミュニケーションが見られるようになったりして、少しずつ浸透が見られ嬉しいですね。もっともっと利用する人が増えて、良いやり取りが増えたら嬉しいですね。

中村(沙):Belpoiのチャンネルでの他の人のやりとりを見て、普段仕事での接点が少ないメンバーの動きを知るきっかけにもなっていたりして、新たなつながりがそこから生まれてくれたらいいなと思いますね。

矢内:もう一つ最近始めた取り組みとして、『社内でのつながりアンケート』というのがあります。
社内の他のメンバーとどの位の深さで繋がっているのか、つながりの深さを数値化し、個人・会社全体でどの様に推移していくのか今後モニタリングしていく予定です。現状、コミュニケーションに関して大きな課題があるという理由で実施している訳ではなく、こういったアンケートを足掛かりに、より強固な組織づくりが出来たらという目的でやっています。

ーすごくアグレッシブに活動しているイメージですが、活動のヒントとなるものはありますか?

中村(遥):色々な情報を参考に、取り組みに活かしていますね。それこそニュース記事を見たり、他社の事例を参考にしたり。自社でも応用できる部分が無いか日々意識しながら情報収集していますね。それと、なるべく社内の色々なメンバーとコミュニケーションを取るようにして、アンケートなどのデータに頼りすぎず、自分の肌感覚でも組織の状況を感じ取れるよう意識していますね。

中村(沙):私も、知り合いの会社でどんなことをしているのか、常にアンテナを張るように心掛けていますね。それで、面白い話が聞けたら具体的に調べて、それをチームに共有してみんなで検討出来るようにしています。

矢内:私は採用チームも兼務しているので、採用とつながる部分で何か参考になる情報が提供できないか、常に考えて動いていますね。逆にコミュニケーションチームから採用に役立つ情報があったら、採用で活用するということも意識していたりします。

中村(沙):私たち個人がそれぞれ考えてっていうのもありますが、代表の白圡もメンバーなので、白圡が面白い情報を提供してくれたりというのも新しい取り組みのきっかけになったりしますよね。

ーチームの活動はいかがですか?

中村(沙):正直、メインのディレクター業務の傍らでやっている活動なので、忙しい時はしんどいですね。最近熱が入りすぎて、若干やりすぎ感があるかな、って思うくらい頑張っています。ちょっとメインの業務を忘れちゃっているような…(笑)

好きだから苦じゃないんですけれど、限られた時間の中でコミュニケーションというなかなか難しいテーマについて考えるので、責任重大だなと思いながら頑張っています。
今は大変な思いで取り組んでいますが、頑張ったら頑張った分だけ組織コンディションに反映されて、より良くなると思っているのでそれを励みに頑張っています。

矢内:私はコミュニケーションが苦手なタイプなので、苦手な側の視点で考えるという立ち位置で貢献出来たらなと思って活動に参加しています。それと、自分自身がまずは動くというか、どうやって個人としてコミュニケーションの量・質を上げられるかなということ意識するようにしていますね。

中村(遥):コミュニケーションの問題って目に見えるものじゃないので、気付きにくいですよね。変化にも気付きにくい。なんとなくとらえている人が多かったり、人によって解釈や反応が分かれるので、とても難しいというのが取り組んでいての印象です。

ただ、仕事を円滑に進めるうえで重要なスキルだと思うので、苦手だから…などの理由で尻込みするのではなく、必要スキルとして頑張って伸ばしてもらいたいなと思っています。これからサポートする方法としてハウツーの発信なども行っていきたいですね。

一今後目指すところ、今後挑戦したいことがあれば教えてください。

中村(沙):やっぱり、私たちが居なくても社内のコミュニケーションについての課題感が無い状態、私たちが卒業できる状態っていうのがベストな状態だと思うので、それを目指して頑張っています。
私たちが下地を作ることによって一人ひとりの意識が変わって、会社全体の雰囲気がより良く変わってくれたら嬉しいですよね。

中村(遥):確かに、コミュニケーションチームが存在しなくてもコミュニケーションが円滑に取れている状態っていうのが理想だと思うので、卒業が最大のゴールですよね。

ちなみに、直近での課題と言っても、ユニークビジョンの場合、メンバー全員がみんな本当に良い人で、現時点でネガティブなコミュニケーションを取る人がいたりなどの悪い要素は無くて、コミュニケーションの量・質を更に上げたいというだけなので、もしかしたら他の会社さんに比べたら恵まれているのかもしれないですね。いわゆる「上司と部下」みたいな関係も無いので煩わしいコミュニケーションも無いですし。

そんな感じで、その時々必要な事を正しく認識し、みんなの行動が変わるようなことを引き続きよりクリティカルな視点で考えていきたいですね。最近は新型コロナの影響で、社内のランチ会や通常行っているイベントが出来なくなったり制限があるので悩ましいところですが。。

矢内:本当にうちの会社は他の会社に自慢できるほど、良い人しかいないですよね。私も採用でお人柄はすごく重視して見させて頂いているつもりですし。ひとつの”ユニークビジョンらしさ”と言えるかもしれないですね。今後”ユニークビジョンらしさ”みたいなところをもっと掘り下げて、言語化出来るようにして、コミュニケーション活性化のヒントにしていけたらというのも考えています。

中村(遥):仕事の中で上手く先に進められなくなる瞬間とか、誰しもあると思うのですが、そういった時にコミュニケーションの下地が出来ていると、誰にも助けを求められないとかそんな事が無く、近くの人に相談してパッと解決するという事がしやすくなると思うので、我々コミュニケーションチームがそのサポートをまずは出来たら良いなと思います。”文化祭の前日の様な状態”が目標なので、更に近づけるべく、活性化、頑張っていきたいと思います!(笑)

***************************************

ユニークビジョンでは、社内コミュニケーションに限らず、それぞれのテーマに沿ってメンバーが中心となって活動しています。こういった活動に興味を持たれた方は是非、お気軽にご連絡ください!

SHARE

規模が変わっても変わらない。それぞれが自身の強みを発揮し、良いサービスを追求する環境

2019.11.18

個性豊かなユニークビジョン社員の入社に至るまでの経歴や、どんな想いをもって日々の仕事に打ち込んでいるのかなどをご紹介する「ユニークビジョンではたらく仲間」。
今回は、入社7年目で通期MVP受賞経験5回を誇る敏腕エンジニア、高瀬 憲祐に話を聞きました。現在はBelugaキャンペーンの開発を担当している高瀬。ユニークビジョンの創業直後から現在までを振り返り、感じることについて語ってもらいました。

面接時のメンバーは5名。原宿のアパートの一室からスタート

私は2012年に入社しているのですが、当時の社員数は確か7、8人でしたね。面接時はもっと少なくて5人だったと思います。オフィスは原宿にありました。今のオフィスの前の前の前のオフィスですね。普通のアパートの一室という感じで、広さは今のオフィスのカフェスペースよりも狭かったと思います。

ユニークビジョンに入社する前はコンピュータ組立工場での生産技術の業務や、ソフトウエア製品のテクニカルサポートなどを経験してきまして、直接ソフトウエア開発に携わるようになったのはユニークビジョンに入社してからになります。

私は会社の規模にはこだわりが無いタイプで、終身雇用してほしいとかそういう希望も無いので「ソフトウエアの開発に携わっていきたい」という思いで、当時面白そうな会社だなと感じたユニークビジョンを選んだ記憶があります。

入社後7年で社員数が約8倍!急成長しながらも大切にしていること

入社当時はベルーガの開発をみんなで行っていましたね。今の開発メンバーの1チームが会社全体という感じでした。また、ディレクターも今は7名いますが、当時、ディレクター的な動きをしていたのはCOOの菊池1人だったと思います。

今は分担して行っている仕様決めから開発テストまでをみんなでやったりもしていました。一つ一つの仕事をみんなで一丸となってやっていた感じです。人数が少なかった分、それぞれ色々なことをやっていましたね。開発メンバーはCTOの青柳を中心に若手メンバーが青柳の指導を受けながらそれぞれの業務にあたっているような感じでした。今は青柳以外にも主力メンバーがいるので、それぞれが若手の育成支援を行うような体制に変わりました。

私が入社してからの7年で入社当時の5名から現在の40名ほどまで社員数も増えましたし、オフィスもそれに伴いどんどん大きくなってきたりと、改めて変わったなと思います。当時受託案件が大半を占めていたのも、今では受託案件がほとんど無い状態になっていたりと案件の内容も変わりましたしね。
すごいスピードで成長してきたなと思います。

常にクライアントやその先にいるユーザーのメリットを第一に考える。それぞれが自身の強みを発揮し、良いサービスを追求

短期間で急成長してきましたが、本質的なところ、企業として大切にしてきたことは変わっていないような気がします。体制やその時々の状況に合わせてやり方は違いますが、常にクライアントやその先にいるユーザーのメリットを第一に考えてやってきました。開発メンバー、ディレクターが相互で協力してどんどん良いサービスが作れるようになってきています。

私自身がいつも意識していることは、どんなに小さな案件でも万が一の事態に備え、基本的な確認作業を怠らないということです。過去の仕事の経験から”世に出すものは完全なものを提供するのが当たり前”という考えで仕事に取り組んでいるので、どんなミスも見逃さないよう注意するだけでなく、少しでも早くその兆しに気付けるよう心掛けています。細かい話ですが、自分が関わっていないプロジェクトでも定期的にサーバーの状態を確認するようにしたり、エラーメールなども見逃さないようにしています。
小さいことかもしれませんが、入社から今までこだわりを持ってやってきたことの1つです。

私はそういうこだわりを持って、それを自分の強みとして働いていますが、他のメンバーもそれぞれ個々の強みを持っていて、その多様な強みの集合体がユニークビジョンだと思いますね。当事者意識や向上心の高いメンバーが多く、それが会社全体としての高い技術力を支えていますし、会社もそれを更に伸ばせるよう「自己研鑽フライデー」や「技術勉強会」などの制度を通じて応援してくれています。

また、それ以外にもユニークビジョンは、自分が得意な事や新しく挑戦したいことを発信すると積極的にプロジェクトの中に取り込もうとしてくれる、挑戦を応援してくれる文化もあります。
各々が主体性を持って動く、これは昔から本当に変わらないですね。
クライアントや世の中にお返し出来る価値が大きくなることに関してはリスクがあっても挑戦するという風土が昔からあります。この価値観は今後も大切にしていきたいなと思っています。

これまで高い技術力を武器にサービス開発を行ってきたのですが、”どんな技術を使ってどんなものを作ってきたか”ということをあまり社外に発信できていなかったので、今後はそういったことをもっと発信していけたら良いですね。

先にも述べましたが、向上心の高いメンバーが多いので誰かが働き掛けをしなくても、新しい技術をどんどん取り入れ、サービスに反映していく”攻め”の姿勢は今十分にあると思います。ミスを減らすなど”守り”の要素を今後更に強化出来れば会社としてもっと強くなると思うので、品質に対する意識をもっと上げて、より良いサービスを更に世の中に送り出していきたいですね。

この記事を読んで、ユニークビジョンについて気になった方はぜひお気軽に会社に遊びにいらしてください!

SHARE