草加健康センターで、整ってきました。

はじめに イタンジ株式会社で、toC向けのサービス「OHEYAGO」の開発をしている田中です。 こちらの記事では、最近行ってきたおすすめのサウナについて書きたいと思います。 社会人になってからサウナにハマり、いろんなところに通うようになりました。ほとん…

ActiveRecordでRIGHT JOIN!!

はじめに はじめまして、ITANDI株式会社でWEBアプリケーションエンジニアをしている歌代と申します。 最近は納豆にハマっており、納豆ばっかり食べています。いつしか、私自身納豆になってしまうのではないかと心配する今日この頃です。 さて、本稿ではActiv…

Rubyでファーストクラスコレクションをベースに、検索結果をオブジェクト化する

はじめに こんにちは、ITANDI株式会社でITANDI BBの開発をしている渡邉(海)です。 新卒4年目で、今年の2月末までは、toC向けのお部屋探しサイトの OHEYAGOを担当していました。 今年の3月からITANDI BBでサーバサイドを中心に開発しています。 ITANDI BBと…

Railsのbenchmarkを使ってN+1問題を解決する

はじめに こんにちは、ITANDI株式会社でノマドクラウドの開発をしている河合です。前職では半導体業界の技術営業に従事しており、エンジニア未経験でITANDIに入社さていただきました。休日は、サウナと映画鑑賞(サスペンス系)を楽しんでいます。 ノマドクラ…

Docker DesktopからRancher Desktopに移行してみた

イタンジ株式会社で物件連動基盤の開発をしている山﨑です。 弊社の多くのエンジニアがMac上のコンテナで開発をしており、そのためのツールとしてDocker Desktopを利用してます。今まではとりあえずでDocker Desktopを利用していましたが、特にこだわりもな…

私の自転車旅

はじめに イタンジ株式会社の小林です。更新退去くんというサービスの開発を行っています。 この記事では、私の趣味の自転車旅について書いてみようと思います。 私は大学の頃に、自転車に乗って自分の足で旅をしてみたいと思い、ロードバイクに乗り始めまし…

ある日のキャンプ。大雨との攻防

はじめに イタンジ株式会社の安倍です。OHEYAGOというtoC向けサービスの開発を行っています。 今回は私の趣味であるキャンプについて記事を書かせていただきます。 イタンジのエンジニアは割とキャンパーが多く、一度連れてってもらったのをきっかけにソロで…

運用中のRailsアプリケーションからカラムを削除したい

イタンジ株式会社 野澤です。 普段Railsを使って開発をしています。 この記事では、Railsで扱っているカラムを削除する方法について紹介します。 なぜ書くか ・Railsからカラムを削除する機会があったため ・カラムを削除することがそうそうあるものではなく…

とある休日。ボードゲーム日記

はじめに イタンジ株式会社の土屋です。物件管理くんというサービスの開発を行っています。 さて、エンジニアブログとしてこの度筆を取らせていただくことになったのですが、投稿を改めて見返してみたところ、趣味カテゴリの記事がないことに気になりました…

Railsでログ出力を制御して、ログの量を削減する

はじめに イタンジ株式会社の開発の三島です。現在、「物件管理くん」というサービスの開発を担当しています。 本記事ではRailsアプリケーションのログに出力する内容を制御し、ログの量を削減する方法についてまとめます。 背景 イタンジではAWSを使ってお…

MySQLのTEXT型とVARCHAR型の文字の数え方を観察する

はじめに イタンジ株式会社の細川です。MySQLを利用したWEBサービスを開発しています。最近はトポロジカルソートでボジョレーヌーボーの序列が解けるのか気になっています。 今回は、TEXT型とVARCHAR型の格納できる文字数について調べたので書いていきます。…

Railsで送信メールの開封を検知する

はじめに イタンジ株式会社の赤松です。業者間サイトITANDI BBの開発を担当しています。 Railsでメールを送信して、そのメールが開封されたか知りたい時があるのではないでしょうか? 本記事では、送信メールの開封を検知する方法をご紹介します! 背景 現在…

物件検索基盤の一部をAWS DMSに移行する

はじめに イタンジ株式会社の奈良です。基盤チームの開発エンジニアとしてイタンジの複数のサービスが利用している物件検索基盤の開発と運用をしています。 本記事では物件検索基盤の一部をAWSのマネージドサービスに移行した経緯とその方法について紹介しよ…

Sidekiq でジョブの同時実行数を制限する

イタンジ株式会社の清水です。「申込受付くん」という賃貸物件への申込みをWEBで完結させるサービスを開発しており、最近は主にRailsを触っています。趣味はキャンプです。 さて、みなさまはRailsで非同期ジョブを実行する仕組みをどう構築されているでしょ…

AWS WAFを使ってリクエストサイズの制約を設定する

はじめに イタンジ株式会社の李です。SREとしてイタンジサービスの信頼性を向上するための施策やコスト最適化などをしています。 本記事ではAWSのWAFを使ってリクエストサイズの制約をかける方法を紹介しようと思います。 背景 RailsアプリケーションをECSサ…

ReduxのreducerコードをDRYに書く

イタンジ株式会社の中村です。エンジニア兼プロダクトマネージャーをしています。 最近はもっぱら仕様を書いたりフロントエンドを書いたり不動産会社様の業務の知見を深めたりしています。 今回は、Redux Toolkit を使いつつreducerのboilerplateを減らし、…

MySQL8 JSON SchemaでCHECK制約をつける

イタンジ株式会社でテックリードをしている大原です。普段は基盤系のプロダクト開発やSREを担当しています。 今回はMySQL8.0.17以降から使用できるJSON_SCHEMA_VALID関数と、この関数を使用したCHECK制約についてのお話をしようと思います。 また、弊社にはR…

イタンジエンジニアブログ再開します

イタンジ株式会社でVPoEをしています福崎です。 弊社でもエンジニアブログをやることになったので、目的とか背景を書いていきたいと思います。 背景 この施策はエンジニア採用に苦戦しているというところから始まっています。 現在2ヶ月に一人のペースで採用…

登壇レポート『日々変わりゆく技術トレンドの中でスタートアップ4社が技術選定について語ります』

はじめに イタンジのエンジニアリングマネージャーの田渕です。先日、『日々変わりゆく技術トレンドの中でスタートアップ4社が技術選定について語ります』に登壇したので、そのレポート記事として私がお話ししたことを書きたいと思います。 主にイタンジの技…

フロントエンドの変遷に見るイタンジの技術選定〜テンプレートエンジンからNext.jsに辿り着くまで〜

はじめに イタンジのエンジニアリングマネージャの田渕です! 先日、OHEYAGOのフロントエンドのNext.jsへのリプレイスが完了しました。振り返ってみると、リリース前はRailsのテンプレートエンジンを使っていたところから徐々に変更をしていき、最終的にはNe…

Ruby3の静的型検査を活用して、新規プロダクト開発の開発効率を向上させた話

はじめに イタンジのエンジニアリングマネージャの田渕です。 昨年末にリリースされたRuby3では、静的型検査の機能が追加されました。早速、実際の新規Railsプロダクトの開発に活用してみたところ、多くの利点を感じました。 現場で使われている例はまだ多く…

Amazon Aurora MySQLのSystem Databaseが破損していたので、AWSのサポートに直してもらった話

はじめに イタンジのエンジニアリングマネージャーの田渕です。 イタンジで採用を検討しているDebeziumという技術では、(使い方によっては)MySQLのSystem Databaseの一つであるmysql.hostテーブルというテーブルにアクセスする必要があります。先日、その検…

静的サイトジェネレータとして、Preactを実務で使ってみた

はじめに あけましておめでとうございます。イタンジのエンジニアリングマネージャー(以下EM)の田渕です。つい最近のことですが、EMという役職が新設され、そちらの役職に就任いたしました。 イタンジのEMに求められている役割の中で最も大きいものは、「全…

Akka(Scala)で書かれたレガシーシステムをRailsでリプレイスした話

前置き この記事では、AkkaとRails,もしくはScalaとRubyのどちらが優れている、などという話は出てきません。結論を先にも書いておくと、 フレームワークや言語に関わらず、テストや仕様書、CIなどがいかに整っているかが保守性に関わる 技術選定には、会社…

ドメインの管理をVALUE DOMAINからRoute 53に安全に移行した話

はじめに イタンジのSREチームの田渕です! イタンジでは、基本的にはRoute 53でドメインを管理していますが、古くから使っているものに関しては、VALUE DOMAINでも管理をしていました。しかしVALUE DOMAINではIaCツールによる管理ができないため、先日、ド…

terraformとクラウドの状態の差分を定期的に監視する仕組みを作った話

はじめに イタンジSREチームの田渕です! イタンジではクラウド管理のIaCツールとしてterraformを使っています。terraformとクラウドの状態の差分を定期的に監視する仕組みを作ったところ、うまくワークし、かなり運用負荷が下がったため、皆様にも紹介しま…

業務中にrubocop-railsのCustomCopを作成して、そのままOSSにcontributeした話

はじめに OHEYAGOの開発の田渕です! 先日、OHEYAGOで書いたコードを流用して、rubocop-railsというOSSに新機能を追加して、contributeしました! マージされたPRはこちらです。 github.com 経緯 OHEYAGOのレビュー中に、content_tagをtagにしたほうが良いと…

Railsのテンプレートエンジンを、slimやhamlから、erbに戻して乗り換えた話

はじめに OHEYAGOの開発をしている田渕です! Railsのテンプレートエンジンには、デフォルトのerbや、代替のslimやhamlなどがあります。 OHEYAGOではslimを採用していましたが、先日、テンプレートエンジンをslimからデフォルトのerbに変更しました。細かい…

Reactを使ったコンポーネント指向設計で、Atomic Designをやめようとしている話

はじめに OHEYAGOの開発をしている田渕です! OHEYAGOはtoCサイトなので、UI・UXを重要視しており、チームとしてデザイナーを2人抱えております。デザイナーは他業務との兼任ですが、それに対してエンジニアは3人なので、デザイナーの割合がとても多いチーム…

【Rails + AWS Fargate】簡単なシェルスクリプトでデプロイ前後の外形監視を行い、デプロイの安定性を高めた話

はじめに OHEYAGOの開発をしている田渕です!OHEYAGOのwebサーバーはFargate上で動いていますが、AWS Fargateでのデプロイを行う際に、マイグレーションやデプロイが本当に完了したタイミングがわかりにくいという問題がありました! 例えば、マイグレーショ…