Gunosy Tech Blog

Gunosy Tech Blogは株式会社Gunosyのエンジニアが知見を共有する技術ブログです。

Kotlin Fest 2024 に参加してきました

Kotlin Fest 2024 に参加してきました。 今回はその内容を簡単にご紹介したいと思います。

MagicPodの自動テストの結果入力を自動化しました

こんにちは。QAチームのmiyagiです。 QAチームで活用しているテスト自動化ツール「MagicPod」と、テスト管理ツール「TestRail」を連携させ、自動テストの結果入力をJenkinsで自動化しました。 この記事では、連携に必要な環境構築や手順について紹介します。…

忘れずに対応して欲しいことを自動でJIRAにまとめたら最高だった話

こんにちは、SRE チーム マネージャーの Yamaguchi(@yamaguchi_tk ) です。 概要 今回は対応期限があるインフラ、セキュリティ領域の課題を、自動で JIRA にまとめたら運用が最高になった話をします。 前提 Gunosy では主に AWS を利用しています。 AWS で…

S3 Inventory + Athena によるプレフィックスレベルコスト分析 ~S3 のコストをスリムに保つために~

プロダクト開発部 Ads チームの yamaYu です。最近体重と筋肉量をコントロールしたい願望があり、まずは可視化ということで体組成計を買いました。まだ全然成果は上がっていないですが、現状を把握できて良い感じです。 今回の記事ですが、最近取り組んだ S3…

try! Swift Tokyo 2024に行ってきました

こんにちは。GunosyでiOSアプリ開発をしている吉岡(@rikusouda)です。 try! Swift Tokyo 2024に参加してきたのでレポートを書きます。

Android OnBackInvokedDispatcher の導入

Android で OnBackInvokedDispatcher を導入したため、その内容をお伝えします。

Android Jetpack Compose 独自 TextField 実装まとめ

Android Jetpack Compose での独自 TextField の実装についてまとめましたので、その内容をお伝えします。

Datadog Agentがkubeletと疎通できなくてもAWS IMDSv2からhostnameを取得させる

こんにちは。プロダクト開発部 Ads チームの johnmanjiro です。普段は広告配信の API や管理画面を開発しています。 先日、EKS 上で動いている Datadog Agent のバージョンを更新した際、Pod の起動時に複数回 Restart するという事象が発生しました。この…

Android Macrobenchmark テストの導入

Macrobenchmark ライブラリを用いたテストを導入したため、その内容をお伝えします。

LLMのプロンプトをCI/CDで評価する。promptfooを使って

こんにちは。 LLM事業部のUTです。 概要 promptfoo の紹介 起動 CI での評価 GitHub Action まとめ 概要 OpenAI による ChatGPT 登場の衝撃から1年ほど経ちましたが、 LLM を活用する企業はものすごく増えました。 OpenAI だけでなく、大手クラウドや Huggin…

生成系AIを活用した開発者支援

こんにちは。koidです。 この記事は Gunosy Advent Calendar 2023 の25日目の記事です。 24日目の記事は hyamamotoさんの 大規模データ基盤における冪等性を確保した dbt のオーケストレーション でした。 早いもので、今年の Advent Calendar も最終日とな…

大規模データ基盤における冪等性を確保した dbt のオーケストレーション

dbt

はじめに はじめに データ基盤におけるバッチのオーケストレーション 移行時の課題 Helm を活用した dbt 実行基盤の構築 Helm の採用理由 Helm による dbt を実行する template の記述 Helm による k8s Job の実行 実行時の冪等性を確保する dbt の工夫 さい…

CircleCI + Android UI Test スクリーンショットの確認仕組み

こんにちは、グノシー Android アプリの開発担当の Liang です。 この記事は Gunosy Advent Calendar 2023 の23日目の記事です。前回の記事は Naoto Koizumi さんの「CircleCIからGithub Actionsに大引っ越しした話」でした。 今回は CircleCI での自動化テ…

CircleCIからGitHub Actionsへ大引越した話

こんにちは、テクノロジー本部 プロダクト開発部 SRE の koizumi です。 この記事は Gunosy Advent Calendar 2023 の 22 日目の記事です。昨日の記事は TksYamaguchi さんの「Snyk を導入してコンテナセキュリティ対策の運用を回している話」でした。 本日は…

Snyk を導入してコンテナセキュリティ対策の運用を回している話

Snyk を導入してコンテナセキュリティ対策の運用を回している話

広告スコアリングサーバのエラーを大幅に減らした話

こんにちは、m-hamashita です。最近 AdsML(DRE 兼務)から新規事業開発室に移って LLM 応用をしています。学ぶことが多くて楽しいですね*1。 この記事は Gunosy Advent Calendar 2023 の 20 日目の記事です。 19 日目の記事は田辺さんのデータアナリストが…

コスト削減できる箇所をひねり出す

こんにちはUTです。 この記事は Gunosy Advent Calendar 2023 の 18 日目の記事です。 17 日目の記事は k.oshiro さんの 社内勉強会での発表内容の紹介 〜MessagePackの仕様を読む〜 - Gunosyデータ分析ブログ でした。 最近広告チームからLLMのチームに異動…

サードパーティ Cookie を使わない広告効果計測 ~Privacy Sandbox の Attribution Reporting API について~

Gunosy Ads では、サードパーティ Cookie に依存しない広告効果の計測への対応を進めています。 その一環として、Google の Privacy Sandbox についても検証を行なっているので、その話について書ければと思います。

iOSアプリのSWIFT_STRICT_CONCURRENCYをcompleteにした

iOS

iOSアプリでSwift Concurrencyを全面的に導入しSWIFT_STRICT_CONCURRENCYをcompleteにした話

tfaction を導入したら便利だった話

この記事は Gunosy Advent Calendar 2023 の 14 日目の記事です。昨日の記事は上村さんの「ChatGPTを活用した業務支援ツール「ウデキキ」のチャット実装」でした。 こんにちは、プロダクト開発部 Ads チームの fujishiro です。最近は年末に行われる RIZIN.4…

LLM を使って自分のおさいふ事情を把握してみる

はじめに どんなものを作ったのか 解説 Gmail API を使ったメール取得について LangChain を使ったデータ分析について まとめ はじめに こんにちは takuji です。 この記事は Gunosy Advent Calendar 2023 の 11 日目の記事です。 10 日目の記事は村田さんの…

インシデント発生時における初動対応の自動化

これまでの課題感 どのように実現したか Slackワークフローとは Google App Scriptとは 実装内容 Slackワークフローの実装 トリガーの設定 ステップの追加 Google App Scriptの実装 Slack Appの設定 Slack Appの作成 OAuth Tokensの設定 Google App Scriptの…

オンライン実験を速く試すための基盤構築

この記事は [Gunosy Advent Calendar 2023](https://adventar.org/calendars/9182) の 7 日目の記事です。昨日の記事は johnmanjiro さんの『tokio ベースの Rust 向け fluentd クライアントを作りました』でした。 先日、オンライン実験を速く試すための基…

tokio ベースの Rust 向け fluentd クライアントを作りました

この記事は Gunosy Advent Calendar 2023 の6日目の記事です。昨日の記事は hyamamoto さんの稼働中データ基盤を安全に dbt 移行する仕組みでした。 こんにちは。プロダクト開発部 Ads チームの johnmanjiro です。普段は広告配信の API や管理画面を作って…

稼働中データ基盤を安全に dbt 移行する仕組み

dbt

はじめに はじめに 移行前のデータ変換処理の仕組み 移行時の課題 移行時デグレの検知の仕組み CLI の整備 変更内容の検知 パラメーターの生成 GitHub Actions の整備 Continuous Integration (CI) plan-catalogs audit-catalogs Continuous Delivery (CD) a…

企業テックブログのレビューを GitHub 上でおこなっている話

はじめに 今までのブログレビュー 現在のブログレビュー ブログの同期 ブログの取得 リポジトリと下書きの同期 textlint の導入 導入した結果 まとめ はじめに こんにちは m-hamashita です。 この記事は Gunosy Advent Calendar 2023 の 4 日目の記事です。…

いろんなやり方の読書会をやってみたら当日音読その場でまとめ方式が最高だった話

こんにちは、SRE チーム マネージャーの Yamaguchi(@yamaguchi_tk ) です。 こちらの記事はGunosy Advent Calendar 2023の3日目の記事です。 前回の記事は森田さんの LLM 論文の探し方でした。 概要 SRE チームは、シニアエンジニアとジュニアエンジニアで…

Android DataStore の段階導入

Android DataStore の導入と段階的移行の基本実装を行ったため、その内容についてお伝えします。

社内 AWS GameDayを開催しました

こんにちは、テクノロジー本部 プロダクト開発部 SRE の koizumi です。 今回の記事は、AWSと共同開催した社内GameDayのレポートとなります。 本記事ではGameDayの大まかな内容とGameDayに参加したことで得られたものを紹介していきます。 また、今後の参加…

Android + Kotlin Coroutines の実用的な開発Tips

こんにちは、グノシー Android アプリの開発担当の Liang です。 今回はグノシー Android アプリの開発において、Kotlin Coroutines を用いた実用的な Tips をいくつか紹介したいと思います。 ExoPlayer + Coroutines Dispatchers.Main + Yield CoroutineDis…