newmo 技術ブログ

技術で地域をカラフルに

GitHub ActionsでESLintのShardingを実装して、CIの実行時間を51%削減しました

newmoでは、pnpm workspaceで管理している複数のアプリケーションやライブラリに対してESLintを実行しています。 プロジェクトの成長とともにLint対象のファイル数が増加し、CI実行時間とメモリ使用量が増加していました。GitHub Actionsのmatrixオプション…

monorepoでのApollo Client v4移行 - pnpm named catalogとLLMによる段階的移行

Apollo Client v4が2025年9月にリリースされました。エラーハンドリングの改善やバンドルサイズの削減など多くの改善が含まれていますが、破壊的変更も多く含まれています。特にmonorepo環境では、複数のアプリケーションや共有ライブラリが同じパッケージに…

Go Conference 2025 でワークショップ「†開発を加速させる黒魔術講座†」を開催しました!

先日開催された Go Conference 2025 にて、newmo のエンジニアから「†開発を加速させる黒魔術講座†」というワークショップを開催させていただきました。本記事では、現在も公開しているこのワークショップの内容について紹介します! †開発を加速させる黒魔…

renovatebotとpnpm catalogで実現する依存関係の自動アップデートとハンドブックによる安全な更新

はじめに モノレポ環境での依存関係管理は、プロジェクトの規模が大きくなるほど複雑になります。 newmoでpnpm catalogを導入してOne Version Ruleを実装し、パッケージのバージョンを一元管理する仕組みを構築しました。詳細はmonorepo内でのパッケージのバ…

feature flag 入門と newmo の feature flag 基盤について

こんにちは。Platform Team の tobi (@iam__tobi) です。 本記事では feature flag の基礎的事項の説明と、Platform Team で開発してきた newmo 独自の feature flag 基盤の設計思想と全貌について二段構成でご紹介します。 これから feature flag を導入し…

TSKaigi 2025に登壇しました

2025年5月23日と24日に TSKaigi 2025 が開催され、newmo でソフトウェアエンジニアをしている @yui_tang と @nozomuikuta が一般応募枠で登壇しました。それぞれの発表の資料と概要は以下のとおりです。 TypeScript エンジニアが Android 開発の世界に飛び込…

Cloud Service Mesh for Cloud Run で実現する PR 環境

この記事では、Cloud Service Mesh for Cloud Run を利用して PR 環境を構築する方法について紹介します。 背景・概要 newmo ではトランクベース開発を行なっているため、開発環境での動作確認は main branch (trunk) に merge されていることが前提になって…

Devinが作るPull Requestのセルフマージを禁止する

AI開発ツールDevinが作成したPull Requestに対して、セキュリティと品質を確保するために2人の承認を必要とする実装方法について解説します。 2025/05/21 追記 レビューコメントが30件以上あったときに正しく動かない問題を修正しました 開発者が書いたPull …

SRE Kaigi 2025に登壇しました & Marpでスライドを作った話

2025/1/26に開催されたSRE Kaigi 2025に、「SREとしてスタッフエンジニアを目指す」というタイトルで登壇しました。 発表を聴きにきていただいた方、またAsk the Speakerや懇親会で話しかけてくれた方ありがとうございました。 SRE Kaigiは今回が初めての開…

【年末】DatadogのGoogle Cloud Integration設定を見直そう【大掃除】

こんにちは。 newmoでは、Datadogを利用してGoogle Cloudをはじめとした各種サービスの監視を行っています。今回はDatadogのGoogle Cloud Integration設定の改善をしたことで、コストを削減できた話を共有します。(たぶん)2024年最後の記事ということで、…

JSConf JPでModular Monolith Monorepoについて発表しました

こんにちは、newmoでソフトウェアエンジニアをしている @yui_tangです。 2024年11月23日に開催されたJSConf JP 2024にて、「Modular Monolith Monorepo -シンプルさを保ちながらmonorepoのメリットを最大化する-」というテーマで発表させていただきました。 …

ブラウザで動作する地理空間データ処理ライブラリとして DuckDB-wasm を使い、 SQL を TypeScript で管理する仕組みを作る

newmo では、地図データや地理情報を扱う場面が多くあります。 たとえば、タクシーやライドシェアでは、営業区域のような営業していいエリアといった地理的な定義があります。 また、乗り入れ禁止区域のようなタクシーが乗り入れてはいけないエリアといった…

MonorepoでのTerraform運用を楽にする!tfactionを使ったGitHub Actions Workflowの構築

はじめに newmoではGoogle Cloud等のリソース管理にTerraformを使っています。また、newmoではMonorepoを使って開発しています。 Monorepoについてここでは詳しく説明しませんが、バックエンドのGoのコードもフロントエンドのTypeScriptのコードもTerraform…

OpenTelemetry Collectorを使ったCloud Run to Datadogの実装パターン

newmoでは現在アプリケーションサーバーをCloud Runで動かし、Datadogを利用してサービスの監視をすることを考えています。 複数のCloud Runサービスからメトリクス、トレース、そしてログをDatadogへ送信する方法としていくつかのパターンが考えられます。 …

newmoインターンがgqlparserにプルリクエストを投げた話

こんにちは。8月からnewmoでインターンをしている堀之内(@horinouchi09)と申します。 nemwoではバックエンドエンジニアとして、ビジネスドメインのAPIの開発やプラットフォームエンジニアリングのタスクなど多岐にわたってプロダクト開発に携わっています。…

YAPC::Hakodate 2024 に参加&学生支援ランチでLTしました! #yapcjapan

YAPC::Hakodate 2024に社員4名が参加&学生向けにLTを実施しました こんにちは。newmoのソフトウェアエンジニアの @tenntenn です。 2024年10月5日に開催されたYAPC::Hakodate 2024にて、今年はnewmoからエンジニア4名が参加。さらに、学生支援スポンサーと…

Google Cloud PAMを使った権限昇格の仕組みと、Terraformでloopをネストする方法

PAM(Privileged Access Manager)とは Google CloudのPrivileged Access Manager(PAM)という機能をご存知でしょうか。 詳しくは 新しい Privileged Access Manager を使用して常時オンの特権からオンデマンド アクセスに移行 | Google Cloud 公式ブログ …

まずはイテレータ(range over func)の仕様を学ぼう - Goのイテレータ深堀りNight

はじめに こんにちは。newmoでソフトウェアエンジニアをやっている@tenntennです。 本稿では、2024年9月24日(火)にファインディ株式会社主催の「Goのイテレータ深堀りNight」というイベントで登壇してきましたので、その報告と内容について紹介します。 fi…

go testの時だけ時刻を固定する

はじめに こんにちは。newmoでソフトウェアエンジニアをやっている@tenntennです。 newmoには2024年8月に入社しました。この記事を書いているのは2024年9月なので、入社してだいたい1ヶ月ちょっとが経過したところです。 なお、筆者が入社した経緯などは次の…

GitHub ActionsのJobが落ちたときに何をするべきかを記述するPlaybookの仕組みを作って運用している話

newmoではGitHub Actionsを自動テスト、Lint、デプロイなどに利用しています。 また、newmoではmonorepoで開発しているため、1つのリポジトリに複数のチーム/複数のアプリケーションが存在しています。 GitHub Actionsではpathsを使うことで、特定のファイル…

monorepo内でのパッケージのバージョンを1つだけに統一するOne Version Ruleをpnpm catalogで実装する

newmoでは、フロントエンド、バックエンド、iOSやAndroidなどのモバイルアプリをすべて同じリポジトリで管理するmonorepoを採用しています。 monorepoを採用することで、アプリケーション間で共通のコードを共有することができたり、CIの管理が楽になったり…

iOSDC Japan 2024 にて「GraphQLとスキーマファーストで切り開くライドシェアの未来」について話しました! #iosdc

iOSDC Japan 2024 にスポンサーセッションで登壇しました こんにちは。newmoのソフトウェアエンジニアの@kuです。 先週開催されたiOSDC Japan 2024にて、Day2の夕方に「GraphQLとスキーマファーストで切り開くライドシェアの未来」というタイトルで登壇させ…

newmo は「エンジニアの楽園 vim-jp ラジオ」を応援しています! #vimjpradio

こんにちは。newmo の TechPR 担当です。 newmo は、2024年にスタートした「エンジニアの楽園 vim-jp ラジオ」を応援しています。newmo の vimmer も他のエディタ使いも、いつも楽しく vim-jp ラジオを聞かせていただいており、協賛できることを嬉しく思いま…

newmo は iOSDC Japan 2024 にゴールドスポンサーとして協賛します!ブース出展 & Day2にセッションも(記事内チャレンジトークン有り) #iosdc

こんにちは。newmo の TechPR 担当です。 newmo は、2024年8月22日〜24日に開催予定の iOSDC Japan 2024 にゴールドスポンサーとして協賛します! 創業1年目の会社ですが、iOSコミュニティの発展に寄与できることを嬉しく思います。 記事内にiOSDCチャレンジ…

Go Conference 2024 にシルバースポンサーとして参加しました!

プロダクト開発に採用しているプログラミング言語Goのカンファレンス「Go Conference 2024」において、newmoはSilverスポンサーとして協賛いたしました。 当日は、CTOの @sowawa 、アーキテクトの yuki.ito、そして 筆者の@yui_tang が参加しました。 5年ぶ…

newmo株式会社はGo Conference 2024にてスポンサーブースを出します!

こんにちは、newmo 株式会社に所属しているソフトウェアエンジニアのyui_tangです。 newmoは、Go Conference 2024にSilverスポンサーとして協賛します! 2024年1月に創業したばかりの弊社が、初めて技術カンファレンスへ協賛出来ることを大変嬉しく思います…

Go + GraphQL による Modular Monolith なシステム設計について発表しました

こんにちは、newmo 株式会社に所属しているアーキテクトの伊藤です。 5/22 に【Go】カンファレンススポンサーブースの集い 2024 〜カウシェ × newmo × メルカリ〜というイベントを開催しました。 このイベントで、筆者からは GraphQL Federation や Go のた…

【Go】カンファレンススポンサーブースの集い 2024 〜カウシェ × newmo × メルカリ〜 を開催します!

こんにちは、newmo 株式会社に所属しているアーキテクトの伊藤です。 newmo は 2024 年 1 月に創業したばかりであるため、ゼロからどのようなアーキテクチャにするかを議論しながら開発を進めています。 これについては、次の記事でも話しているので、興味が…

🚗 newmo の技術ブログをはじめます 🚕

newmoのCTOのsowawaです。はじめまして〜🚕 🚗 まず、最初にnewmoについて話したいと思います。 newmoはタクシーとライドシェアの会社として2024年に設立されました。 「newmo」は新しいモビリティの会社という意味で、new mobilityからnewmoと名づけました。 ne…