サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
やろう!確定申告
tech-blog.cluster.mu
クラスターの最古参社員、エンジニアリングマネージャーのmizogucheです。 クラスターも創業9周年を迎え、4名の新卒エンジニアを受け入れることになりました。*1 今まで中途採用しかしておらず、勉強会はあっても未経験者向けの研修は存在していませんでした。 ポテンシャルに期待して採用しているとはいえ、経験の少ない方に、いきなり「いまから仕事を始めてくださ〜い!」と言ってスムーズなタスクの遂行を期待するのは不親切なので、技術研修を設計・実施しました。そこで本記事では、私がリードして設計し、5週間にわたって実施されたエンジニア向けの職種研修についてご紹介します。 多様な経験を積んでもらう2ヶ月にわたる新卒研修 エンジニア向け職種研修の設計 要件 成長を加速するためのスキルを身につけることを重視する 技術スタックを一通り経験すること 実践形式での演習を行うこと 演習用教材「Cluster Lea
こんにちは、クラスター株式会社でサーバーサイドをメインに開発している id:shiba_yu36 です。 僕は今年の2月にclusterというサービスでウィークリーランキングの機能を担当しました。clusterではユーザーが自由にゲームやアート作品などの3Dコンテンツを作りアップロードでき、そのコンテンツを複数人ですぐ遊べます。その中から人気のコンテンツを探しやすくするため、週間ランキングを開発しました。 この機能開発時に、実装をする前にPMとデータを見て試行錯誤しながら、ウィークリーランキングの目的を満たすシンプルなアルゴリズムを決めるという工夫をしました。このやり方によって、最小限の実装工数で目的を満たすランキングアルゴリズム実装を行えました。 そこで今回は実装前にどのような流れでアルゴリズムを決定していったかを書いていきたいと思います。同じような機能開発を行っていてPMとどう連携する
こんにちは。ソフトウェアエンジニアのすぎしーです。ClientCI WG (Client Continuus Integration Working Group)というclusterのクライアントアプリのCI環境を社内向けに提供するWGのオーナーも務めています。 clusterアプリではWindows版(VR含む)、Mac版、Android版、iOS版、MetaQuest版の5つが現在提供されていて、基本的に週次リリースを実施しているため安定したリリースフローが求められます。また、開発版アプリのビルドから検証までの迅速なイテレーションを提供することも、アプリの機能改善や品質向上において重要なポイントとなっています。 今回はこれらのリリースフローや開発版アプリのビルドに欠かせないクライアントアプリのCIをJenkinsからGitHub Actionsに移行して、どのような改善を実現したかにつ
はじめに パフォーマンス改善についての参考文献 実機計測 フィーチャーフラグ 計測・プロファイリング 効果見積 効果計測 おわりに はじめに こんにちは、クラスター株式会社のソフトウェアエンジニアのsotanです。今回はUnityクライアントのパフォーマンス改善の取り組みについて紹介します。ユーザーの皆さまに快適な体験を提供できるように、新機能の開発や既存機能の拡張・修正と並行して、パフォーマンス改善に取り組んでいます。具体的な改善点や改善方法を全て紹介することはできないのですが、どのような雰囲気で進めているのかを知ってもらえればと思います。 パフォーマンス改善についての参考文献 Unityアプリケーションのパフォーマンス改善に必要となる基礎知識やノウハウについては、 【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術(docswell, YouTube) Unityパ
昔のflag管理 AWS AppConfigの導入 feature flagの管理 feature flagの利用 まとめ ソフトウェアエンジニアの浦川です。 clusterではサービス開発にfeature flagが活用されており、常時10+個程度のflagが並行して使われています。 これまでflagはgoのコードとしてハードコードされていたのですが、AWS AppConfigを利用してコードを修正することなく動的に変更できるようにしました。 昔のflag管理 ハードコードされたflagは1つのstructにまとめて定義されていて // feature flagを集めたもの type FeatureFlag struct { IsAvatarXxx bool // アバターを良い感じにする IsEventXxx bool // イベントを良い感じにする // (大量のフラグ) } app
こんにちは、プロダクトマネージャー(PM)のいかりです。 今回の記事では、プロダクトに対しての社内からの不具合報告のフローを改善した話について紹介します。 「社内からプロダクト改善のために色々な声をもらっているけどどう対応しよう……」と困っているような方は何かの参考になるかもしれないので、ぜひ読んでみてください! プロダクトを安心して使ってもらうための「不具合対応」 社内からの不具合報告の既存の課題 【改善】Slackのワークフローを使って不具合報告フォームを制作 結果、良くなったところ 社内の多くの人に不具合報告フローの存在を周知できた 数ヶ月で50件近くのバグ報告があり、1〜2割はその週に解決 連絡の往復回数が減った 後からのキャッチアップがしやすくなった まとめ プロダクトを安心して使ってもらうための「不具合対応」 プロダクトの成長のためには新しい機能の提供や操作性を良くしたり、とい
こんにちは、クラスター株式会社でソフトウェアエンジニアをしているMito Memelです。 clusterでは、3D空間内でアバターモーションや音声を同期するためのリアルタイム通信サーバーをAmazon EC2上で動作させています。昨年から今年にかけて、このリアルタイム通信サーバーのリソース割り当て方法を改善し、結果として稼働しているEC2インスタンス台数を半分程度に削減することに成功しました。本記事では、clusterのリアルタイム通信サーバーが抱えていたリソース割り当て効率の課題とその改善手法をご紹介します。 背景 改善手法 まとめ 背景 アバターモーションや音声の同期のようなリアルタイム性の高い双方向通信を行う、いわゆるリアルタイム通信サーバーをスケールアウトする方法には、よくあるやり方としては2種類あります。 1つ目は、Webサーバなどと同じようにアプリケーションサーバをステートレ
こんにちは、クラスターでUnity Engineerをやっている獏星(ばくすたー)です! 突然ですが、この記事を読んでいるという事はあなたは本日クラスターに入社したUnity Engineerのはずです。 もし違う場合でも、「そうか、自分は本日クラスターに入社したUnity Engineerだったのか…」と受け入れて読んで下さい。ただし入社ツイートは無しで。 そして本記事を読んでいるあなたに朗報です。 つい先日、クラスターに入社したUnity Engineer向けの社内用オンボーディング資料として「本日クラスターに入社したUnity Engineerが読む記事」が作成されました!そのまんまのタイトルですね。 社内slackの投稿風景 クラスターではエンジニアのオンボーディングフロー改善に日々取り組んでおり、その一環として資料整備が進みました。 そこで今回は本日クラスターに入社したUnity
こんにちは。tech blog編集チームのFUKUDAです。 今年の4月頃からクラスター社のtech blogの編集を担当することになりました(普段はclusterで活動するクリエイター向けのメディアを運営しています。そちらも振り返り記事を書いているので、ぜひ!)。今年は月に2本、年間で24本の記事を公開するという目標を一応定めていたのですが、その目標はとりあえず達成できたので一安心です。 さて、クラスター社のブログは去年まではcluster公式noteで運用されていましたが、今年からこのはてなブログの方に移管しました。 この移管と私が関わることになるにあたって、tech blogの運用の仕方の試行をいくつかしました。今回の記事では、その辺りを振り返りつつ、来年の抱負を綴っていきたいと思います。 今年の運用で意識したこと 「cluster」の技術の全体像が見えるように 記事のストックができ
こんにちは クラスター株式会社で Engineering Manager(EM) をしている kurain です。 今日は、クラスターのエンジニアが参加する会議体について紹介します。会議体の作り方について長々続くので、先にまとめを書いておくと エンジニアが自律的に開発プロセスを改善できるように、会議体を3つ定義しました それぞれの会議体には権限と責務が明示されています エンジニアは自ら発案して上記の会議体を開催できるので、業務改善が上手く回っています という話です。 背景 会議体を定義する Working Group 委員会 勉強会 定義による効果 もっと効率的で楽しいリモートワークのために 背景 なぜこのような会議体の定義が大切なのか背景から話を始めましょう。 クラスター株式会社はこの3年間で社員数が約6倍になりました(上図は2023年6月時点の資料)。エンジニアの数も6倍……とはいきま
クラスター株式会社でSoftware Engineerをしている thara です。 私たちは今年、clusterのシステム分割という重要なプロジェクトを完了しました。この取り組みは、私たちのメタバースプラットフォームの進化と持続可能な成長にとって欠かせないものでした。 本記事では、システム分割の技術的なアプローチとその過程で直面した課題とプロジェクトの結果について説明します。 背景 解決策 システム分離プロジェクトにおける課題 課題を解消するための実施手法 Gatewayによる隔離 dual writeによる段階的移行/dual readによる差分検証 状態スナップショットによる差分検証 諦めの局所化 分離プロジェクトの結果と反省 今後の展望 背景 clusterがリリースされて6年が経過しました。 prtimes.jp 当初はバーチャルイベントプラットフォームとして展開されていましたが
はじめに きっかけ Managed Stripping Levelを変更する際の課題 Reflection APIを使っているコードが動かなくなる 既存のワールドが動作しなくなる 並行開発中のコードが壊れる Roslyn Analyzerを導入する Roslyn Analyzerの運用上の問題 結果とまとめ はじめに こんにちは、クラスター株式会社でソフトウェアエンジニアをしているhomulerです。 (入社の経緯は4コマになっているので、ぜひそちらも参照ください) clusterのアプリはUnityで作られているのですが、先日、apkのサイズ対策も兼ねて、ビルド時の設定の一つであるManaged Stripping Levelをlowからmediumに変更しました。必要なコードがstripされてしまう可能性があるため、リリース済みのアプリのManaged Stripping Levelを
はじめに 通知機能の概要 設計の話 さまざまな通知内容に対応するための仕組み 未読通知の管理 通知をまとめる仕組み その他工夫したこと 通知を追加する方法やポイントをドキュメント化 データの有効期限を設け、データ量が爆発したときにスムーズに消し込みするための対応ができるようにした まとめ はじめに クラスター株式会社でサーバサイドエンジニアとして働いているえんじです。 今回、表題にもあるように通知機能をclusterに追加したため、そのときに工夫した点などについて書いてみようと思います。 通知機能は様々なサービスで作ることが多いと思うので、一つの事例として参考になればと思います。 通知機能の概要 まず、今回clusterに追加した通知機能がどんなものかを解説します。 今回追加したのは、ユーザーがアプリ内で特定の画面を開くことで内容を確認できる機能です。 執筆時点ではclusterのモバイル
はじめに こんにちは、クラスター株式会社でソフトウェアエンジニアをやっているid:shiba_yu36です。 クラスターではGoの自動テストをCircleCIで実行しています。入社して以降、この自動テストの実行時間が少し長いと感じたため、調査と改善を進めてきました。結果として速度を改善できたので、この記事でGoの自動テスト高速化のための調査と改善手法について共有したいと思います。 はじめに Goの自動テストで課題だったこと 最終的な結果 自動テスト高速化の流れ テスト実行時間のボトルネックを調査する CircleCIのTIMINGタブで大まかなボトルネックを調査する make testのボトルネックを調査する 高速化でやるべきことを決定する 1つずつ改善し結果を計測する go generateの成果物をレポジトリにcommitし自動テスト上では実行しない: 2分短縮 ビルドキャッシュを用い
こんにちは!クラスター株式会社でソフトウェアエンジニアをやっているTAATです。 今回はiOSDC Japan 2023にスポンサーセッションで登壇させていただきましたので、久しぶりのオフライン参加の様子や発表した内容について紹介します。 iOSDC Japanとは? iOSDC Japanは年に1回開催されるiOS関連技術をテーマとしたデベロッパーのためのカンファレンスです。コロナ禍になってからオンラインのみの開催となってしまいましたが、昨年からオフライン+オンラインのハイブリッド開催に戻りました。オフライン会場は早稲田大学理工学部 西早稲田キャンパスで、オンラインではニコニコ生放送で配信されています。 今年は9/1〜9/3の3日間開催され、初日はday0として夕方から前夜祭とトークセッションでしたが、day1,day2ではトークセッション以外にも名物のLT大会があり、今年はとくに盛り上
はじめに こんにちは、2023/05 にプロダクトマネージャーとしてクラスターにジョインした Smith です! 入社ブログを書こうと思ってサボってたらテックブログを書く機会を頂きました、因果応報! この記事では掲題の通り、クラスターのプロダクトマネージャー組織についてお伝えしようと思います。 本記事を通じてクラスターのプロダクト開発のリアルな課題や、プロダクトマネージャーチームがどんなチームかについて少しでも伝われば幸いです。 はじめに プロダクトマネージャーってなに? 「cluster」というプロダクトの複雑さ どうしてこうなった? - 増えていく複雑性 クラスターの PM - 個の力は強いが… クラスターの PM の課題 - “チーム”になっているのか? 合宿 - 泥臭く対話してシンクロ率を高める PM チームのコンセプト 世界の中心で つくる! 伝える! モテまくる! クラスターの
序文 こんにちは、クラスター株式会社でソフトウェアエンジニアをやっている獏星(ばくすたー)です! さっそくですが、クラスターは3D空間を扱うメタバースを開発しており、Unity Engineを基盤としています。社内には20~30人程度のUnity Engineerが在籍しています。 また、開発チームは機能ごとの職能横断チームに分かれています。 たとえばユーザーどうしがつながる機能を提供するチーム(social team)はUnity Engineerだけではなく、Server、Web、iOS、Androidネイティブの各エンジニアが所属しています。 そのような人数規模とチームの構成スタイルのもと、クラスターでは基本的に単一のコード基盤をメンテナンスしています。 Unityの場合、クライアントコードがほぼ単一のUnityプロジェクトに集約されている、とも言い換えられます。 本記事では、そうし
Cluster Tech Blogの編集を担当しているFUKUDAです。 2023年7月24日(月)に行われた「はてなブログ DevBlog Meetup #1」に参加してきたので、そこで聞いたお話を今後のCluster Tech Blogの運営にも活かせればと思い、備忘録としてまとめてみようと思います。 イベントの詳細は下記 hatena.connpass.com イベントの様子は #HatenaDevBlog からご覧いただけるようです。 はじめに|Cluster Tech Blogの運営は絶賛模索中…… テーマ1:ブログの目的 テーマ2:運用のコツ(執筆者へのインセンティブ設計、継続の仕組み…) テーマ3:企業による技術ブログの価値 各社の取り組みが垣間見えるLT 終わりに はじめに|Cluster Tech Blogの運営は絶賛模索中…… 最初にCluster Tech Blogの
前口上 こんにちは。主にサーバーの開発を担当している id:Sixeight です。 クラスター株式会社ではソフトウェアエンジニアはリモート勤務が基本となっていて、多くの社員が自宅から勤務しています。普段は画面越しにやり取りをしつつ、月に一度、全員がオフィスに出社することでコミュニケーションの濃度を上げています (出社の様子)。実際に私も 大分県から遠方組としてリモートワーク をしています。 今回はすでに各社がやりつくしているリモートワークの様子をお伝えする記事をやっていこうと思います。いいんです。我々には我々のリモートワークがあるんです。 全ソフトウェアエンジニアを対象にアンケートを行い、その中からできるだけ領域や属性がばらけるように選んだ6人のリモートワークの様子をお伝えします。それぞれのこだわりの違いを感じていただけるかと思います。 皆さんのリモートワークをより加速するためのヒントが
はじめに ソフトウェアエンジニアの浦川です。 クラスターでは毎週のようにサービスへの機能追加や改善をおこなっています。合わせて、どのようにリリースしていくか、の改善も日々おこなわれています。この記事では、サーバーチームのリリースフロー改善の取り組みについて紹介できればと思います。 はじめに clusterの開発とリリースフロー 改善前のリリースフロー:部分最適化はされているが、全体最適化は...... リリースフローの改善方針 動作確認が難しい「バーチャル空間内の体験」のE2Eテストを開発 feature flagの自動テストを増やす AWS CodePipelineでリリースフロー自体を最適化する リリースフローの改善結果:サーバーリリース所要時間をほぼ1日→2〜3時間程度に/ツールのセットアップ等のサポートが不要に まとめ clusterの開発とリリースフロー clusterには、AW
昨年10月にクラスター社に加わったmt_blue81です。 Webフロントエンドをメインに施策に加わりつつ、開発環境の改善などにも取り組んでいます。 今回はWebフロントエンドの状態管理まわりの改善についてご紹介します。 clusterのweb画面 clusterはマルチプラットフォームですが、webからも様々な操作が行えるよう機能が搭載されています。 cluster.mu 大きくは以下のようなスタックでつくられています。 UIはReact + Material-UI + styled-component ルーティングはreact-router 状態管理はRedux バックエンドとのやり取りはOpenAPIによって定義 Reduxの状態管理はre-ducksパターンで構築されており、バックエンドとのやり取りもこのoperation層で実現されていました。re-ducksパターンは対象の状態
こんにちは!クラスター社でUnityエンジニアをしているNatsukiです。 今回は、私が担当したmocopi対応というepicについてお話しします。 特に、技術的負債を返済しつつ対応できたのが今回のepicの個人的なハイライトなので、そのことについてお話したいと思います。 mocopi対応とは mocopi対応する上での課題について どのように解決したのか 1. デバイスを表すコンポーネントを抽象化 2. 抽象化したクラスを用いて既存実装をリファクタ 3. トラッカーの具象クラスの1つとしてmocopiを扱う 解決編まとめ 技術的負債を理解し、それを粉砕することを許してくれる環境 mocopi対応とは mocopi対応とは、clusterのVRで(OSCを経由して)mocopiが使えるようにするというepicです。 ただ、VRと一口に言っても、clusterではPCVRとQuestスタン
このページを最初にブックマークしてみませんか?
『tech-blog.cluster.mu』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く