Railsモジュラーモノリスの依存関係を見える化する ―packwerkを物件連動統括システムに導入した話

はじめに こんにちは、イタンジ株式会社でエンジニアをしている中山です。物件連動チームに所属していて、外部のシステムから送られてくる物件情報を取り込む物件基盤の開発を担当しております。 物件連動チームでは、さまざまなCSV形式で送られてくる物件情…

マルチプロダクトの品質を支えるテスト基盤「ITANDI QC」の紹介

こんにちは!イタンジ株式会社のフロントエンドチームに所属している西野です。 本記事では昨年末から始動したプロダクト共通の品質管理基盤「ITANDI QC」について紹介します。 ITANDI QCとは イタンジではRSpecやデザインシステム内のコンポーネントテスト…

1,600テーブルを支えるデータ転送の最適化:3つのパターンによるBigQuery集約の実践

はじめに イタンジ株式会社のデータチームでマネージャーをしている山崎です。 私のチームで整備してきたデータ基盤は社内のKPIダッシュボードや問い合わせの調査対応で日々使われています。また、基盤側で作った成果物をプロダクトで活用したり、お客様向け…

sidekiq-schedulerで定期ジョブが重複実行される原因を調査してみた

はじめに こんにちは、イタンジ株式会社でエンジニアをしている小林です。不動産仲介会社向けの営業支援システムであるITANDI 賃貸仲介の開発をしています。 ITANDI 賃貸仲介では、Sidekiqを用いてバックグラウンドジョブの処理を行っています。その中で、定…

Rails 8.1 Active Job Continuations: ジョブ再開の仕組みと挙動を追う

こんにちは、イタンジ株式会社でエンジニアをしている磯谷です。 私は現在、物件情報を取り込むワークフローシステムの開発に携わっています。 そのアーキテクチャの再設計を検討する中で、Rails 8.1で導入されたActive Job Continuationsについて調査したの…

【参加レポート】Kaigi on Rails 2025で学んだRails開発の実践知

はじめに こんにちは、ITANDI株式会社でエンジニアをしているたのもきです。 9月26日〜27日に行われた Kaigi on Rails 2025 に参加したので、参加レポートを書きました。 今年行われたRuby Kaigiに続き初参加だったのでソワソワしながら臨みました。 【祝】K…

RailsのViewで作るPDF — Chromiumを活用した募集図面生成ロジック

はじめに こんにちは、ITANDI株式会社でエンジニアをしている須田です。2023年に新卒で入社し、社会人・エンジニアともに3年目を迎えました。 普段は主に、Ruby on Railsを使用したバックエンド開発、およびNext.jsを使用したフロントエンド開発で、不動産管…

AWS FireLensでECSログコストを50%削減!Fluent BitとKinesis Data Firehoseを活用したログ転送の最適化

こんにちは。イタンジ株式会社でインフラエンジニアを担当している李(イ)です。 AWS、GCP、Azureなどのクラウド基盤でイタンジのサービスのインフラ構築および運用を主な仕事としています。 サービスのインフラをAWSで構築する場合、弊社ではECS(Elastic C…

不動産テック企業のAI挑戦録―ハッカソンで掴んだ“実践”の威力

はじめに 株式会社Housmartのプロダクトチームです。 弊社はイタンジのグループ会社であり、プロダクトチームでは売買仲介・買取再販業者向けの営業支援サービス「PropoCloud」を開発しています。 今回は社内で開催したAIハッカソンについて、その経緯や得ら…

Webhookでサービス間連携を実装して得たナレッジをまとめてみた

賃貸管理支援事業家主管理・精算管理プロダクト開発チームです。 管理支援領域では複数のサービスを開発しており、それぞれのサービス間で情報をやりとりし合っています。 今回はサービス間の情報のやりとりをWebhookを利用して行ったことで得たナレッジを共…

システムにおける「テスト」とは何かを改めて考える

はじめに ソフトウェア開発において、「テスト」とは何か。 コードを書いていると、つい「とりあえず動いたし、テストもしたし、もう大丈夫かな」と思ってしまいがちです。また、最近は自動テストツールも大変に充実しており、開発者自らが手を動かして検証…

MySQLのロック機構を深掘り - 月間14万件の入居申込データを安全に扱うための最適化戦略

はじめに 賃貸募集支援事業プロダクト開発チームのかげやまです! 普段は申込受付くんの開発をしています! 申込受付くんでは申込みに関わる様々なデータを扱っており、その数も日を追うごとに増加しています。 参考までに、月間WEB入居申込件数は最大月で約14…

デザインシステム「ITANDI BB UI」とそれを支えるStorybookの紹介

こんにちは!イタンジのFrontend Unit所属の薄羽です。2024年3月に中途入社しました。好きなnpmパッケージは @emotion/react です。 イタンジのFrontend Unitには主務で薄羽と西野が在籍しており、デザインシステム「ITANDI BB UI」の開発とプロダクトのフロ…

レーベンシュタイン距離によるサジェストUI改善の取り組み

はじめに こんにちは。イタンジ株式会社賃貸仲介支援事業プロダクト開発の稲垣です。 今回は、レーベンシュタイン距離を導入してwebサービスのUI/UXを向上させた事例について紹介します。 レーベンシュタイン距離とは レーベンシュタイン距離(Levenshtein d…

東京Ruby会議12に参加しました!

こんにちは!ITANDI株式会社で、物件管理システムの開発をしている須田です! 23卒でITANDIに入社し、社会人・エンジニアともに2年目になります。物件管理システムでは、バックエンド(Rails)、最近はフロントエンド(TypeScript, React)で開発をしていま…

VScodeからNeovimに乗り換えた感想

はじめに こんにちは! イタンジ株式会社物件チームの関雨菲(カン ユフィー)です。 半年前からVimというエディターに魅力を感じて始めました。以前まではVScodeを使っていましたが、Vimに慣れたらもうVScodeに戻れないぐらいVimが好きになりました。Vimはゼ…

MySQLの非バイナリ文字列の比較での末尾の空白について

はじめに イタンジ株式会社の磯谷です。不動産賃貸仲介業向けのSaaSであるノマドクラウドの開発をしています。 ノマドクラウドではRailsとMySQLを使用して開発を行っています。その中で、VARCHAR型のカラムに格納されている値の、比較時の末尾の空白の取り扱…

同期エンジニアで勉強会始めました!

はじめに はじめまして!イタンジ株式会社で、物件管理くんの開発をしている須田です! 23卒でイタンジに入社し、社会人・エンジニアともに2年目になります。物件管理くんでは、バックエンド(Rails)、最近はフロントエンド(Typescript, React)で開発をし…

物件基盤システムで使うgemに型をつける

こんにちは! イタンジ株式会社で物件基盤システムの開発をしている藤崎 (https://x.com/aki19035vc) です。 つい先日、弊社オフィスにて Roppongi.rb が開催されました。 roppongirb.connpass.com 「最近追加した型の紹介とその振り返り」というタイトルでL…

物件基盤システムをRuby 3.3にアップデートし、YJITを有効にした結果

こんにちは! イタンジ株式会社でバックエンドエンジニアをしている藤崎 (https://x.com/aki19035vc) です。 イタンジの各種サービスの要である物件基盤システムを開発をしています。 私がメインで見ているRailsアプリケーションのRubyバージョンを3.3系にア…

物件基盤システムをRails 7.1にアップデートしました & ハマりポイントを共有します!

こんにちは! イタンジ株式会社でバックエンドエンジニアをしている藤崎 (https://x.com/aki19035vc) です。 イタンジの各種サービスの要である物件基盤システムを開発をしています。 Rails 7.2が今にも出そうな気配がしていたので、置いていかれないように…

Playwright による E2E テスト

はじめに イタンジ株式会社の加藤です。精算管理くんというプロダクトの開発をしています。 先月は週1でサバゲーにいっていたのでずっと筋肉痛が続いていました... 精算管理くんでは機能優先で実装を進めてきたため、利便性向上の画面改修を行うことが増えて…

Pydanticには暗黙的な型変換があると知った話

はじめに こんにちは、データコネクタチームの韓です。 業務ではPythonを主に利用してデータ基盤の開発を行っています。PythonのデータバリデーションにおいてはPydanticというライブラリが有名で、私の業務でもよく利用しています。今回の記事では、実際にP…

CircleCIでMinitestを並列にして実行時間を1/3に短縮した話

はじめに イタンジ株式会社の小林です。ノマドクラウドという不動産仲介向けのSaaSを開発しています。 ノマドクラウドではバックエンド開発にはRuby on Railsを採用し、CIツールとしてCircleCIを利用しています。これまでCIの高速化について真剣に取り組んだ…

新卒1年目がRailsのバージョンアップをやってみた

# はじめに イタンジ株式会社でITANDI BBの開発をしているVO HUU DUC(ボ ヒュ ドゥック)です。 背景 ITANDI BBプロダクトは主にRailsを使って開発しています。ITANDI BBはRails 6.0でしたが、バージョンのEOLに伴ってRails 6.1まで上げました。 やったこと …

エンジニアが気をつけたい思考のクセと育児の共通点を考えてみた

はじめに イタンジ株式会社の兼田です。 現在更新退去くんというプロダクトの開発をしていますが、イタンジにjoinしてから早4年半程経ちました。 私自身は2014年の新卒ですので、エンジニアになってからでいうともう間も無く10年が経とうとしています。 イタ…

Amazon RDS for MySQLのメジャーバージョンを5.7から8.0にアップグレードした

はじめに イタンジ株式会社の李です。SREとしてイタンジプロダクトの信頼性を高めたり開発の効率を向上させるなどの活動をしています。 直近Amazon RDS for MySQLのメジャーバージョンをアップグレードする機会があったので、今回はその手順と工夫したことな…

ApplicationMailerのdeliver_nowメソッドが返す例外をRSpec Mocksでテスト

はじめに こんにちは! イタンジ株式会社で更新退去くんというプロダクトを開発している沈です。 新卒一年目で学ぶことが多く、フロントエンド(Next.js)とバックエンド(Rails)両方の開発に携わり、システムがどのように動作するか、総合的に理解しています。…

Open APIとCommitteeを利用したRSpecによるAPIテスト

はじめに イタンジ株式会社で物件管理くんの開発をしている三島です。 物件管理くんでは、RailsによるAPIサーバを採用しており、テストにはRSpecを利用しています。 本記事ではOpen APIとCommitteeを使用し、RSpecでAPIテストを行う方法について記載します。…

私の考える良いRSpecの書き方

はじめに イタンジ株式会社の安倍です。今年7キロのダイエットに成功しました。 精算管理くん、家主管理くんの開発を行っています。 私は学生時代のインターンとイタンジにきて4つのプロダクトの開発に携わりました。その過程で自分のRailsのRSpecのコードの…