freeeの開発情報ポータルサイト

技術

権限制御とは? を freee の権限管理基盤で説明

どうも、freee でエンジニアリングマネージャー をやっている sentokun です。 以前に私の所属しているチームで開発している権限管理基盤マイクロサービスの記事を書いたのですが、そういえば「権限制御ってなに?」という説明をしていないと思ったので、今…

git worktreeを使ってプルリクレビューを効率化した話

共通マスタ基盤チームにおけるソフトウェアエンジニアのyugoです。 共通マスタ基盤チームは、従業員、商品、取引先といった製品横断で利用できるマスタデータを一元管理し、ユーザーにfreeeプロダクトにおける統合体験を提供できる基盤開発をミッションとし…

5月31日(金)・6月1日(土)、freee 技術の日 2024開催!

DevBrandingチームのmaoです! すでに公式サイトなどをご覧になった方もいらっしゃるかもしれませんが…今年もfreee 技術の日を開催します! freee-tech-day.freee.co.jp 「freee 技術の日」って? freee 技術の日とは、昨年2023年から始まったfreeeのテック…

おじいちゃんのスマホ操作を見ながら感じた認証のあり方について

こんにちは。認証認可基盤エンジニアのてららです。 最近好きな言葉はコンフォートゾーンです。好きな食べ物はニンジンです。 猫派です。 経緯 週末、パートナーが祖父母の家に帰るということで付き添いをしてきました。 その1つの目的としてパートナーの祖…

Playwright の waitForLoadState('networkidle') のようなメソッドを Selenium で動かす

Chrome DevTools Protocol を使って、 Selenium でネットワークの待機を実現します。

freee 会計ソフト iOS のレシート撮影カメラをリニューアルしました

Hello, world. 会計ソフト iOS チームで開発をしている Kirk(カーク)です。 みなさまとのご縁で生きながら、コントラバスを弾くためにコードを書いています。 今回、恐らくユーザーからは念願であったであろう、レシート撮影で使用するカメラのリニューア…

Attack Surface Management? はじめました

こんにちは、北海道から freee PSIRT(Product Security Incident Response Team)に参加している yu です。 今年は雪が少ないな〜と思っていたら最近ドカドカ降るようになってきて、1日デスクで集中した後に外に出ようとすると玄関のドアが雪で開かない日も…

マインドマップを使ったテスト分析を開発チームとQAチームでやってみた

こんにちは freee会計のQAエンジニアをしているsugenoです。 freee QA Advent Calendar 2023 24日目です。 私は2023年4月にfreeeにQAエンジニアとして入社しました。 今回は、会計チームでマインドマップを用いたテスト分析を始めてみたので実際やってみてど…

Bundleの3年間をライブラリで振り返る

こんにちは。freee株式会社でBundleの開発を行っている kouhei です。 この記事は freee Developers Advent Calendar 2023 の23日目の記事です。 Bundleは、サービス提供からそろそろ3年が経とうとしているサービスで、もともとはfreeeにグループジョインし…

複数の検証環境でのDB相乗り化

この記事は freee 基盤チーム Advent Calendar 2023 の 22 日目の記事です。 こんにちは、freee のDBRE (Database Reliability Engineering) で ジャーマネ(マネージャー)としてDBRE組織を運営管理しているJuni です。 今回は何故integration環境*1を相乗…

リグレッションテストで使うテストの設計にGIHOZ使ってみた

こんにちは、freeeのQAでマネージャーをしてるymtyです。 freee QA Advent Calendar2023 22日目です。 私は、QAマネージャーとしていくつかのプロダクトのQAに関わっています。今日はその中のひとつで、freee会計の申請機能(経費精算、各種申請、支払依頼、…

freee会計の月末のDB負荷を減らしたい!

こんにちは、freee 基盤チーム advent calendar の 21 日目担当、DBRE (Database Reliability Engineer) の shinta です。今年新卒入社しました。 freee の中でも一番のリクエスト数を誇る freee会計の DB は、月末に負荷が高まって色んなアラートを発報する…

GoのASTを解析してFeature Toggleを掃除する

この記事はfreee Developers Advent Calendar 2023の21日目の記事です。 こんにちは、金融開発部でEMをしている ogugu です。 今回は、Go言語において Feature Toggle の分岐を掃除するCLIを作ったので、ご紹介します。 ※ 毎年恒例の開発合宿 での成果になり…

どうやってGoをキャッチアップしてきたのか

こんにちは。この記事はfreee Developers Advent Calendar 2023の20日目になります。 認証認可基盤チームのアプリケーションエンジニアを担当しているハトンです。 一番好きな言語はGoです! 学生時代はコンピューターサイエンスとは無縁で、メモリとストレ…

Terragruntで快適なTerraformライフをめざす

Gruntwork社が公開しているTerraformのラッパーツール「Terragrunt」について、基礎的な概念や主要機能、使用方法について紹介します。Terragruntを用いてDRYにTerraformコードを書くことで、インフラの設定管理を効率化を目指しましょう!

ファイルの後方互換を考える

こんにちは、freee販売 開発エンジニアをやっているtakayanです。この記事はfreee Developers Advent Calendar 2023 - Adventar 17日目です。 2023年に開催されたfreee技術の日ではPublic APIについての話をしました。その中で後方互換の話もしましたが、こ…

AWS のコスト統制の道

SRE 統制チームの oracle です。 この記事は freee 基盤チームアドベントカレンダー の16日目になります。 今回は AWS の コスト統制についてお話させて頂きたいと思います。 先日「 AWS の組織移行をしました 」という記事の中で AWS の組織移行のために SR…

多様なプロダクトが存在する freee における health check 標準化

こんにちは。freee の Platform Solution チーム1 に所属している nkgw (Twitter) です。 この記事は freee 基盤チーム Advent Calendar 2023 の 15 日目の記事となります。 普段は、エンジニアリングマネージャーをしつつ、新規プロダクトのリリースサポ…

AWS の組織移行をしました

SRE 統制チームの oracle です。 この記事は freee 基盤チームアドベントカレンダー の12日目になります。 今回は AWS の 組織移行を行った話をさせて頂きます。 AWS の 組織移行というのはどういうこと?と思われる方もいらっしゃるかと思いますので、正し…

PagerDutyを用いたアラート対応改善の取り組みとTips紹介

はじめに こんにちは!freee の Enabling SRE チームに所属している阿部 寛明 (uryy)と申します。freeeのシステムを運用する際にはDatadogからの通知をもとにアラート対応するケースが多いのですが、組織拡大により従来の方法ではうまくワークしない箇所もで…

型を意識した Ruby on Rails 上のモデル

こんにちは。freee販売を大阪で開発しております、bucyou (ぶちょー) というものです。 この記事は、freee Developers Advent Calendar 2023 の10日目です。 例によって普段は Ruby on Rails で開発をしておりますが、ここでのアーキテクチャや、モデリング…

TerraformのAWS ProviderでRoute Table Resourceを利用するときに気を付けたほうがよいこと

こんにちは!PSIRTのimarikuです!この記事はfreee 基盤チーム Advent Calendar 2023の8日目としてお送りします。 私は普段、PSIRTのメンバーとして主にクラウド方面を中心にプロダクトセキュリティの向上に取り組んでいます。 PSIRT buleteamでは現在AWS Ne…

スクラムチームのメンバーとしてQAが入ってみる

こんにちは。freee会計のQAをしているakariです。 freee Developers Advent Calendar2023 8日目です。 私が所属する開発チームでは、QA含むスクラムチームで開発をしています。スクラムチームの中で QAがどのような動きをしているかについて先日インボイス制…

How to write an effective test cases?

Hello! Today is the 6th day of Advent Calendar 2023, and my name is Ween, QA of データ化サービス. I am grateful for the opportunity to write a blog and share with everyone the best practices that we used in my former company where I am als…

A novice to API testing

Hello! I’m Tin, a QA engineer of HR payroll and this is the 5th day of the freee QA Advent Calendar 2023. I had the opportunity to test an API in July of the current year, 2023, and I made the decision to write about it in the hopes that i…

インフラ爆速構築記〜freeeの場合〜

こんにちは。この記事は freee基盤チームアドベントカレンダー の4日目になります。 認証認可基盤チームのアプリケーションエンジニアを担当している てらら です。 社内の人にはエンジニアではなく、freee Tech Nightの司会の人、またはSlackで良く見かける…

謎解き制作にfreeeQAプロセスを適用してみた

こんにちは。freee申告でQAエンジニアをしている金子です。 freee QA Advent Calendar2023 の4日目です。 freeeには謎解き部があり、謎解き公演に一緒に行ったり、社内イベント用に謎解き制作を行なったりしています。 この記事は、普段はWebサービスに対し…

ArgoCDバージョンアップを安全かつ迅速に行うための取り組み

概要 freeeではAmazon Web Services (AWS) Elastic Kuerbentes Service (EKS) 上にほとんどのアプリケーションが載っており、EKSへのデプロイ基盤としてはOSSの ArgoCD を利用しています。 ArgoCDから各クラスタにデプロイを行うため、非常に中央集権的なア…

envoyにおける分散トレーシングの導入でオブザーバビリティを向上させた話

はじめまして、2023/6からfreeeのEnabling SREチームに所属している大木竜勝(ryu)です。 この記事はfreee Developers Advent Calendar 2023 - Adventar 3日目です。 この記事ではenvoyの分散トレーシングを用いてオブザーバビリティの向上を実現した取り組み…

freee 基盤チームアドベントカレンダーの歩き方

SREの河村(at-k)です。 本記事は freee基盤チームアドベントカレンダー の1日目になります。 カレンダー企画にあたり 今年もこの季節がやってきました。年末に向けて冬が深まり、心なしか忙しなくなってくる中、毎日ブログが一本ずつ投稿されていくのを見て…

terraform stateの再設計に取り組んだ話

こんにちは!freee enabling sre teamに所属しているhamaa(濵田雄太)です。 この記事はfreee Developers Advent Calendar 2023 - Adventar 1日目です。 自分はfreeeにjoinし、おおよそ1年がたちました。この1年間で主にterraform state再設計、移行につい…

Jetpack Compose で新規アプリを開発した

こんにちは、モバイル請求書の Android アプリを担当している nakaji です。 前回の iOS アプリの記事に続いて、今回は Android アプリの技術選定と TalkBack 対応についてご紹介します。 アプリのダウンロードはこちらから: play.google.com freee請求書fre…

TCA と SwiftUI で新規アプリを開発した

こんにちは、モバイル請求書チームで iOS エンジニアをしている yaya です。 freee請求書のモバイルアプリが2023年9月6日にリリースされました! www.freee.co.jp そのモバイルアプリの開発について、全3回に渡ってお届けしていきます。 今回はその第一回目…

Kaigi on Rails 2023参加しました!

freee のエンジニアで Kaigi on Rails 2023 に参加しました! こんにちは〜!freee のエンジニアメンバー、anna , fumi , hachi , k-massan , nakayan , otyamura , yongi です。 今回、Kaigi on Rails 2023 に参加してきました! Kaigi on Rails とは 2023/…

技術書典15で「freee 技術の本」 を出します!

こんにちは!DevBrandingのellyです。 いよいよ今週末は技術書典15ですね! この度、freeeの有志の開発メンバーで初めて技術同人誌「freee 技術の本」を制作しました。 すでに技術書典 マーケットにて公開されており、オンラインでは11月11日(土)より入手可…

デザイナーがDroidKaigi2023に参加してきた

Droid Kaigi2023に参加してきたよ こんにちは!freeeのプロダクトデザイナーのyucchan, tomominです。 DroidKaigiとはAndroid技術情報の共有とコミュニケーションを目的としたカンファレンスで、今年は9/14〜9/16開催されました。 DroidKaigi 2023 様々な企…

DroidKaigi 2023に参加しました!

こんにちは、新卒iOSエンジニアのasahiです! iOSDCに引き続き、9/14〜9/16に開催されたDroid Kaigiにも参加してきました。 DroidKaigi会場 ブース たくさんのブースが出展されていましたので、全て回ることを目標にブース巡りをしていました。また、一緒に…

iOSDC2023に参加しました!

こんにちは、新卒iOSエンジニアのasahiです! 9/1 ~ 9/3に開催されたiOSDC 2023に参加してきました。iOS開発の歴が短く、またこういった技術カンファレンスは初めてでしたので、参加する前と後でものすごく世界が広がった気がするので、共有していきたいと思…

リソースベースポリシーをサポートしないAWSリソースのクロスアカウント設定と、Go による実装

こんにちは、サービス基盤のkumashunです。 freeeでは、ほとんどのサービスがAWSをインフラ基盤として利用しています。さまざまな目的や業務上の要件に応じて、複数のAWSアカウントを運用しており、時折、異なるアカウント間でのネットワーク通信やリソース…

ActiveJob の retry_on を使いこなす

こんにちは! 大阪で freee販売を開発しております、bucyou (ぶちょー) というモノでございます。入社1年にしてようやく DevelopersHub デビューです! Rails での開発や、設計面の話題をお送りしたいと思います。今日は ActiveJob についてです。 ActiveJob …

AWS Network Firewallを使ったegress filterを導入した話

こんにちは、PSIRTのWaTTsonです。ちょっと前にDependabot alertについて記事を書いたばっかりですが、また別のネタが湧いてきたので書きます。今回はAWS Network Firewallについての話です。 developers.freee.co.jp AWSのネットワークセキュリティ freeeの…

CEDEC2023に参加しました!

こんにちは、QAチームのtakeです。 2023年8月23日〜25日にかけて行われたCEDEC2023に参加してきました。 cedec会場 なぜCEDECに参加したのか CEDECは、ゲームを中心とするコンピュータエンターテインメント開発に携わる方を中心に開催されるカンファレンスで…

freee の権限管理基盤マイクロサービスの今を語ろう!

はじめに こんにちは、freee の 権限管理基盤マイクロサービスを開発するチームでエンジニアリングマネージャーを務めている sentokun と申します。前職ではできることをできる限りやろうというスタンスで開発チームをリードし、アーキテクチャ設計やチーム…

ドメインや仕様が複雑な開発をうまくすすめるためにやったこと

freee人事労務の給与計算チームでは、先日入退社月の日割り計算の機能をリリースしました。この機能開発は自分が経験した中では比較的ドメインや仕様が難しい開発で、学びが多くあったため、プロジェクトを前に進めるためにやったことをこの記事にまとめたい…

Kotlin Multiplatformを運用してみた開発とその振り返り

こんにちは、モバイル開発のandrekandore (かんちゃん)だ! ※ この記事のどこかにiOSDC Japan 2023のチャレンジトークンが隠されているよ! はじめに この記事は、Kotlin Multiplatformを用いて実現しようとしたこと、運用してみた結果の振り返りについて…

CloudNative Days Fukuoka 2023に参加しました!

こんにちは、SRE Platformチームのmohaと申します。 去る8/3、CloudNative Days Fukuoka 2023が開催されました。freeeからはSRE Developer eXperience (DX) チームのmiyahikaが登壇したほか、Dev brandingチームとSRE、PSIRTの有志がブース運営のため参加し…

Dependabot alertをSlackに通知して、トリアージ運用に役立てる仕組みを作ってみた

こんにちは、PSIRTのWaTTsonです。 去年の12月にAdvent CalendartでAWS SecurityHubの結果をSIEM on Amazon OpenSearch Serviceに取り込んだ話を書きました: developers.freee.co.jp 今回は、同じくSIEM on OpenSearchを使った話で、GitHubのDependabotの運…

QAエンジニアでLT大会をしてみた

こんにちは、QAのharashinです。 先日QAチームでチーム内LTを実施しました! QAチームでLTをしようと思った理由は大きく2点あります 1. 組織拡大していく中で他のチームの取り組みやペインの言語化・可視化 QAチームは横断的な組織でQAチームには属していま…

Project間の依存関係の図示

ことのはじめ こんにちは、freeeのSREの久保木です。 freeeにはたくさんのProjectがあり、それらが複雑に依存関係を持ちます。 ですが僕はSREという所属上いったんはこれら全てに関与する可能性があります。なのでどんなProjectがあって、どれとどれがどう関…

RDS Proxyを用いたオンラインスイッチオーバーによるMySQLのアップグレードについて

おはこんばんちは、DBREの橋本です。 今回は、Amazon RDS Proxy(以降RDS Proxyとよぶ)を用いたRDS for MySQLインスタンスおよびAurora MySQLクラスタのオンラインスイッチオーバーの手法について、ある程度社内での運用が確立してきましたので解説いたしま…