MicroAd Developers Blog

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

2021年新卒チームでコーディング試験の管理システムを作った話

はじめに こんにちは。マイクロアド2021年新卒チーム ( id:bosq, id:realyutanemoto, id:suyama_naoki, id:tsuno_ryo, id:moriya_shun ) です。 新卒研修が無事に終わりましたので、今年の研修について紹介したいと思います。 はじめに 開発研修について マ…

kotlinx-metadata-jvmを使って、kotlin-reflect無しでreflectする

はじめに こんにちは、マイクロアドでソフトウェアエンジニアをしている宮田です。 この記事では、kotlin-reflectの機能を代替しうるライブラリとして、kotlinx-metadata-jvmについて紹介します。 Maven Repository: org.jetbrains.kotlinx » kotlinx-metada…

Scala With Cats を読む前に知っておきたかったこと

はじめに こんにちは。マイクロアドでソフトウェアエンジニアをしている田口と申します。 私が所属しているチームでは COMPASS というプロダクトに関する開発をメインで行っており、広告配信システム(Scala)、管理画面(Kotlin・Java)、バッチ系(Digdag(Pytho…

チーム管理対象サービスプロジェクトの導入と比較 (Cloud 版 Jira Service Management)

はじめに マイクロアドでの利用状況 Jira Service Management Cloud Confluence Cloud Jira Service Management について カスタマーポータルは専用URLから オープン/非公開設定でアクセス制御 自動化を利用して作業を効率化 ナレッジベースで情報提供と自己…

redis threadedI/Oの検証

はじめに マイクロアドでインフラエンジニアをしている柏木です。 マイクロアドでは広告配信に高速なKVSであるRedisを使用しています。 Redisはシングルスレッドでの高速性、安定性を売りにしていました。しかし6.0でマルチスレッド機能であるThreded I/Oが…

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…