有名テック企業の技術ブログを、ひとつのフィードで。
フィード
33件
はじめに こんにちは!freee人事労務のエンジニアのkaseです。 RubyKaigi 2026が函館にて開催されました。 参加された方はいかがでしたか?私は初参加だったのですが、興味のある講演を聞きつつ、ハセガワストアのやきとり弁当やラッキーピエロといったローカルフードを満喫でき、大変満足でした!(少し食べすぎました) freeeは、GoldスポンサーとDrinkupスポンサーとして参加しており、三日目の夜にDrinkupを開催しました。 今回はその模様をレポートします! SweeeもDrinkupの参加者をお出迎え Drinkup当日の様子 Drinkupは、PREMIER HOTEL -CABIN PRESIDENT- HAKODATEにて開催されました。 Matzさんのkeynoteと、次回開催地が宮崎であるという発表をもってRubyKaigi 2026は閉幕。その余韻のなか、Drinkup会場には少しずつ参加者が集まり、乾杯が行われました。 円卓のオードブルを囲みながら、各テーブルで振り返りや会社の話に花を咲かせました。 会場全体は、落ち着いたトーンで、RubyKaigi最終日の夜にふさわしい空気でした。 ビンゴも盛り上がりました 食事が落ち着いてからは、ビンゴも開催されました! これはただのビンゴゲームではなく、RubyKaigiにちなんでRubyのメソッドをビンゴのマスとしたWebアプリを有志で企画し完成させたものです! 先ほどまでの落ち着いた空気から一転、みんな画面に集中して手元のビンゴと照らし合わせていました。 開発運営の私視点では、リーチからなかなかビンゴ達成者が出ず、バグがあるのではと非常にソワソワしました。 先着10名にfreeeオリジナルのノベルティを用意していたのですが、10人目と一瞬の差でビンゴを達成した方がいて……結局、11人にお渡ししました! 普段業務で扱わないメソッドも多く、「これは何だろう?」といったRuby自体への反応も生まれ、最後までRubyKaigiの空気を楽しめたのかなと思います。 出てくるRubyメソッドに一喜一憂 おわりに RubyKaigi、最高のイベントでした!改めて、Drinkupに参加してくださった方ありがとうございました! 来年もぜひ参加したいです!
freee でエンジニア兼 Dev Branding をやっているけむりだま (@_kemuridama) です. TSKaigi では 2024 年の初回の開催から運営に参加し, 昨年からコアスタッフとして企画や運営にも携わっています. 2026/5/22-23 で東京の羽田で開催された TSKaigi 2026 で外部のカンファレンスへの初登壇を行ったので, 登壇者と運営の両輪で走り抜けた話を振り返っていこうかなと思います. TSKaigi 2026 に参加した freee のメンバー 登壇者として Day 1 に 「密結合なバックエンドから TypeScript のコードを生成する」 というタイトルで 10 分のセッションを行いました. speakerdeck.com 自分自身がエンジニアとして開発に携わっている freee会計で行っている Ruby のコードを元に TypeScript のコードを生成する取り組みについて話しました. リリースから 13 年が経っているプロダクトで密結合となっているバックエンドとフロントエンドにどうやって向きあっていくのか—— この話は実は 2024 年の Advent Calendar で書いた話 が元になっているのですが, なぜ freee会計では OpenAPI Schema などのスキーマ駆動開発ではなくバックエンドのコードを SSoT (Single Source of Truth) としてコードの生成を行っているのかという点について深堀って話すことができたんじゃないかなと思います. 今後も freee会計の開発生産性や品質の向上に向けて対象範囲を広げていければ良いなと思っています. セッションの最後で話した Sorbet の型アノテーションから TypeScript の型を生成する取り組みも絶賛検証を行っています. 発表後に X を眺めると「Node.js から Ruby の Parser (WebAssmbly) を呼ぶのは面白い」「密結合は決して悪ではない」といった反応がもらえて登壇してよかったなと思いました. 背中を押してくれた (?) 同じコアスタッフの yuta-ike には感謝してますw 運営スタッフとして TSKaigi ではスポンサーチームとして TSKaigi 2026 のスポンサープランの検討からスポンサー集め, スポンサーベネフィットの履行に向けたタスクなどを行っていました. 今年もありがたいことにたくさんのスポンサーの応募があり, 希望に添えないところがたくさんあり心苦しかったです. 実は freee もゴールドスポンサーとして応募をしていたのですが, 厳正な抽選に外れてしまってブロンズスポンサーとしての協賛となってしまいました. 登壇があったのでドキドキしていたんですが, 当日はいろいろな運営タスクに忙殺されていたので良い意味で登壇の緊張を和らげることができました. 昨年開催された TSKaigi Hokuriku 2025 に続き Day 2 の懇親会の冒頭挨拶もさせてもらっていい経験ができました. 2 日間フルで動きっぱなしだったので流石に疲れましたが, 無事に大盛況で TSKaigi 2026 を終えることができてよかったです. セッションをほとんど見られなかったので, 後日ゆっくりアーカイブで気になっていた発表をチェックしたいなと思っています. 最後に TSKaigi 2026 に参加してくれた方, 自分のセッションを見に来てくれた方, スポンサーをしてくれた企業の方々ありがとうございました. 次は 2026/11/1 に仙台で TSKaigi Sendai 2026 が予定されています. 開催に向けて引き続き企画や運営を頑張っていきたいと思いますので, また会場でお会いしましょう! 本日 19:00 から TSKaigi 2026 でスポンサーをした freee と M3 でアフターイベントを開催します. 直前のお知らせですが, ご都合が合う方は是非ご参加ください! freee の大崎本社での現地参加と YouTube Live でのオンライン参加の両方が可能です! freee.connpass.com
こんにちは!フリー株式会社でエンジニアをしているyassyとkenzaです。 2026年1月30日に開催された「freee Tech Night」にて、「freee会計の大規模開発を支える "バックエンド委員会"」というテーマで登壇しました。 www.youtube.com freeeの基幹プロダクトである「freee会計」は、リリースから14年が経過した国内でも有数の大規模Ruby on Railsアプリケーションです。本記事では、この巨大なプロダクトをいかにして健全に保ち、進化させ続けているのか、その中核を担う「バックエンド委員会」の活動と、直近で取り組んだYJIT導入の詳細について解説します。 1. 巨大なモノリスと14年の歴史:freee会計の現状 freee会計のバックエンドは、2012年7月の最初のコミットから今日まで、膨大な機能追加と修正を繰り返してきました。そのため、以下のような課題があります。 開発規模: 毎週1,000以上のコミットが積み重なり、非常に多くのチームとエンジニアが同時に開発に関わっています。 複雑なドメイン構造: 長年の開発により、会計のコアロジックと周辺の業務ドメインが密結合しており、システム全体が巨大なモノリスとなっています。 技術負債の蓄積: 14年前のベストプラクティスが、現代のエンジニアリングにおいては逆に負債となってしまうケースも少なくありません。 2. 横断組織「バックエンド委員会」の役割 こうした技術的課題に対し、組織横断で改善を推進しているのが「バックエンド委員会」です。 委員会の2つのミッション 開発生産性の向上: 開発者が複雑な環境に惑わされず、素早く価値を届けられる状態を作る。 保守性・品質の向上: 10年後もメンテナンス可能なコードベースを維持し、障害に強い基盤を作る。 多様なメンバーによる草の根活動 この委員会の特徴は、参加の敷居が極めて低いことです。Rubyやバックエンドの知識に精通したエキスパートだけでなく、配属直後の新卒エンジニアも積極的に参加しています。 実際に、筆者の一人であるkenzaは、配属時にRuby未経験でしたが、Ruby歴3ヶ月の状態で委員会に参加しました。 普段は別々のチームでプロダクト開発をしているメンバーが集まり、組織横断的に兼務で改善タスクをこなしています。 3. 生産性と品質を高めるための具体的な取り組み バックエンド委員会が行ってきた主な取り組みを紹介します。 コードの治安維持:フォーマッタ/リンター(Syntax Tree, RuboCop) の整備 コードの品質を一律に保ち、実装やコードレビューでの負荷を最小限にするために導入しています。 メリット: 開発者は本質的なロジックの開発に集中でき、レビューに対するコストが大幅に下がりました。 課題: 導入時に作成した「rubocop_todo(後回しにしたルール)」が肥大化している点です。これを委員会で計画的に解消する仕組み作りを進めています。 型の導入:静的型チェッカー(Sorbet) / 型定義生成ツール(Tapioca) の普及 Rubyのような動的型付け言語において、大規模開発の安全性をもたらすのが静的型チェッカーのSorbetです。 取り組み: GitHub Actionsやテスト実行時のランタイムで型チェックを自動化。 効果: 型定義ファイル(RBI)の差分チェックにより、予期せぬ実行時エラーを未然に防げるようになりました。また、入出力の型が明確になることで可読性が向上しました。 開発サイクルの高速化:CI(継続的インテグレーション)の改善 1,000件/週のコミットを捌くためには、CIの高速化が命題です。 具体策: RuboCopを実行する際に変更差分のみを対象にしたり、テストデータのシード値をキャッシュ化するなどの工夫をしています。 地道な修正: 時折失敗するflakyなテストの撲滅や、実行時間の長いRSpecのチューニングを継続的に行っています。 4. Ruby YJIT 有効化によるパフォーマンス改善 今回のメイントピックが、Ruby 3.1から搭載されたJITコンパイル機能「YJIT (Yet another Ruby JIT)」の導入です。 YJIT導入の動機 大規模アプリケーションにおいて、ロジックの改善だけでパフォーマンスを劇的に上げるには限界があります。YJITは、実行時にRubyコードをマシンコードへ変換・キャッシュすることで、アプリケーション側のコード変更なしに速度向上を狙える、コストパフォーマンスの高い手法です。大規模でパフォーマンス改修が困難なfreee会計では一定の効果が見込めそうだったので、導入に至りました。 事前調査とリソース計画 YJITはメモリを多く消費することが分かっていたので、以下の観点で調査を進めました。 リソース見積もり: KubernetesのPod単位で、YJITで消費する分上乗せされるメモリリミットやワーカー数を試算しました。 OOMKilled対策: YJITが生成するコードのサイズやメタデータによるメモリ増加分を見積もり、Podのメモリ制限をあらかじめ調整しました。 検証からプロダクション導入まで staging環境での負荷テスト: HPA(自動スケーリング)をあえて停止し、試験環境に一定の負荷をかけて集中的にメトリクスを計測しました。 独自メトリクスの監視: code_region_size(生成コードサイズ)や ratio_in_yjit(YJIT実行率)をロギングし、期待通り動作しているか確認しました。 手動カナリアリリース: 本番環境では、いきなり全台に適用するのではなく、一部のPodから段階的に反映しました。異常がないことを確認しながら展開し、万が一の際のロールバック体制の整備も行いました。 導入成果 レスポンスタイム: APIにおいて、平均・中央値で約15%もの高速化を確認。さらに、遅いリクエスト(P90〜P99)でも約13%改善しました。 YJIT導入後のレスポンスタイム CPU使用率: 全体で約20%低下。以下のようにCPU使用率が大幅に減り、リソース効率が向上しました。 YJIT導入後のCPU使用率 メモリ増: 想定通りメモリ消費は増えましたが、リソース計画の範囲内であり、安定稼働を続けています。 YJIT導入後のメモリ使用率 5. 今後の展望:ZJITへの備えとAIの活用 次世代JIT「ZJIT」を見据えた設計 Ruby 4.0から導入されたZJITは、メソッド単位でのコンパイル方式に移行します。現在はまだYJITの方が高速ですが、将来的に採用していく可能性があります。 型の安定性: ZJITを最大限活かすには、実行時に型が変動しない設計が重要です。Sorbetなどを活用することで型安全なコードを書くことが、将来のさらなる高速化にも繋がると考えています。 AIによる負債解消の自動化 今後は、AI(LLM)を活用して技術負債を自動で検出し、優先順位付けを行う仕組みを構想しています。 調査や定型業務のSkills化: 修正案をAIが提示し、委員会がそれを承認してデプロイするような、AIがオーナーシップを持つ効率的なメンテナンス体制を目指します。 CLAUDE.mdの整備: AIでコーディングを行った際に、自動でフォーマットや型をチェックしてテストを実行する仕組みを整備しています。 おわりに freee会計のような巨大なプロダクトにおいて、技術基盤を健全に保つのは簡単なことではありません。しかし、バックエンド委員会のように、メンバーが自発的に「自分たちの環境を良くしよう」と動く文化こそが、freeeのエンジニアリングの強みです!
こんにちは。関西拠点で freee 販売を開発しております、bucyou (ぶちょー) と申します。今日は4月22日(水)〜24日(金) にかけて、北海道は函館にて開催される RubyKaigi 2026 に登壇する hachi さんに話を聞いてみました。また、RubyKaigi 2026 の3日目 4/24 に開催されるDrinkup イベントのご案内もさせていただきます。 hachi さんとトークセッションの紹介 木村 駿生 (Hayao Kimura): Kyobashi.rb の共同主催者。Kaigi on Rails や、関西Ruby会議08などのオーガナイザー。フリーとしては、freee 請求書や、その周辺領域のテックリードを担当している。技術書典の書籍として、『マイコンでRubyが動くまで〜PicoRubyを理解する〜 (2015/11)』『Rubyではじめる電子工作~ラジコンを作ろう~(2024/5)』など。 hayaokimura (Hayao Kimura ( hachi )) · GitHub https://x.com/hachiblog トークセッション rubykaigi.org 4月23日 (2日目) のSmall Hall にて、17:20 〜 17:50 に予定されております。 内容としては、PicoRuby で利用されているファームウェアであるところの PPK (キーボードファームウェア)と R2P2 (汎用的なファームウェア) の2つを統合できるか? という話題だそうです。が、hachiさんによると諸般の事情があり、PicoRuby 関連の別のトピックに変わるそうです。 今回は、hachiさんと電子工作周りの活動について聞いてみたいと思います! 電子工作との出会い -- 普段、Kyobashi.rb などでお話を聞いていると、電子工作に関係するトピックはよく話されていますね。普段はWebエンジニアとしてお仕事されているので、電子工作を始めるのにはどういう経緯があったのですか? 実は、電子工作のほうが先にあって、その後にプログラミングがついてきたのですよね。小学生のころ、親の仕事の都合でベトナムのハノイにいたことがあったのですが、おじいちゃんから日本の生活物資が送られてきてたんですよ。 で、コロコロコミックとかも送られてくるんですが、そのなかに 東京ホビーセンターの「電子工作通信講座」なる広告が雑誌裏にあって、それを買ってもらって遊び始めたのが始まりなんですよね。 -- おお。ベトナムまで送ってもらってやってたんですね。それはすごい。 そうなんです。なので、プログラミングより先に電子工作に出会っていたんです。プログラミングについては実はこの後で、学研の『子供の科学』っていう雑誌も日本から送られていたんですけど、ここに「HTML & JAVAスクリプトかんたんプログラム1」っていう連載があって、これで何か動くものを作り始めたのがきっかけ。 -- この辺の話していたスライドがありましたけど、あれベトナムでやってたんですね。いい原体験だ。。めちゃくちゃいいですね。 確かに、そのくらいの時代の時、子ども向けでのホームページを作るとかそういう本もちょっとずつ出始めてましたよね。 speakerdeck.com で、こういうところで興味を持って大学では電気電子工学科っていう電子系の話題と、プログラミングの話題が両方できるトコに進んだんですけど、どちらかというと電気とかの話題が多いのですよね。プログラミングのスキルとかは、アルバイトやサークル活動でCMS作成などを通じて磨いた感じです。 Ruby を通じて「知らない世界を掘り下げる」面白さ -- PicoRuby はどんなところが、たのしいですか? Ruby は普段の仕事で使っているのですが、一方で趣味などでも同じ手触りの言語で知らないことを知れるというのが面白いです。ウェブのアプリケーションで使っている Rails だと、HTTP通信や、さらにそれが物理的な電気信号に変わっていくといったところを Ruby とか、その裏で動いている C のライブラリを全部追っていくのは非常に難しいです。 一方で、PicoRuby は物理的なもの (低レイヤー) への距離が近いので Ruby という言語を通して割と簡単にいろんなことが知ることができるのが魅力です。 -- 技術書典で最近出してた本は、マイコンでRubyが動くまで、ということで CRuby (普段使っているRuby) との比較について解説していましたね。 techbookfest.org 今回のトークについて -- 今回のトークは、どんな人に聞いて欲しいですか? まずは、PicoRubyに入門してみたい人ですね。今回のRubyKaigi では他のテーマとして PicoRuby に関するもっと凝った話題もあるのですが、それよりかは「PicoRuby が盛り上がっているらしいが、その次の一歩が難しい」と感じている人がターゲットになると思います。 ファームウェアが複数あったりして、とっかかりにくいみたいなところもあるのですが、もっと簡単に楽しめるということを伝えていきたいと思ってます! -- ありがとうございました! 登壇後、また社内で内容を聞かせてください! freee Drinkup イベントの紹介 スピーカーの hachi さんも参加する、freee Drinkup イベントは 3日目 4/24 に開催されます。参加には、RubyKaigi 2026 のネームタグと、受付票が必要です。ぜひ、ご参加ください。 https://freee.connpass.com/event/388862/freee.connpass.com インタビュアー bucyou (ぶちょー): 川原 翔吾, freee販売エンジニア。関西拠点所属。Rubyは10年ほどの付き合い。最近は Claude Code で理想のフレームワークを作ったりしてみて遊んでいる。Kyobashi.rb によく参加している。ちなみに、今年は RubyKaigi には参加しない。みんな楽しんできて欲しい。 本来は JavaScript と記載するところですが、雑誌の表記を尊重してそのままの形式で記載しています。↩