ミクステンド Tech Blogのフィード

https://zenn.dev/p/mixtend

月間800万人以上が利用する「調整さん」や、ビジネス向け日程調整自動化ツール「TimeRex」を開発・運営しています。説明不要で直感的に使えるUI/UXと、高い信頼性を支える技術スタックについてお届けします。

フィード

記事のアイキャッチ画像
PHPStan/Larastanの導入と運用方法
ミクステンド Tech Blogのフィード
こんにちは、TimeRexの開発を担当しているクマガイです。私たちのチームでは、現在Laravel 12へのアップグレード対応を進めており、これを機に静的解析ツールのLarastan(PHPStan) を導入することになりました。今回は、導入するにあたって検討したことや、実際に使ってみてわかった注意点などを共有したいと思います。 🎯 導入するメリットAIによる要約がわかりやすかったので、以下に貼っておきます。「実行前」にバグを潰せる(開発効率の向上)コードを実行(ブラウザ確認やテスト)しなくても、タイポ、存在しないメソッドの呼び出し、引数の間違いなどを即座に検知しま...
3ヶ月前
記事のアイキャッチ画像
   コードレビューをきっかけに排他制御を見直した話       (lockForUpdate から Cache Lock へ)
ミクステンド Tech Blogのフィード
はじめにこんにちは、TimeRexの開発を担当している馬場です。先日、TimeRexに「担当者の予定アサイン数均等機能」がリリースされました。この機能の開発では、当初想定していた排他制御の実装方針を、コードレビューをきっかけに見直す機会がありました。最終的には lockForUpdate を利用したDBロックではなく、Cache Lockを利用した設計に着地しています。この記事では、担当者アサイン数均等機能とは何か当初どのような実装を考えていたのかコードレビューでどんな課題が見つかったのかなぜ最終的に Cache Lock を採用したのかについて紹介します。...
3ヶ月前
記事のアイキャッチ画像
Dockerコンテナ内のMCPサーバーをCursorから使う
ミクステンド Tech Blogのフィード
はじめにCursor の MCP(Model Context Protocol)を使うと、AI エージェントに外部ツールの機能を追加できます。Laravel プロジェクトでは laravel-boost、フロントエンド(reactjs)では shadcn/ui の MCP サーバーが便利です。ただし、開発環境を Docker コンテナ内に置いている場合、.cursor/mcp.json にコマンドをそのまま書いても動かないことがあります。この記事では、Docker コンテナ内の MCP サーバーを Cursor から起動するために、シェルスクリプトを挟む方法を紹介します。!...
3ヶ月前
記事のアイキャッチ画像
Cursor のカスタム Subagents を、プロダクト構成に合わせて個人で分割してみた
ミクステンド Tech Blogのフィード
Cursor のカスタム Subagents を、フルスタック構成に合わせて個人で分割してみた この記事で伝えたいこと※本稿で述べる Subagents は 筆者個人の Cursor 環境に置いた設定であり、所属チームや組織として公式に採用されたものではありません。筆者が関わっているプロダクトは 単一のフロントエンドではなく、典型的な Web アプリの進化の過程として バックエンド(Laravel) と、ビルドツールやライブラリの世代が異なる 複数のフロントエンドが同居する構成になっています。この「同居」はAIに仕事を依頼するときは 前提がブレやすい弱点にもなります。そこで...
4ヶ月前
記事のアイキャッチ画像
Flutter で巨大な出欠表の複数行を横スクロール同期させる
ミクステンド Tech Blogのフィード
はじめにミクステンドでアプリエンジニアをしている上條です。日程調整アプリ「調整さん」の Flutter 版を開発していて、巨大な出欠表の複数行を横方向に同期スクロールさせる UI でそれなりにハマった時期があります。linked_scroll_controller パッケージの LinkedScrollControllerGroup を使えば一見シンプルに実装できそうなのですが、SliverList の中で使おうとすると、パッケージ本体が警告しているハマりポイントを踏みます。この記事では、実プロダクトで採用している 「ScrollController と Key をペアで管理す...
4ヶ月前
記事のアイキャッチ画像
Terraformのアクセスキー運用を見直す:AWS IAMロール + MFA(AssumeRole)で安全に実行する方法
ミクステンド Tech Blogのフィード
はじめにミクステンドでは、AWSの管理にTerraformを使っています。長らくAWSアクセスキーを使ってTerraformを運用していましたが、AIの登場とともにセキュリティの懸念が新たに出てきました。そのため、IAMロール + MFAを用いてTerraformを運用する方法へと変更しました。この記事ではその方法を紹介します。 まとめ最初に方法のまとめです。前提として、AWS IAM Identity Center(旧AWS SSO) は使わない方針です(運用の都合により)。Terraform 用 IAM ユーザを各メンバーごとに用意し、付与するのは後述のロールを...
5ヶ月前
記事のアイキャッチ画像
調整さんが爆速になった話(PCトップページ部門)
ミクステンド Tech Blogのフィード
爆速のメリットサイトがサクサク表示されると離脱率が下がり、ECサイトなら売り上げ増大、コンバージョン率の向上など、その他指標でもウハウハになると Google がおっしゃっていました。 計測方法PageSpeed Insights が有名です。下記は調整さんの計測例となります。PageSpeed Insightsでの調整さんの計測例このURL は、そのページのみのデータオリジン は、そのドメインのすべてのページでのデータ上記画像はデスクトップ(PC)での調整さんトップページの計測ということになります。 爆速の定義と比較爆速の定義として、有名な 阿部寛さ...
5ヶ月前
記事のアイキャッチ画像
エンジニアがコミュニケーションスキルを磨くべき理由
ミクステンド Tech Blogのフィード
はじめにこんにちは、ミクステンドのCTOのラジです。この記事では、エンジニアにとってコミュニケーション能力がなぜ重要なのかについて、私の意見を共有したいと思います。 背景エンジニアおよびチームリーダーとして長年働いてきた中で、コミュニケーション能力はエンジニアにとってあんまり評価されていないスキルだと感じています。エンジニアは自分の技術スキルの向上に努める一方で、コミュニケーションスキルの向上には十分な努力を払っていないと思います。チームで働く場合、エンジニアはマネージャー、営業チーム、ビジネスチームなど、技術系以外の多くの関係者とコミュニケーションを取る必要があります...
5ヶ月前
記事のアイキャッチ画像
振返り会を導入してみたら見えてきたこと
ミクステンド Tech Blogのフィード
はじめにこんにちは、TimeRexの開発を担当している馬場です。今回は、TimeRex開発チームで振返り会(レトロスペクティブ)を試しに導入してみた話を書いてみます。「ちゃんと設計して完璧にやる」というよりは、とりあえずやってみて、そこから調整していこうくらいの温度感で始めた取り組みです。実際にやってみて感じたことや、うまくいった点・悩んだ点も含めてまとめていきます。 導入背景 チーム構成と開発手法TimeRex開発チームは以下のような構成です。開発メンバー:6名PM:1名開発は1週間スプリントで回しています。(*実際のスプリントの回し方につきま...
5ヶ月前
記事のアイキャッチ画像
Figma MCP × Cursorでフロントエンド実装を効率化
ミクステンド Tech Blogのフィード
こんにちは、TimeRexの開発を担当しているクマガイです。弊社はデザイナーがFigmaでデザインを作成し、エンジニアがそれを元に実装するフローで開発をしていますが、デザインをコードに落とし込む作業はどうも効率が悪いなと感じていました。二重実装の感覚: Figma上でレイアウトもカラーもフォントも確定しているのに、それをコードで再現するのは、同じ作業を二回繰り返しているように感じてしまうDevモードの限界: FigmaのDevモードでCSSを確認できるとはいえ、結局はプロパティを一つずつコピー&ペーストして、コンポーネント構造を自分で組み立てる必要があるこの悩みを解決して...
5ヶ月前
記事のアイキャッチ画像
Webpack Mix から Vite へ - Laravel 8 プロジェクトをモダン化する段階移行
ミクステンド Tech Blogのフィード
はじめにミクステンドエンジニアの李です。TimeRexの開発を担当しています。今回は、TimeRexにおけるLaravel 8 + Blade + Laravel Mix から Vite へビルド基盤を段階的に移行した設計思想と実践アプローチを紹介します。 背景TimeRex では長らく、Laravel BladeLaravel Mix(Webpack)Vue2という構成で運用してきました。この構成は安定しており、大きな問題があったわけではありませんが、Vue2サポート終了などに伴い、Vue3 への移行TypeScript 導入開発体験の向上ビル...
6ヶ月前
記事のアイキャッチ画像
エンジニアチームのWeeklyの働き方
ミクステンド Tech Blogのフィード
こんにちは。ミクステンドエンジニアのロッチです。今回は、TimeRexエンジニアチーム(以下、「チーム」と称する)で実践している 週次スプリントの回し方、Story Point と Planning Poker の運用、そして サポート対応の仕組み について紹介します。この記事の目的は次になります。チームの開発プロセスや雰囲気を知ってもらう なぜ「Story Point」と「Planning Poker」を使うのか私たちのチームでは、タスクの見積もりに Story Point を使い、見積もり手法として Planning Poker を採用しています。狙いはシンプルで、...
6ヶ月前
記事のアイキャッチ画像
Claude Code で実装前にプランを立てる技術 - Plan Mode から AI 間レビューまで
ミクステンド Tech Blogのフィード
はじめにミクステンドでアプリエンジニアをしている上條です。Claude Code に「この機能を実装して」と丸投げしていませんか?AI コーディングアシスタントは強力ですが、プランなしで実装を始めると厄介な問題が起こります。既存のアーキテクチャパターンと矛盾するコードが生成される、不要な API エンドポイントを新規作成しようとする、大量のトークンを消費した後に方針の手戻りが発生する——こうした経験は多くの開発者に心当たりがあるはずです。本記事では、Claude Code の Plan Mode を使った実装前のプランニングから、異なる AI モデルによるプランレビュー、そし...
6ヶ月前
記事のアイキャッチ画像
AWSコストが増えた!リソースランキングTOP5
ミクステンド Tech Blogのフィード
MIXTENDのインフラエンジニアの森です。弊社ではAWSを利用していますが、2025年の一年間でAWSコストが大きく増加し、問題となっていました。コスト削減の対応方針をまとめる機会があったので、この記事ではインフラで利用しているAWSサービスを一部紹介しつつ、コスト増加の原因となったリソースTOP5とその対策案を紹介していきます。 コスト増加の背景 インフラの継続的な開発弊社ではインフラを継続的に開発、アップデートしています。特に去年から今年にかけてEC2からECSへの移行を実施しており、その影響でコストが増加していました。 ユーザ数・リクエスト数の増加弊社では主に調...
6ヶ月前
記事のアイキャッチ画像
Laravel へのリプレイス時、ユーザーのパスワードを再設定不要にする方法(をAIで改善してみた)
ミクステンド Tech Blogのフィード
MIXTEND のバックエンドエンジニアの菊池です。調整さんの開発を担当しています。調整さんは 2022 年 10 月ごろ、FuelPHP から Laravel へリプレイスを行いました。本記事では、そのプロジェクトで直面した課題のうち、FuelPHP デフォルトのハッシュ形式が Laravel の Hasher に用意されていなかった問題に、どのように対応したかを紹介します。また、昨今は AI コーディングが盛んで、弊社でも導入が進んでいます。そこで、当時の実装を AI に評価させ、改善も試みました。 問題FuelPHP の時代、調整さんはパスワードを PBKDF2 でハッシュ...
7ヶ月前
記事のアイキャッチ画像
エンジニアのモチベーションはどこから来るのか?CTOとして向き合った答え
ミクステンド Tech Blogのフィード
English follows the Japanese blog post.私はミクステンドのCTOのラジです。エンジニアリング部門を管理しており、エンジニアにとって理想的でモチベーションが高い環境を作ることが私の業務の一部です。この目標を達成するために、このテーマに関する書籍を読んだり、ポッドキャストを聴いたりすることから始めました。その中で気づいたのは、エンジニアのモチベーションとは何かという問いに簡単な答えはないということです。モチベーションは、エンジニアの性格、キャリアレベル、そして目標によって異なることがわかりました。そこで見つけた良いアドバイスの一つは、エンジニアのモチ...
7ヶ月前