Railsプロダクトにparallel_testsを導入してCIの実行時間を減らしたときの知見

プレセナ・ストラテジック・パートナーズ AdventCalendar2025 19日目の記事です。 qiita.com こんにちは、プレセナのエンジニアの田中です。 弊社のRailsプロダクトではテストフレームワークに rspec を採用しています。 また、テストコードはGitHub Actions…

エンジニア組織をさらに活性化させる、非エンジニアの「内部越境」

プレセナ・ストラテジック・パートナーズ Advent Calendar 2025 14日目の記事です。 営業組織は「すぐ対応して欲しい」と言ってくるけど、システム開発の工数は限られていて対応しきれない。 ユーザーの要望が複雑で、技術要件に翻訳するコストが高すぎる。 …

UIデザイナーが「円グラフの配色」について本気出して考えてみた

プレセナ・ストラテジック・パートナーズ Advent Calendar 2025 17日目です! はじめに こんにちは!株式会社プレセナ・ストラテジック・パートナーズでUI/UXデザイナーをしている yoshi です。 普段は『Precena Nest』という業務系SaaS(研修運営・学習管理…

「Gemini使ってない人ゼロ」を目指して、社内向けの生成AI初期研修開催の過程と結果のお話

生成AI活用推進チームの大西です。こちらは プレセナ・ストラテジック・パートナーズ Advent Calendar 2025 12日目の投稿となります! この度社内向けに生成AIの初期研修を行いましたので、開催の背景と概要と、その結果についてご紹介します。 以降の前提と…

マネージャーが仕様駆動開発(OpenSpec With Claude Code)をしたら楽しすぎた。

はじめに プレセナ・ストラテジック・パートナーズ Advent Calendar 2025 11日目です(`・ω・´)ゞ こんにちは!プレセナ・ストラテジック・パートナーズでエンジニアリングマネージャーをしていた小林です。 マネージャーになってからコードを書く機会が激減し…

“集中できない”を前提にする。プレセナの兼務体制と、それを回す6つの工夫

はじめに プレセナでエンジニア組織のマネージャーを担当している桜井です。 アドベントカレンダーのDay10として、プレセナで前提になっている「兼務体制」について書きます。 プレセナは「全社員が特定の役割だけを持たない、兼務前提の会社」です。エンジ…

フルリモート時代の自宅ネットワーク再構築記 〜YAMAHAルーターで叶えるVLAN分割〜

こんにちは!Webアプリケーションエンジニアの依田です。 この記事は プレセナ・ストラテジック・パートナーズ Advent Calendar 2025 9日目の投稿となります! プレセナでは全社員がフルリモート勤務可能です。 私もフルリモートで全国各地にいる社員の一人…

Pekko CQRS/Event Sourcing 完全開発ガイド

どうも 技術顧問の加藤です。 プレセナ社内の、とある案件で使っている、CQRS/Event Sourcingについてブログ記事を書いてみようと思います。 ソースコードの詳細はこちらを参照してください。 なぜCQRS/Event Sourcingなのか 従来のCRUD中心の設計の最大の問…

非エンジニアによるCodex(Vibe Coding)を用いたSlack Bot改修と、PRレビューでの重要な3つの指摘

この記事は プレセナ・ストラテジック・パートナーズ Advent Calendar 2025 7日目の投稿です。 Introduction 昨今、OpenAIからリリースされた「Codex」のような自律型エージェントを用い、プロンプトだけで開発を進める「Vibe Coding」が注目されています。 …

リニューアルだからこそ考えたい、デザインレビューでのエンジニアの関わり方

プレセナ・ストラテジック・パートナーズ Advent Calendar 2025 6日目です こんにちは、プレセナでe-Learningシステム(PLS)のリニューアルを担当しているKubotaです。 service.precena.co.jp みなさんは、普段「デザインレビュー」にどのくらい深く関わっ…

社内Railsシステムをアップグレードしつつ、保守性向上のために周辺環境も改善した話

この記事は、プレセナ・ストラテジック・パートナーズ Advent Calendar 2025 5日目です。 エンジニアチームで開発・運用を担当しているkamijoです。 今年、自分の所属するチームのRuby on Railsシステムのアップグレードを担当しました。社内では他にもRails…

エンジニア兼情シス、時代の波にのまれそうになる

この記事はプレセナ・ストラテジック・パートナーズ Advent Calendar 2025 4日目の記事です はじめに エンジニアの傍ら情報システム部のリーダーを数年担当していました。先日後任の方に引継ぎが完了したため、エンジニア兼務情シスが時代の潮流についていく…

個人で仕様駆動開発とcc-sddを試していたら、コンテキストエンジニアリングの問題に遭遇した話

こちらは プレセナ・ストラテジック・パートナーズ Advent Calendar 2025 3日目の投稿です!プレセナのソフトウェアエンジニアの大西です。今回は cc-sdd を使った仕様駆動開発を個人的に挑戦してみたので、そのまとめを書いていきます! TL;DR AIエージェン…

ECS内のコンテナに、セキュリティを確保しつつログインできるようにするための構成

はじめに この記事はプレセナ・ストラテジック・パートナーズアドベントカレンダー2025の2日目の記事です。 インフラチームのにしざわです。ECSコンテナでRails consoleやデバッグ作業を行うためのセキュアなインフラ構成について紹介します。 背景 ECSで動…

リモートワークでも「つながる」感覚を大切に。プレセナエンジニアを支えるバーチャルオフィス「Gather」

皆さん、こんにちは。アドベントカレンダー1日目を担当します、プレセナ・ストラテジック・パートナーズでエンジニアをしている Koki です。 現在は、サービス開発のマネジメントや運営フローの整理、運営サポート、プログラミングを行っています。最近の言…

【社内勉強会レポート】知識ゼロから始めたRust勉強会の記録

当社では、エンジニアの継続的なスキルアップと新しい技術への挑戦を目的として、有志によるRust勉強会が開催されました。 本記事では、2部構成で行われた活動内容とその成果について共有します。 第1部:The Book輪読会 - Rustの基本概念を体系的に学習 第2…

お客様からの質問に対して過去データに基づき回答生成するSlackBotを、Difyを使いローコードで構築した話

Difyのワークフロー機能を使い、お客様からの質問に対して自動で回答を生成するSlack Botを作成しました。回答生成の際には、過去にお客様から頂いた質問と回答させていただいたデータに加え、さらに必要となる専門的な固有の知識も与えるようにしています。…

社内のエンジニアにAIの利用状況を聞いてみた!

AI

はじめに 導入 AI技術の進化が目覚ましい昨今、当社のエンジニアがどのようにAIを活用しているのか、その実態を探るべくアンケートを実施しました。本記事では、その結果から見えてきたリアルな声と、今後のAI活用の可能性についてご紹介します。 ちなみにこ…

テックブログの GitBook から はてなブログ への移行

はじめに 2025年7月、当ブログをGitBookからはてなブログへと移行しました。 今回の記事では、ブログ移行の経緯と実施手順についてご紹介します。 検討移行理由 結論としては、GitBookの年間利用料が割高と感じたためです。 経緯をもう少し詳しくご説明しま…

脆弱性診断 2社同時依頼実施記録

脆弱性診断の依頼内容 A社とB社の2社に、同時にある弊社Webシステムの脆弱性診断を依頼させていただきました。 A社はWebアプリケーション診断を得意とし、B社はソースコード診断を得意とする会社様です。 Webアプリケーション診断とソースコード診断は、それ…

SPF、DKIM、DMARCを使用した迷惑メール対策

はじめに この記事では、メール送信サーバーを設定時に、ほぼ必ず設定することになるSPF、DKIM、DMARCについて、知識の整理と共有のために概要や効果、設定方法を紹介します。 SPF SPFは、Sender Policy Frameworkの略で、ドメインの所有者が「自分のドメイ…

EMConfJP2025_参加レポート

掲題の通りEMConfJP2025に参加してきました。 テーマは「増幅」と「触媒」。 2025.emconf.jp 懇親会付きのチケットも当日分のチケットもすぐに売り切れて、当日も大盛況だったと思います。自分が聞いた限りの講演のテーマとしては「事業・経営戦略と技術戦略…

PostgreSQLにおける、削除行に対するロック獲得時の挙動

環境 RDB PostgreSQL 13.3 トランザクション分離レベル read committed (デフォルト) 実験環境 IntelliJ IDEA 2024.3 (Ultimate Edition) TLDR PostgreSQLにおいて、トランザクション内で同一キーの行を delete - insert する場合、同時に実行される他のトラ…

Github ActionsでIAMロールを利用してAWSリソースを操作する

はじめに 弊社ではAWSリソースをTerraformやCloudFormationで管理し、plan/applyの実行にはGithub Actionsを使っています。本稿ではGithub ActionsからAWSリソースを操作するためのIAMロールの設定について説明します。 IAMロールを利用するメリット Github …

lambrollでAWS Lambda関数をデプロイしたときのTips

前置き AWS Lambda関数について、 ソースコードはgitで管理したい ソースコードのデプロイは容易に行いたい AWSの各リソースはTerraformで管理しており、別途Lambda向けのものを作る必要はない という場合には、Lambdaのデプロイツールである lambroll を使…

問い合わせフォームの項目をサービスごとに出し分け、各サービス担当者に自動で振り分けてメールで通知する

はじめに Zendeskにおいて、社内の複数サービスの問い合わせフォームを一本化し、そこに送られてきた問い合わせを対象サービスの担当者に自動で振り分けてメールで通知するための設定について記載します。 ​前提 Zendesk環境 こちらの手順で問い合わせフォー…

GithubのプライベートリポジトリをGemfileで参照する方法

背景 当社では、社内で共通に使いたい機能をgemに切り出し、機能の利用側のGemfileでプライベートリポジトリを参照しています。 gem "some_internal_library", git: "https://github.com/precena-dev/some_internal_library.git", tag: "v1.0.0" ローカル端…

Amazon SNS + Slack Workflowを使って、CloudWatch Alarmの通知をSlackチャンネルへ投稿する

AWSリソースに対する異常検知として、CloudWatch Metricsに対して設定したしきい値を超過した場合、CloudWatch Alarmで通知を飛ばすことができます。 日頃Slackをよく見ている身としては、何かあったらSlackチャンネルへ通知されると嬉しいことから、仕組み…

AWS SESメールボックスシミュレーターにて、カスタムヘッダや添付ファイル付きのテストEメールを送信する

背景 AWS SESでメール送信環境を構築したときは、合わせて メールが不達になったこと を検知する仕組みも構築します。 AWS SESから送信したメールでメール不達があまりにも多いと、AWS SESの利用が停止されるためです。 さらに、AWS SESの本番運用を始める前…

Railsのアプリケーションサーバーのプロセス数とスレッド数の設定方法

はじめに この記事では、Railsの本番環境におけるアプリケーションサーバー(pumaやunicornなど)のプロセス数とスレッド数のパラメータ設定に関する情報をまとめます。 プロセスとスレッドの特徴概要 アプリケーションサーバーのパラメータを設定する際に、…