つくる

Scalafix (Linter) のルール開発をした話

はじめましての方ははじめまして。新卒期間も終了し、晴れて一般エンジニアになりました Javakky です。 今回は、 Scala の Linter であり自動リファクタリングツールでもある Scalafix について、ルール開発の流れについて話していこうと思います。 github.…

環境を GitLab CI に移行してビルドを高速化した話

はじめましての方ははじめまして。ピクシブで Scala エンジニアとして働いている Javakky です。 今回はビルド高速化 / デプロイの利便化のためビルド環境を Jenkins から GitLab に移行しましたので、そのレポートをお送りしていきたいと思います。 弊社の…

pixiv のデザインシステム実装『charcoal』を OSS 化します

こんにちは、@f_subal です。普段はおもに pixivFACTORY のフロントエンドを見たり、社内のデザインシステム整備の仕事をやったりしています。 さて、2021年に開催した弊社カンファレンス #pixivdevmeetup にて発表しましたデザインシステムの Web 版実装が…

ParamHelperにPSR-7とValueObject の力を授けた話

こんにちは、VTuberとPHP をこよなく愛しているふじしゃんです。 去年の7月からpixiv運営本部 Webエンジニアリングチームでアルバイトをしています。 今回は、pixivのParamHelperにPSR-7とValueObjectの力を授けたRequestParamFilterをピクシブ百科事典に実…

Google Cloud Secret Manager を使って機密情報の保存をセキュアにした話

はじめましての方ははじめまして。21新卒エンジニアの Javakky です。 突然ですが質問です!みなさんは本番環境で利用するDBのアクセス情報などの機密情報はどこに保存していますか?弊チームでは、社内でホスティングしているGitLabを利用しており、リポジ…

みんなでプロダクトをつくる「おもちゃ箱」の取り組み

こんにちは、pixivのリクエスト機能を開発するチーム(以下、リクエストチーム)で22新卒として内定者アルバイトをしているsaitoです。 リクエストチームでは、コミッションという新しい領域に挑戦しています。リクエスト機能をリリースして1年が過ぎた今で…

Scala で Writer モナドを利用して警告処理を実装した話

はじめましての方ははじめまして。21新卒エンジニアの Javakky です。 今回は、「ログに出力はしたいけど、ロジックからは分離したい」そんなモチベーションを叶えるモナド、 Writer モナドを利用した話について書いていきます。 前回のお話 社内の管理画面…

GitLab を利用したプロジェクトに Scala Steward を導入して依存関係を継続的に更新する仕組みを作った話

はじめましての方ははじめまして。21新卒エンジニアの Javakky です。 今回は、リポジトリの依存関係を最新に保つための取り組みを始めたので、そのレポートになります。 背景 私の部署では Scala というプログラミング言語と sbt というビルドツールを利用…

WACATE2021 冬に参加してきました #WACATE

こんにちは!クリエイター事業部 FANBOX部でエンジニアをやっているkumaです。pixivFANBOX開発とソフトウェア品質・テストに関する技術互助会「t-software-quality」活動に携わっています。 inside.pixiv.blog 2021年12月12日、 12月19日の2日間で行われたWA…

pixiv Android アプリでのデザインシステムを活用したダークテーマ対応

デザインシステムを利用した色の設定 色の実装について Theme切り替え 依存関係 デザインシステムと Material Components for Android Color Theming コンポーネント まとめと今後 フリーランスのソフトウェアエンジニアとして活動している djyugg です。ピ…

中高生国際Rubyプログラミングコンテスト2021 in Mitaka 最終審査会参加報告 & ピクシブ賞受賞者インタビュー

中高生国際Rubyプログラミングコンテスト2021 in Mitakaスポンサー記事を発信しましたpixiv事業本部の丸山(@alitaso)です。 2021年12月4日(土)に 中高生国際Rubyプログラミングコンテスト2021 in Mitaka の最終審査会がオンラインで行われました。ピクシ…

事業部横断でソフトウェア品質・テストの技術を研鑽する場 t-software-qualityのご紹介

高信頼性ソフトウェアエンジニアリング研究会 bashです。 ピクシブでは、何を実現すべきかの探索から、設計・実装・テスト・リリース、そしてフィードバックを得て再考するというすべてのアクションをプロダクトチームで包括的に担当する、いわゆるフルサイ…

Scala を利用した社内向けサービスの管理画面に Casbin を導入しました!

はじめましての方ははじめまして。21新卒エンジニアの Javakky です。 この度、社内向けサービスの管理画面に権限管理機能を実装するにあたり、 Casbin というアクセス制御ライブラリを利用しましたので導入までの流れをレポートしていきます。 Casbin とは …

ElixirConf US 2021 登壇のご報告

こんにちは、福岡オフィスのエンジニア@imaimaです。 先日2021年10月12日から15日にわたって開催されたElixirConf US 2021にオンライン登壇し、ぶじに終わりましたので、そちらについてのお話をします。 ElixirConf US 2021について ElixirConfとは、プログ…

PIXIV Design System 2021 の発表をしました(後編) #pixivdevmeetup

こんにちは。フロントエンドエンジニアのpnlyです。 こちらの記事は前後編に分かれた記事となっておりますので、前編の記事「PIXIV Design System 2021 の発表をしました(前編)」もあわせてご覧いただけるとよりお楽しみいただけると思います。 前編では、…

pixivのブックマークに関する負荷対策をしました

10/22(金) 追記 この記事で解説している内容について解説する勉強会を開催することとなりました。以下のconnpassよりお申し込みください。 pixiv.connpass.com 10/22(金) 追記 pixivのブックマークについて ブックマークDBの問題について 具体的な対策内容 …

#iOSDC Japan 2021にピクシブのエンジニアが3名登壇しました

こんにちは。pixivコミックのiOSアプリを開発しているkaraage(@krgpi)です。 2021年9月17日から19日に渡って開催されたiOSDC Japan 2021に、3名のエンジニアが登壇しました。登壇した各メンバーの発表スライドと発表後のコメントをまとめましたので、ご活…

型安全なHTTP入力を保証するParamHelper

こんにちは。pixiv運営本部 開発支援チームでpixivのコーディング環境の向上をしているyosatakです。 入力取得の安全性向上 PHPでは以下のようなURLのクエリパラメータを$_GET['id']経由で取得できます。 https://www.pixiv.net/novel/show.php?id=14921239 …

#iOSDC Japan 2021にピクシブのエンジニアが3名登壇します!

こんにちは。ピクシブでpixivコミックのiOSアプリ開発をしているkaraage(@krgpi)です。2021年9月17日から19日に渡って開催されるiOSDC Japan 2021に、今年も3名のエンジニアが登壇します。 iosdc.jp 登壇情報 以下、ピクシブのエンジニアが今年発表する内…

PIXIV DEV MEETUPでお話した「ブランディングページの 世界観を表現する技術」のセッション資料公開

エンジニアのyui540です。 PIXIV DEV MEETUPで「ブランディングページの世界観を表現する技術」というタイトルで、私が今まで関わってきたPIXIVプロダクトのブランディングページを実装するにあたって、サービスの世界観を表現するのにどのような動き・技術…

ピクシブは RubyKaigi Takeout 2021 に Platinum スポンサーとして協賛します

pixiv事業本部の丸山(@alitaso)です。 2021年9月9日〜11日の3日間にわたって RubyKaigi Takeout 2021 という Ruby のための技術カンファレンスが開催されます。今年は時勢もありオンラインでの開催になります。 ピクシブ株式会社は Platinum スポンサーと…

新卒11名が AWS のスペシャル研修 に参加した話

こんにちは。 21新卒エンジニアの ahu です。 今月の1日から3日にかけて、AWS Jumpstart for NewGrads という AWS のスペシャル研修が開催され、弊社からは11名の新卒エンジニアが参加しました。 今回は、その参加レポートをお届けします。 AWS Jumpstart fo…

オンラインの開発者カンファレンスPIXIV DEV MEETUP #pixivdevmeetup を開催しました

こんにちは、CTOの道井です。今回は5/31まで開催していたPIXIV DEV MEETUPから5/14に行ったLIVE SESSION内のキーノートについてご紹介します。 PIXIV DEV MEETUPのビジョン これまでピクシブではオフラインの技術カンファレンスを定期的に開催してきました。…

【NLP2021】言語処理学会年次大会の参加レポート2021

pixivの小説のレコメンドを改善している Webエンジニアの pawa です。普段は以下のような記事を書いています。 【NLP2020】言語処理学会年次大会の参加レポート2020 硬式庭球部 活動100回の軌跡 【人工知能×創作】AIで小説を書くのに挑戦(AIXオンラインセミ…

ピクシブでのNotionのつかいかた

こんにちは、pixivのリクエスト機能を開発するチーム(以下、リクエストチーム)でプロダクトマネージャーをしているgeta6です。 ピクシブでは、社内ドキュメンテーションツールとしてNotionを採用しています。Notionでうまいことドキュメンテーションが機能…

Google Play Billing Library v3に対応した話

みなさんはじめまして。初めてじゃない方はお久しぶりです。pixivコミックAndroidアプリ担当のconsommeです。好きなウマ娘はトウカイテイオーとマヤノトップガンです。 Androidアプリにおいて、アプリ内で使えるアイテムやサービスの有料会員登録などを行う…

Google Cloud Innovators Gym Japan にピクシブから3名の社員が参加しました

Google Cloud Innovators Gym Japan とは Google Cloud Innovators Gym Japan(以下、G.I.G.)は『Google Cloud の技術スキル習得を目的とした、業界をリードするエンジニア向けの招待制特別プログラム』として Google Cloud より提供されました。認定取得を…

Herokuから ECSに 移行した

こんにちは、インフラ部の id:sue445 です。私事ですが先日GCPの Professional Cloud Architect を取得しました。 そういうわけで今日はGCPではなくAWSの話をします。 tl;dr; 劇的ビフォーアフター 構成 移行のモチベーション パフォーマンス向上 コスト圧縮…

Android版 pixiv Sketchの新ドロー機能を開発したのでその裏側を赤裸々に語ります

Androidアプリをつくっているkobakenです。DroidKaigi 2019の登壇予告記事を投稿して以来ですね。皆さん元気にしていましたか? kobakenはというと、Android版 pixiv Sketchをもりもり開発しておりました。Jetpack Composeをプロダクション投入したすぎてウ…

CIで Androidアプリのライブラリ更新を楽にする

こんにちは。ピクシブ株式会社でpixiv Androidアプリの開発を担当しているverno3632です。 今回は弊チームで導入しているライブラリ更新の仕組みについてお話します。 ライブラリ更新の流れ まずpixiv Androidアプリの開発で利用しているツールを紹介します…

プロジェクト内のライブラリをロードしつつ、ブラウザで動作するPHPStan Playground

こんにちは。開発支援チームでpixivのコーディング環境の向上をしているyosatakです。 pixivではPHPStanを活用して、スクリプト言語であるPHPのコーディング上のミスをデプロイ前に検出しています。 inside.pixiv.blog PHPStanは開発者にエディタを強制した…

uGUI記述ライブラリ『Mux』を公開します

こんにちは。VRoid モバイル/StudioのUIを開発したねこまんまです。 先日VRoid モバイル/Studioで利用しているuGUI記述ライブラリ『Mux』を公開しました github.com 実は以前、pixiv TECH SALONで少しだけ紹介させていただいたのですが、今回はこのライブラ…

ピクシブ百科事典のテストにphp-mysql-engineを導入しました

はじめましての方ははじめまして、アルバイトとして働いているJavakkyです。 本記事では、データベースを利用するアプリケーションのテストに利用できるphp-mysql-engineというライブラリの導入方法と使用感について紹介します。 github.com php-mysql-engin…

パルシィのアプリケーションモジュール分割

ピクシブ株式会社で主にアプリ開発を担当しているmakunです。普段は、パルシィ(Palcy)のAndroidアプリ版(以降palcy-androidと表記)の開発をしています。 play.google.com 以前には次のような記事を書いています。 inside.pixiv.blog 今回は、パルシィのアプ…

JIMS第108回研究大会でpixivの推薦を多様化させる発表を行いました

こんにちは、アドプラットフォーム部でインターンをしている@ucchi-です。 大学では計量経済学を専攻しています。 今回は学生として、慶應義塾大学星野崇宏研究室とピクシブ株式会社が行った共同研究の内容についてお話しします。 本研究は「Variety-Seeking…

Figma でアイコンを更新したら GitLab に勝手に MR が作られるやつ

こんにちは、@f_subal です。普段はおもに pixivFACTORY のフロントエンドを見ています。最近は社内のデザインシステム整備の仕事もやっており、今回はそちらで作っているアイコンライブラリの話をします。 SVG アイコンを社内 npm で配る みなさん、プロダ…

PIXIV TECH FES.を振り返って

ピクシブはこれまでいろいろな企業カンファレンスを開いてきました。2020年2月にはピクシブのエンジニアが一堂に会するPIXIV TECH FES. を開催しました。 今回はPIXIV TECH FES. のキーノートを務めたCTOのharukasanへのインタビューを通して、PIXIV TECH FE…

Micro Hardeningに参加してきました

こんにちは。FANBOX部でエンジニアをしているkumaです。2020年11月に開催されたInternet Week内のハンズオンプログラムMicro Hardeningに弊社のエンジニア6名が参加しました。今回は、その参加レポートをお届けします。 Micro Hardeningとは Micro Hardening…

【NLP2020】言語処理学会年次大会の参加レポート2020

pixivの小説を改善している Webエンジニアの pawa と申します。最近は個人的な好奇心でGPT-2の日本語モデルを使って小説を書いて遊んだりして人工知能と人類共同での創作可能性を探っています。 普段は以下のような記事を書いています。 硬式庭球部 活動100…

pixivのUIを迅速にアップデートする UIUXチームのフロントエンドモダン化の歴史

こんにちは。pixiv事業本部のUIUXチームでプロダクトマネージャーを担当しているdo7beです。ピクシブにエンジニアとして入社して5年弱ほどで、1年前からプロダクトマネージャーとして活動しています。 今回は僕が所属しているUIUXチームの歴史とフロントエン…

ソフトウェアテスト技法練習帳読書会を開催しています

みなさんこんにちは!ピクシブで唯一(?)のテストエンジニアの @shimashima です。 さて、今年1月にソフトウェアテスト技法練習帳 ~知識を経験に変える40問~ という書籍が発売されました。これは元々JaSST(ソフトウェアテストシンポジウム) '19 東北で参加…

特別コラボ企画の爆発的アクセスを捌き切るエンジニアリングと腕力

こんにちは。ピクシブの社内エンジニア職横断組織「エンジニアギルド」マネージャのbashです。主にエンジニア採用プロセスを取りまとめています。 ピクシブでは複数の事業部があり、様々な専門性を持ったメンバーが集って事業領域にフォーカスする体制を取っ…

プロダクトチームの自走データ活用を技術で支えるデータ基盤整備エンジニアリングとは

こんにちは。ピクシブの社内エンジニア職横断組織「エンジニアギルド」マネージャのbashです。主にエンジニア採用プロセスを取りまとめています。 ピクシブでは複数の事業部があり、様々な専門性を持ったメンバーが集って事業領域にフォーカスする体制を取っ…

「世界中の当たり前になる」VRoid Hubのエンジニア三銃士に話を聞きました

みなさんこんにちは。ピクシブで採用担当をしているkamikoです。 本日はピクシブで働いている社員が、普段どのような仕事に携わっているのか紹介したいと思います。 今回は「誰もが自分の3Dキャラクターを持ち、キャラクターを使った作品作りや、VR/AR空間で…

#iOSDC Japan 2020 の公式サイトが出来るまで

皆さんこんにちは、福岡で課題解決部に所属しているエンジニアの petamoriken です。iOSDC Japan 2020のデザインスポンサーとして公式サイトを作った話をエンジニア目線で紹介していきます。 https://iosdc.jp/2020/ 公式ロゴ、サイトデザインについては既に…

#iOSDC Japan 2020 の公式ロゴ・サイトデザインができるまで

皆さんこんにちはFromAtomです。 先日、iOSDC Japan 2020の公式サイトが公開されました。iOSDC JapanはiOS関連技術をコアのテーマとした技術者のためのカンファレンスです。 https://iosdc.jp/2020/ ピクシブ株式会社は、iOSDC Japan 2020のデザインスポンサ…

Terraform運用事例書きました

こんにちは、インフラ部の id:sue445 です。 Terraformなにもわからないけどディレクトリ構成の実例を晒して人類に貢献したい - エムスリーテックブログ や Terraformのディレクトリ構成の模索 - Adwaysエンジニアブログ を読んで影響されたのでピクシブのTe…

赤いラクダは3倍早い!ピーク時毎分1400件を捌くための決済処理のチューニング紹介

こんにちは、4月からBOOTH部になったorekyuuです。 この記事では、転属後の一番大きな成果である、BOOTHで発生する大量の注文(ピーク毎分約1400件)を整合性を取りつつ高速にさばく改善について解説します。 BOOTHが抱えていた課題 まずはBOOTHが抱えていた課…

「アークナイツバトルイラストコンテスト」開発作戦

アドプラットフォーム部でエンジニアをやっているmyonsawaです。好きなオペレーターはエクシア、イフリータ、アズリウスです。 弊部署では普段Kubernetesを中心とした広告配信システムの運用保守や収益性改善のためのデータ分析、収益情報の自動集計などとい…

RendertronをGKEとCloud Runで構築しました

こんにちは、インフラ部の id:sue445 です。 今回はRendertronをGKEとCloud Runの両方で構築した話をしたいと思います。 tl;dr; 前置き 今までのRendertronの問題点 GKE版Rendertronについて GKEの採用理由について GKE版Rendertronの構成 全体 GKE内部 pod…