MicroAd Developers Blog

マイクロアドのエンジニアブログです。インフラ、開発、分析について発信していきます。

JIRAカンバンボードを使用した開発の進め方

マイクロアドでアプリケーションエンジニアをしているタカギです。 今回の記事では、マイクロアドでどのような流れで開発が行われているのか、について記事を書いていきたいと思います。 システム開発本部の組織構成 まず、システム開発本部がどのようにチー…

圏論初心者が自然変換について学んでみた!

こんにちは。マイクロアドでソフトウェアエンジニアをしている飛田と申します。私は主に UNIVERSE Ads というプロダクトの開発に携わっています。 UNIVERSE Ads では、より関数型ライクな設計や実装を取り入れることにより、高い保守性と効率性を目指してい…

AI Platform Pipelines の機械学習基盤への導入

こんにちは、マイクロアド機械学習エンジニアチームの河本(@nnkkmto)です。今回、モデル学習における課題解決に向けて GCP における機械学習基盤に AI Platform Pipelines (Kubeflow Pipelines) を導入しました。今回はその内容について紹介します。 従来…

Focal Lossによる自信過剰な予測の抑制

はじめに こんにちは. マイクロアドで機械学習エンジニアをしている福島です. 主にReal-Time-Bidding (RTB)におけるClick Through Rate/Conversion Rate(CTR/CVR)予測や入札最適化の研究・開発を担当しています. 今回はCTR/CVR予測の学習にFocal Loss [Tsung…

UNIVERSE Adsの監視基盤

京都研究所・TechLabの田中です。マイクロアドでは、先日正式提供を開始した*1UNIVERSE Adsの開発と並行して、UNIVERSE Adsのサービス監視用の基盤も整備してきました。 今回はそんなUNIVERSE Adsの監視基盤の概要をご紹介します。 サービス監視の必要性 監…

Impalaのメタデータで困った話

前提 処理の概要 メタデータ更新問題 テーブルの転送フロー修正前 メタデータと統計情報の紐づけ テーブルの転送フロー修正後 メタデータ大きすぎる問題 突然のERROR 大きくなりすぎたオンメモリメタデータ 解決方法 まとめ 参考リンク マイクロアドでETL処…

RTBにおける落札額・落札確率予測

はじめに こんにちは、機械学習エンジニアの大庭です。昨年の4月に新卒でマイクロアドに入社し、現在はUNIVERSE Adsというプロダクトで入札アルゴリズムの研究開発および実装を担当させていただいてます。 この記事では、僕が現在検証している機械学習による…

Vue.jsでのグローバル定数管理を工夫してみた話

システム開発本部フロントエンドエンジニアの工藤です。 マイクロアドの WEB アプリケーションのフロントエンドは、大半を Vue.js を用いて開発しています。 そこで、フロントエンドエンジニアとして効率の良いVue.jsの開発を目指し、日々奮闘しています。 …

CTR予測における確率補正について

はじめに こんにちは. マイクロアドで機械学習エンジニアをしている福島です. 主に広告のClick Through Rate (CTR)予測やReal-Time-Bidding (RTB)の入札最適化を担当しています. 今回はマイクロアドでのCTR予測における確率補正について紹介したいと思います…

アドベントカレンダー完走 2020

あけましておめでとうございます。 マイクロアドのシステム開発本部 の N こと 奈良橋 です。 昨年 年末のことになりますが 例年通り無事 MicroAd (マイクロアド) Advent Calendar 2020 を完走しました! 2020年もマイクロアドらしいアドベントカレンダーに…

SSPリニューアルの新規参入者向けチュートリアルを作って内定者アルバイトが爆速で即戦力になる予定の話

はじめに システム開発本部アプリケーションエンジニアの新卒1年目の輿水です。 前提としてマイクロアドのCOMPASSというSSPのプロダクトをScala、Catsを用いてDDDの戦術的戦略を取り入れてリニューアルすることになりました。 Scala、Cats、DDDを初めて学習…

マイクロアドのPC事情

マイクロアドで社内SEをやっております高橋です。 今回はマイクロアドのPC事情(支給PCや交換サイクル)について紹介したいと思います。 マイクロアドで支給してるPC 特にこだわり等がなければ現在は下記の中から選択してもらっています。 こだわりがある場…

CTR予測にLightGBMを導入した話

はじめに 初めまして, マイクロアドで機械学習エンジニアをしている福島です. 今年の4月に新卒でマイクロアドに入社し, 現在は UNIVERSE Ads というプロダクトでCTR(Click Through Rate)予測や入札アルゴリズムの開発研究をしています. 今回はCTR予測につい…

Akkaを利用したクローラ開発

こんにちは、Tech Labの中野(@tosametal)です。 本記事ではAkka(Scala)を利用して開発したクローラの紹介を行います。 ストリームデータに対してクロールをする上で工夫した、ドメインごとのクロール頻度制御などについて紹介します。 Akkaはメッセージ指向…

圏論初心者が関手に入門し、Scalaで実装した話

はじめに こんにちは。マイクロアドでソフトウェアエンジニアをしている飛田と申します。私は主に UNIVERSE Ads というプロダクトの開発に携わっています。 UNIVERSE Ads では、より関数型ライクな設計や実装を取り入れることにより、高い保守性と効率性を目…

アラートメールのslack通知の話

マイクロアドでアプリケーションエンジニアをしているタカギです。 バッチ開発がメインのチーム(第4開発ユニット:通称ゆーよん)に所属しています。 バッチといえば避けては通れないのが、アラート対応ですね。 そういうわけで、今回の記事では、アラート…

MAASを導入した話

こんにちは。マイクロアドでインフラエンジニアをしているハダです。 2回目にして久々のブログ執筆です。 今回の記事では、マイクロアドで利用を始めたCanonical社のMAASについて記事を書いていきたいと思います。 インストール方法や使い方などの詳細につい…

プロダクトにKotlinを導入して1年弱経ったので振り返る

アプリケーションエンジニアの宮田です。 自分の所属しているチームでは2019年10月から、既存のJava8で書かれたSpringBootアプリケーションへKotlinの導入を始めました。 今回のブログでは、Kotlinを導入して良かったこと、導入に当たって直面した課題、1年…

2020年度新卒チームでRedisの管理システムを作った話

こんにちは。マイクロアド2020卒グループです。 マイクロアドのシステム開発本部では、新卒メンバーのみで1つのシステムを作る『開発研修』を2018年度から行っています。 過去年度の開発研修 2018 : マイクロアドの新卒4人が研修で社内システムを開発した話…

サマーオンライン勉強会を開催します!

こんにちは。サーバーサイドエンジニアをしている武井と申します。 本日は、私が所属している採用委員会からのお知らせをさせていただきます! 【22卒エンジニア】サマーオンライン勉強会 | 株式会社マイクロアド 22卒向け サマーオンライン勉強会を開催しま…

Vue 3 に向けて Composition API を導入した話

システム開発本部アプリケーションエンジニアの Edy です。 マイクロアドの WEB アプリケーションのフロントエンドは、大半を Vue.js を用いて開発しています。 その Vue.js ですが、「Vue 3 is now in RC! (Vue 3 is now in RC! · Issue #189 · vuejs/rfcs …

Workplace from Facebookを導入した話

はじめまして。IT戦略グループの比嘉です。 マイクロアドでは社内コミュニケーションツールとして、Facebook社のWorkplaceというビジネス向けSNSを利用しています。2017年11月に利用を開始していますので3年弱の運用を続けています。 今回は導入に至った経緯…

Chrome84(beta)におけるUser-Agent Client Hintsの調査

Chrome84(beta)におけるUser-Agent Client Hintsの調査 はじめまして。Tech Labの郭です。 Tech Labは弊社の開発効率・運用効率・技術レベルの向上を目的として、業界最新かつ有効な技術を研究・導入するチームです。 今回はブラウザ界隈の最新仕様、User-Ag…

リモートワークでDiscordを導入しました

マイクロアドのサーバサイドエンジニアでチームリーダーを担当している松宮です。 マイクロアドは先月まで全社員フルリモートで、現在はリモートワークを取り入れた新しい働き方を模索している段階です。 リモートワークにおけるコミュニケーションは大きな…

Moleculeのdelegatedドライバ + OpenStackでAnsibleのテストを行う

インフラエンジニアの長田です。 今回は、Ansibleのテスト支援ツールであるMoleculeの実践例について記事にしたいと思います。MoleculeはDockerやPodmanでコンテナを起動し、その中でAnsibleロールのテストを簡潔に行うことができる便利なツールですが、Ansi…

マイクロアドのログ蓄積の流れ

はじめまして。サーバサイドエンジニアの前西と申します。主にETL処理*1のバッチ開発を行っています。 マイクロアドでは、広告配信ログやアクセスログなどのデータを元にして、様々な加工を行った上で蓄積を行なっています。 今回の記事では、私が普段業務で…

新卒2年目のエンジニアがモノイドの数学的な定義について調べてScalaで実装してみた

はじめに モノイド 代数学 圏論 Scalaでモノイドを実装する 代数学的な定義に従った整数を加算するモノイドの実装 圏論的な定義に従った整数を加算するモノイドの実装 モノイドの合成 Catsによるモノイドの利用例 おわりに はじめに こんにちは。マイクロア…

Jestを使ったVueコンポーネントのテストを導入した話

はじめまして、フロントエンドエンジニアをしている川上です。 業務では、主にサービス要件に沿ったフロントエンド開発を担当しています。 今回は、私自身初めての経験だったフロントエンドのテスト導入手順や、 導入するにあたって気をつけた点などをお話し…

Hive パフォーマンスを改善する設定の紹介

マイクロアドではデータ基盤に Hive が使われています。 データ基盤について、以下の記事をご確認ください。 MicroAdのデータ基盤 より使いやすいデータ分析基盤にするために この一年間、Hive を使う機会が増えましたのでクエリパフォーマンスを改善する為…

新卒がMLOpsに挑戦していく話

システム開発本部のデータサイエンスユニットに所属している19新卒の豊原です。 巷で結構耳にするMLOpsですが、結構苦労していらっしゃる組織も多いと考えます。 今回の記事では、マイクロアドで挑戦するMLOpsについての概要と、その挑戦について解説します…