newmo 技術ブログ
https://tech.newmo.me/
技術で地域をカラフルに
フィード
JSConf JPでModular Monolith Monorepoについて発表しました
newmo 技術ブログ
こんにちは、newmoでソフトウェアエンジニアをしている @yui_tangです。 2024年11月23日に開催されたJSConf JP 2024にて、「Modular Monolith Monorepo -シンプルさを保ちながらmonorepoのメリットを最大化する-」というテーマで発表させていただきました。 スライド: speakerdeck.com 動画: https://www.youtube.com/live/2BXwigWGjWQ?feature=shared&t=21596 JSConf JP 2024について JSConf JPは日本最大級のJavaScriptカンファレンスで…
1ヶ月前
ブラウザで動作する地理空間データ処理ライブラリとして DuckDB-wasm を使い、 SQL を TypeScript で管理する仕組みを作る
newmo 技術ブログ
newmo では、地図データや地理情報を扱う場面が多くあります。 たとえば、タクシーやライドシェアでは、営業区域のような営業していいエリアといった地理的な定義があります。 また、乗り入れ禁止区域のようなタクシーが乗り入れてはいけないエリアといった定義も必要になります。 これらの地理に関する定義は GeoJSON のような地理情報を扱うデータ形式で管理されることが多いです。 しかし、GeoJSONなどの定義をテキストとして手書きするのは困難です。 そのため、地図上に区域を作図するエディタやその定義した区域が正しいかをチェックするような管理ツールが必要です。 管理ツールは、ウェブアプリケーションと…
1ヶ月前
MonorepoでのTerraform運用を楽にする!tfactionを使ったGitHub Actions Workflowの構築
newmo 技術ブログ
はじめに newmoではGoogle Cloud等のリソース管理にTerraformを使っています。また、newmoではMonorepoを使って開発しています。 Monorepoについてここでは詳しく説明しませんが、バックエンドのGoのコードもフロントエンドのTypeScriptのコードもTerraformのコードもすべて同じGitHubのレポジトリで管理し開発を行っています。 TerraformのコードをMonorepoで管理することで、以下の要素を統一的に制御できるようになりました CICDパイプライン TerraformとProviderのバージョン セキュリティポリシー Lintルール…
2ヶ月前
OpenTelemetry Collectorを使ったCloud Run to Datadogの実装パターン
newmo 技術ブログ
newmoでは現在アプリケーションサーバーをCloud Runで動かし、Datadogを利用してサービスの監視をすることを考えています。 複数のCloud Runサービスからメトリクス、トレース、そしてログをDatadogへ送信する方法としていくつかのパターンが考えられます。 Datadogへメトリクスやトレース、ログを送る方法としてDatadog Agentを使う方法が一般的ですが将来のための柔軟性や拡張性を考えてOpenTelemetry Collectorを利用することを検討しました。この記事では、検討した構成案を紹介します。 はじめに Datadog公式ドキュメントのOpenTelem…
2ヶ月前
newmoインターンがgqlparserにプルリクエストを投げた話
newmo 技術ブログ
こんにちは。8月からnewmoでインターンをしている堀之内(@horinouchi09)と申します。 nemwoではバックエンドエンジニアとして、ビジネスドメインのAPIの開発やプラットフォームエンジニアリングのタスクなど多岐にわたってプロダクト開発に携わっています。 Go言語での開発は未経験からのスタートでしたが、バックエンドエンジニアのitoさんをはじめ多くの方々にサポートしていただき、楽しく開発ができています! さて、今回は私がnewmoでのインターンを通して人生初のOSS Contributeをした話をします。 newmoの開発スタイル newmoではクライアントからサーバーのAPIを…
2ヶ月前
YAPC::Hakodate 2024 に参加&学生支援ランチでLTしました! #yapcjapan
newmo 技術ブログ
YAPC::Hakodate 2024に社員4名が参加&学生向けにLTを実施しました こんにちは。newmoのソフトウェアエンジニアの @tenntenn です。 2024年10月5日に開催されたYAPC::Hakodate 2024にて、今年はnewmoからエンジニア4名が参加。さらに、学生支援スポンサーとして学生向けにLTをさせていただきました。 このブログでは、LTの登壇資料や補足情報、参加した社員の感想などをシェアします。 学生支援スポンサーランチLT 参加された学生のみなさんに向けて、tenntennが入社した理由についてお話しました。自分の身の回りの課題を自分で解決したいという思い…
2ヶ月前
Google Cloud PAMを使った権限昇格の仕組みと、Terraformでloopをネストする方法
newmo 技術ブログ
PAM(Privileged Access Manager)とは Google CloudのPrivileged Access Manager(PAM)という機能をご存知でしょうか。 詳しくは 新しい Privileged Access Manager を使用して常時オンの特権からオンデマンド アクセスに移行 | Google Cloud 公式ブログ に書かれています。 簡単な方法で、必要なときにのみ、必要な期間だけ、必要なアクセス権を正確に取得できるようにすることで、最小権限の原則を実現するのに役立ちます。PAM は、常時オンの常設特権から、ジャストインタイム(JIT)、時間制限付き、承認ベ…
2ヶ月前
まずはイテレータ(range over func)の仕様を学ぼう - Goのイテレータ深堀りNight
newmo 技術ブログ
はじめに こんにちは。newmoでソフトウェアエンジニアをやっている@tenntennです。 本稿では、2024年9月24日(火)にファインディ株式会社主催の「Goのイテレータ深堀りNight」というイベントで登壇してきましたので、その報告と内容について紹介します。 findy.connpass.com 「Goのイテレータ深堀りNight」は、2024年8月にリリースされたGo1.23の機能の1であるrange over func(通称イテレータ)について、6人の登壇者がさまざまな角度で10分のライトニングトーク(LT)を行うイベントです。筆者は、トップバッターということで「まずはイテレータ(…
3ヶ月前
go testの時だけ時刻を固定する
newmo 技術ブログ
はじめに こんにちは。newmoでソフトウェアエンジニアをやっている@tenntennです。 newmoには2024年8月に入社しました。この記事を書いているのは2024年9月なので、入社してだいたい1ヶ月ちょっとが経過したところです。 なお、筆者が入社した経緯などは次の記事を読んでください。 note.com 入社した当初、newmoのバックエンドコードのコードを眺めていると、次のように宣言された関数を見つけました。 func Now(_ context.Context) time.Time { return time.Now().In(time.UTC) } 単にtime.Now関数を呼び…
3ヶ月前
GitHub ActionsのJobが落ちたときに何をするべきかを記述するPlaybookの仕組みを作って運用している話
newmo 技術ブログ
newmoではGitHub Actionsを自動テスト、Lint、デプロイなどに利用しています。 また、newmoではmonorepoで開発しているため、1つのリポジトリに複数のチーム/複数のアプリケーションが存在しています。 GitHub Actionsではpathsを使うことで、特定のファイルが変更された場合のみ特定のWorkflowが実行できます。 newmoのmonorepoのworkflowでは基本的にpathsが指定されていますが、それでも普段は触らないファイルを変更して意図せずにCIが落ちることがあります。 GitHub ActionsのCIが落ちたときに、そのCIの仕組みを作っ…
4ヶ月前
monorepo内でのパッケージのバージョンを1つだけに統一するOne Version Ruleをpnpm catalogで実装する
newmo 技術ブログ
newmoでは、フロントエンド、バックエンド、iOSやAndroidなどのモバイルアプリをすべて同じリポジトリで管理するmonorepoを採用しています。 monorepoを採用することで、アプリケーション間で共通のコードを共有することができたり、CIの管理が楽になったり、他のチームのコードを見るのにわざわざリポジトリをcloneする必要がなくなります。 また、monorepoを採用することで、アプリケーションが利用しているパッケージ(ライブラリやツール)のバージョンを1つだけにするOne Version Ruleが実装できます。 One Version Rule One Version Ru…
4ヶ月前
iOSDC Japan 2024 にて「GraphQLとスキーマファーストで切り開くライドシェアの未来」について話しました! #iosdc
newmo 技術ブログ
iOSDC Japan 2024 にスポンサーセッションで登壇しました こんにちは。newmoのソフトウェアエンジニアの@kuです。 先週開催されたiOSDC Japan 2024にて、Day2の夕方に「GraphQLとスキーマファーストで切り開くライドシェアの未来」というタイトルで登壇させていただきました。(トーク情報) このブログでは、当セッションの登壇資料、補足・裏話をシェアします。 登壇資料 speakerdeck.com 本セッションでは、GraphQLのディレクティブを使ってスキーマにより多くの情報を持たせ、そこからコードを生成することで、異なるソフトウェア間で一貫性のある実装を安…
4ヶ月前
newmo は「エンジニアの楽園 vim-jp ラジオ」を応援しています! #vimjpradio
newmo 技術ブログ
こんにちは。newmo の TechPR 担当です。 newmo は、2024年にスタートした「エンジニアの楽園 vim-jp ラジオ」を応援しています。newmo の vimmer も他のエディタ使いも、いつも楽しく vim-jp ラジオを聞かせていただいており、協賛できることを嬉しく思います。 協賛にあたり、以下日時のお知らせコーナーにて、newmo の情報が配信される予定です。 9月9日 #10 @yusukebe さん回 9月16日 #11 @uzulla さん回 vimmer の方も、そうでない方も。vim-jp ラジオの audee ページと vim-jp X アカウント(@vim…
4ヶ月前
newmo は iOSDC Japan 2024 にゴールドスポンサーとして協賛します!ブース出展 & Day2にセッションも(記事内チャレンジトークン有り) #iosdc
newmo 技術ブログ
こんにちは。newmo の TechPR 担当です。 newmo は、2024年8月22日〜24日に開催予定の iOSDC Japan 2024 にゴールドスポンサーとして協賛します! 創業1年目の会社ですが、iOSコミュニティの発展に寄与できることを嬉しく思います。 記事内にiOSDCチャレンジトークンがあります。 ※ iOSDCチャレンジトークンとは、公式が催している全員参加型企画「iOSDCチャレンジ」に使用するトークンのことです。詳しくはこちらの公式案内ブログをご覧ください。 iOSDC Japan 2024 開催概要 開催日:2024年8月22日(木)〜24日(土) 場所:早稲田大学…
4ヶ月前
Go Conference 2024 にシルバースポンサーとして参加しました!
newmo 技術ブログ
プロダクト開発に採用しているプログラミング言語Goのカンファレンス「Go Conference 2024」において、newmoはSilverスポンサーとして協賛いたしました。 当日は、CTOの @sowawa 、アーキテクトの yuki.ito、そして 筆者の@yui_tang が参加しました。 5年ぶりにオフライン開催となったGo Conferenceですが、多くの参加者が朝早くから集まり、1日を通して盛り上がりを見せていました! 創業間もないnewmoですが、幸運なことにブース出展の機会を得ることができました。 多くの方々に、バックエンドアーキテクチャや事業について興味を持っていただく貴重…
6ヶ月前
newmo株式会社はGo Conference 2024にてスポンサーブースを出します!
newmo 技術ブログ
こんにちは、newmo 株式会社に所属しているソフトウェアエンジニアのyui_tangです。 newmoは、Go Conference 2024にSilverスポンサーとして協賛します! 2024年1月に創業したばかりの弊社が、初めて技術カンファレンスへ協賛出来ることを大変嬉しく思います。 gocon.jp newmoからは、CTOのsowawa・アーキテクトの伊藤とわたしの3名が参加を予定しています。 出来たばかりのnewmo Tシャツを着てブースでお待ちしておりますので、ぜひお越しください。 newmo Tシャツ ブースにて、ライブコーディングや事業・プロダクトの設計についての説明等を行い…
6ヶ月前
Go + GraphQL による Modular Monolith なシステム設計について発表しました
newmo 技術ブログ
こんにちは、newmo 株式会社に所属しているアーキテクトの伊藤です。 5/22 に【Go】カンファレンススポンサーブースの集い 2024 〜カウシェ × newmo × メルカリ〜というイベントを開催しました。 このイベントで、筆者からは GraphQL Federation や Go のための GraphQL のコード生成、Modular Monolith によるシステム設計について話しました。 スライドや動画のアーカイブは、次の場所で公開されているので、ぜひご覧ください! スライド: Go + GraphQL @ newmo - Speaker Deck 動画: 【Go】カンファレンスス…
7ヶ月前
【Go】カンファレンススポンサーブースの集い 2024 〜カウシェ × newmo × メルカリ〜 を開催します!
newmo 技術ブログ
こんにちは、newmo 株式会社に所属しているアーキテクトの伊藤です。 newmo は 2024 年 1 月に創業したばかりであるため、ゼロからどのようなアーキテクチャにするかを議論しながら開発を進めています。 これについては、次の記事でも話しているので、興味があればぜひご覧ください! 「いま、ゼロから移動を設計したら?」newmoが挑む技術的チャレンジとは|newmo株式会社|"移動で地域をカラフルに" このように議論しながら、newmo では Go 言語と GraphQL を採用することに決めました。 GraphQL と一言にいっても、GraphQL API を扱う戦略はさまざまな方法があ…
7ヶ月前
🚗 newmo の技術ブログをはじめます 🚕
newmo 技術ブログ
newmoのCTOのsowawaです。はじめまして〜🚕 🚗 まず、最初にnewmoについて話したいと思います。 newmoはタクシーとライドシェアの会社として2024年に設立されました。 「newmo」は新しいモビリティの会社という意味で、new mobilityからnewmoと名づけました。 newmoでは、移動の問題を解決してみんなが自由に移動できる社会を作りたいと思っています。特に地域社会は移動に課題を抱えるところも多くなってきていて、好きなときに好きなところに行くことが難しいということも少なくありません。newmoではそういった課題を解決して、できるだけ多くの人が好きなときに好きなとこ…
8ヶ月前