LIVESENSE ENGINEER BLOG

リブセンスエンジニアの活動や注目していることを発信しています

サーバサイド

Ruby on Railsでデッドコードを見つけ、 消す方法

これは Livesense Advent Calendar 2024 DAY 1 の記事です。 はじめに なぜやるのか 不要なコードを検知する 実際に削除していく おわりに はじめに 普段アルバイト事業部で主にマッハバイトの開発をしている@ayumu838です。 マッハバイトでデッドコードを削…

redis-cluster-client gem開発の振り返り

技術部インフラグループの春日です。 Redis Clusterモード対応版のRuby用ライブラリである redis-cluster-client gemをほそぼそとメンテしております。 2024年11月現在でまだ600万ダウンロード程度のマイナーライブラリではありますが、 利用者が増えてくる…

Datadog APMの設定ミスのせいでメモリリークしていた話

こんにちは、かたいなかです。 最近、転職会議のあるサーバで発生していたメモリリークについて調査する機会がありました。 今回の記事ではメモリリークをどのように調査したか等をまとめます。 ⚠️:2024/10/21追記 当初、デフォルトですべてのrakeタスクに対…

大規模なシステムは「内側」から実装しよう!AWS 初心者が計算処理の実行基盤を移行した話

こんにちは。転職ドラフトでエンジニアをしている @verdy_266 です。 今回は、AWS 初心者である僕がとある計算処理の実行基盤を移行したことについてお話しします。 背景 AWS のお勉強をしてシステム構成図を作った マイルストーンを作った システム構築の流…

名前重要なIT業界の技術名 その複雑さに立ち向かう

はじめに 転職ドラフトでの技術名の使われ方 なぜ技術名の表記がゆれるのか 頭字語の多さ 読み方の難しさ たくさんあるクラウド 統合方針 ベンダーの公式の表記に従う オープンソースも公式ウェブサイトの表記を尊重する その他細かい大文字・小文字の違いや…

GitHub Actionsを使ってBrakemanを導入した話

はじめに Brakemanとは 導入方針 導入方法 終わりに はじめに 普段アルバイト事業部で主にバックエンドの開発をしている@ayumu838です。 最近はStaubのホーロー鍋を買って煮込み料理をよく作って食べています。 食欲の秋なので日々のカロリー摂取量は増加の…

転職ドラフトの指名禁止企業設定をリニューアルした話

こんにちは。転職ドラフトでエンジニアをしている @verdy_266 です。 今回は、昨年末から取り組んでいた「指名禁止企業設定」のリニューアルについて、要件定義や実装で悩んだことが多くあったのでまとめます。 転職ドラフトでの仕事の進め方について、参考…

DatadogのE2EテストでA/B テストする際の便利な設定と実装例

転職会議でWebエンジニアをしております @ishitan-liv です。 転職会議では、昨年末の記事にも紹介したようにDatadogを活用したE2Eテストに取り組んでいます。 今回は実践編として、具体的な実例を元にA/Bテストの実施方法などについて書きます。 参考までに…

スマホアプリエンジニアがWeb始めました

2021年9月からマッハバイトに業務委託として参画している草間と申します。 iOSエンジニアとして参画し、今ではAndroid・Web側も担当するようになり楽しく業務しています。 今回は上半期も終わりが見えてきたのでこの半年の振り返りをしつつスマホアプリエン…

なぜか遅いAPIをDatadog Continuous Profilerで調べて高速化した話

こんにちは、かたいなかです。 みなさんが関わっているシステムでなぜか遅くて悩まされている処理はないでしょうか? 最近、遅いAPIをDatadog Continuous Profilerを使用して調べました。どのように問題解決までつなげたかを記事にまとめます。 www.datadogh…

何度も挫折してきたE2Eテストだけど、今後はDatadog Synthetics Testsが良さそうかも

これは Livesense Advent Calendar 2022 DAY 20 の記事です。 はじめに 株式会社リブセンスの転職会議事業部Webエンジニアの @ishitan-liv です。 今回は、過去に転職会議でも導入しようとして挫折してきたE2Eテストについて書きます。 E2Eテストを自作する…

EmbulkでPostgreSQLをMySQLに移行した話

こんにちは。マッハバイトを運営するアルバイト事業部エンジニアの mnmandahalf です。 先日、マッハバイトの販売管理システムで使っているデータベースをオンプレPostgreSQLからAmazon Aurora MySQLに移行しました。 本記事では移行に至った背景、吸収する…

RESP3対応版のRedis用Ruby Gems(redis-client/redis-cluster-client)のご紹介

概要 旧redis gemの課題 増え続けるコマンドのサポート負荷 RESP2しか対応できていない 新redis-client / redis-cluster-client gemsによる解決 新規コマンド対応の柔軟化 RESP3のサポート その他の背景 redis-rbとしてGitHubのOrganizationを新規に作成した…

SQLを使って位置情報から距離計算をする

はじめに マッハバイトでバックエンドを担当している @ayumu838 です。 今回は前回のような技術投資の話ではなく実務で使おうとしている話になります。 マッハバイトでは、求人ページに勤務地の最寄り駅に関する情報を掲載しています。 求人掲載の際に最寄駅…

マッハバイトの開発環境の負債を返済した

はじめに Livesense Advent Calendar 2021の9日目を担当するマッハバイトのバックエンドを主に担当している @ayumu838 です。 リブセンスでは技術投資10%ルールがあり業務時間の10%ほどを業務以外のことに充てることができます。 時間の使い方は人によって…

Stripeサブスクリプションで口コミ定期購読を実装する

自己紹介 こんにちは。Livesense Advent Calender 2021 1日目を担当しますmnmandahalfと申します。 普段は主に転職会議のエンジニア組織のマネージャーとして、1on1や評価・育成、採用活動などを行っています。 マネジメントについての記事を EMアドベントカ…

転職会議から冪等でないバッチ処理を根絶した話

こんにちは、かたいなかです。 最近転職会議のバッチ処理をすべて冪等にし、処理失敗時に気軽に再実行できるようにすることで運用性を向上させました。 今回の記事ではその取り組みを紹介します。 再実行すると重複送信につながるメール送信バッチ もともと…

マッハバイトをChatOpsでリリースしたい

インフラストラクチャグループの春日です。本記事では開発体験を改善させる目的で マッハバイト を Slack からリリースできるようにした話をさせていただきます。 背景 課題 手動によるコマンド実行 オペレーションサーバー自体の運用 リリースの告知と報告…

転職会議のKubernetes移行のあゆみ

転職会議では2020年の一年間をかけてインフラ基盤をECSからEKSに移行してきました。 この記事では構築したEKS基盤やECSからの移行の中で工夫した点を紹介します。

マッハバイトにRedis Sentinelを導入した話とClusterデータ移行ツールを自作した話

Redis Sentinel の導入と Cluster データ移行自作ツールの話

WebPへの自動アップグレードをリリースしました

リブセンス発の画像変換OSS『fanlin』をWebPに対応させ、一部サービスの画像配信においてWebPへの自動アップグレードを開始した話をします。

imgixをIESHILに導入してみた感想

IESHILの開発では「ビジネスのコアの部分に関係しないものはできるだけ自分で作らない」ことを大切にしています。少人数でプロダクト開発に集中するには合理的な判断だと考えています。今回はその一環としてimgixを導入した話をしたいと思います。

Bitrise + fastlane で自動化していることを紹介します

2月末にリリースしたマッハバイトiOS版の開発を機にネイティブアプリのCIを導入して、自動化している事例を紹介します。

転生会議を支える技術「フロント・サーバー編」〜使ってみたいをふんだんに盛り込んでみた〜

転職会議では、2年ぶりとなるエイプリルフール企画を実施しています。 今年のテーマは「転生」、その名も転生会議です! 今回はフロント編です。

RubyのRedis Client LibraryをCluster Modeに対応させた話

こんにちは、アルバイト事業部の春日です。アルバイト求人サイトである マッハバイト のサーバーサイドを担当しております。 Redis Gem を Cluster Mode に対応させる Pull Request を出す機会に恵まれたため、本日は振り返りも兼ねてそれについてお話させて…

CircleCI 2.0でbundle updateを定期実行してみた話

こんにちは、IESHILでエンジニアをしている須貝です。 今回は、CircleCI 2.0を使ってbundle updateを自動で実行するようにした話をします。CircleCI 1.0ではなく2.0というのがちょっとしたポイントです。

Railsでの秘匿情報の取り扱いを運用しやすくするgemを作った話

みなさんこんにちは。リブセンスでエンジニアをしている小沼です。先日新規でRailsリポジトリを立ち上げたのですが、その時に秘匿情報の取り扱いについて考えたことがあったので紹介いたします。

テストの取り組み、あるいは体のよい車輪の再発明について

ジョブセンスのエンジニアの松下です。 先日自分のチームが取り組んだ、古いバージョンのPHPで実装されているアルバイト応募機能をRubyに置き換えるというプロジェクトにおけるテストの取り組みについて紹介いたします。

レガシーコードの最適化とPHPバージョンアップ

正社員転職サービス「ジョブセンスリンク(http://job.j-sen.jp/)」を構成するPHPアプリケーション群を日々改善しつつ、レガシーコードの最適化とPHPバージョンアップを同時進行で行った話をします。

MySQLテストデータを自動生成&インポートする、PHPライブラリ「MagicalGirl」を公開

テスト・開発に使用するデータ生成の必要性 動作確認テストや開発時に使用するデータベースのデータ、どのように準備していますでしょうか?毎回手動で作成している、本番環境から持ってくる。これらは一番良くない例ですよね。 毎回手動で作成していては、…