Techouse Developers Blog

テックハウス開発者ブログ|マルチプロダクト型スタートアップ|エンジニアによる技術情報を発信|SaaS、求人プラットフォーム、DX推進

Advent Calendar 2024

Amazon Neptune を人事労務 SaaS へ実戦投入してみた感想 - RDB との比較

Techouse では AWS をフル活用してサービスを提供していますが、利用しているサービスの1つに Amazon Neptune があります。 Amazon Neptune 、ご存知でしょうか? Amazon Neptune は高速かつ、高い可用性とスケーラビリティをもつフルマネージドのグラフデー…

ドキュメントでなくコードで語れ ~RuboCopのカスタムルールで規約を記述する~

今回はクラウドハウス労務のメンテナンス中に起きた事件と、今後同じ事件が起きないようにするために講じた対策について紹介します。ある日私たちはデータベースのメンテナンスを行いました。来たる新機能のために必要な新規テーブルを追加したり、既存のテ…

リファクタリングで気づいたソフトウェアテストへの勘違い

弊社では、大企業向けのSaaSプロダクトを複数運営しており、安定した品質で日々のサービスを提供するために、プロダクトのコーディングにおいてテスト駆動開発(TDD)を推進しています。また、継続的インテグレーション(CI)を導入することで、テストに通ら…

「テスト技法勉強会」で、学生エンジニアが大幅にレベルアップした件

本記事では、私が弊社で主催したイベント「テスト技法勉強会 2024」を紹介します。ソフトウェア開発に必要な、基礎的なテスト技法の習得を目的とした勉強会です。解説だけでなく演習にも重きを置き、業務にもすぐ生かせるような実践的内容を取り扱っています…

AWS X-Ray と Amazon CloudWatch RUM を用いたパフォーマンス監視のベストプラクティス

今回はパフォーマンスモニタリングの強化のために導入した APM(Application Performance Monitoring)サービスの AWS X-Ray と RUM(Real User Monitoring) サービスの Amazon CloudWatch RUM をご紹介させていただきます。ウェブアプリケーションのユーザー体…

命名の掟を守る、良い名付け親になりたい

こんにちは。2024 年 5 月からインターン生として開発に携わっている maczac150 です。 先輩方から受けるコードレビューの中で、命名についてのご指摘を頂くことがあります。自分はネーミングセンスが良くないからなあと思うときはありますが、磨けるものだ…

プロダクトデザインを前進させるために参考になった本(サイト)たちの話

この記事では自身が携わっているプロダクトであるクラウドハウス採用のデザインや実装をしていく中で、参考にしていた本やサイトの話をさせていただきます。こんな方に読んでいただけると幸いです。デザインに興味はあるものの、何から学べばいいか迷ってい…

未経験エンジニアが初めてテストを書けるようになるまですごく苦労した話

先日初めてテストを書く機会があったのですが、私は書き方を習得するまでに非常に苦労しました。そこで今回は初心者の目線で、テストを書くときに苦労した話を書こうと思います!私と同じような未経験エンジニアの方々は共感してくれるのではないかと思いま…

メカニカルシンパシーを体感せよ!キャッシュラインが明かす高速化の真髄

Techouse では技術責任者の山崎による任意参加の社内勉強会を隔週で行っており、そこでは OS・ネットワーク・データベース・ハードウェア・セキュリティ・システムアーキテクチャなど、エンジニアとして基礎的な知識が学べます。ここで先日、メカニカルシン…

STIを利用したRailsアプリのテストが実行順序で失敗する問題を解決した話

弊社では、数万件におよぶ自動テストをGitHub Actionsを利用してランダム実行しています。並列実行されるテストにおいて、特定の順序で実行されると一部のテストが失敗するケースがありました。私がその原因を調査し、修正に取り組むことになったのですが、…

こんにちは。わたしはDocker build --secrets。あなたのクレデンシャルを守ります。

現在環境変数を使って秘密情報を渡す手法は非推奨となっており、Docker Secretsを利用してコンテナに秘密情報を渡す手法が推奨されています。これはなぜでしょうか。本記事では、Docker Secretsを活用して機密情報を安全に受け渡す方法について解説します。…

GitHub Actionsのガードを高くする

Techouseに入社して純粋に思ったこととして、「セキュリティ意識が高いなぁ…」と思いました。 過去に勤務した経験のあるどの組織よりもセキュリティ意識がしっかりしていると感じました(もちろん近年はセキュリティ意識をより求められているというのもあり…

Figmaプラグインを使って楽をしようとしたらCORSの壁に阻まれた

弊社が提供するATSサービス『クラウドハウス採用』では自由度高くウェブサイト制作が可能という特徴があります。画像も自由に利用することができるため、1ウェブサイト作るのに少なくとも50ファイル以上の画像を利用されるお客様がほとんどです。 その際、…

Ruby のファイル操作で覚えておきたいバッファリングと flush/fsync

先日、新機能の開発を進める中で、ファイルへの書き込みを扱うコードを書く機会がありました。 その際、Ruby でファイル書きこみを行う際のバッファリングの仕組みと、それを制御する IO#flushとIO#fsyncというメソッドに改めて注目することになりました。 …

インターン生が突如現れた最強CTOとペアプロした話

私事ですが、この秋に、2ヶ月ほど「ペアプログラミング」なるものを初めて行いました。今回はその経験をまとめるとともに、ペアプロの魅力について自分なりに語って参ります。24年10月に新卒入社する直前までインターンとして働いていた私ですが、年末調整で…

エンジニアインターンオンボーディングの効率化を目指して

本日は私の携わっているプロダクトであるクラウドハウス労務で行っているエンジニア長期インターン生のオンボーディングの効率化について紹介します。

金曜日の夜は自然とエンジニアが集まって技術を語り合う、そんな会社にしたいんです。

今年5月、Techouse は「RubyKaigi 2024」に参加しました。RubyKaigi 2024 への参加はとても勉強になることが多く、エンジニアとして成長に対してとても有意義な時間でした。そこで、社内でも「成長や挑戦につながるイベントを企画してみよう!」ということで…

資料作成ゼロ!ChatGPTで効率化する勉強会運営の秘密

弊社Techouseには、素質ある多くのエンジニアインターンが在籍しています。エンジニアインターンの文化については、こちらの記事をご参照ください。彼らは将来優秀なエンジニアになることが期待される「金の卵」であり、各事業部に配属されています。しかし…

localStorage の値を Zod で安全にパースする

今回は、localStorage に保存された値を検証する場面で、Zod の parse 関数を利用した方法を紹介します。 筆者はこれまで localStorage から取得した値のパースに、JSON.parse を使っていましたが、Zod の parse 関数と組み合わせることで、より型安全に値を…

配属1ヶ月のインターンが勝手にRBS::Inlineを導入して怒られた

みなさんはRBS::Inlineをご存知でしょうか。 RBS(Rubyに型システムを導入するインターフェース言語)をコメントから生成出来るようにしたものです。 先日参加したRubykaigi 2024 follow upというイベントでRBS::Inlineを知り、これはいいものだと早速私は会社…

OIDCの仕組みを完全理解して、SaaSプロダクトに2FA機能を実装しました

本記事では、私が設計・実装を担当した2FA機能について、開発中に得られた知見や学んだことについて紹介します。クラウドハウス労務では企業向けの人事労務管理サービスを提供しています。利用企業は従業員に対してアカウントを払い出し、従業員は自身のアカ…

Active Storageを使った画像のCORS対応で沼った話

Ruby on Rails の Active Storage は お手軽に画像ファイルなどをクラウドストレージに保管できる便利なライブラリです。しかし正しく利用するにはクラウドストレージの仕様やWeb標準への理解が必要不可欠です。今日はそんなActive Storageを使って、Amazon …

開発チームマネージャが考える、Techouseインターン生が圧倒的成長ができる3つの理由

私が携わっている開発チームの中には、現在20名近くのインターン生が在籍しております。インターンは企業によってさまざまな形態がありますが、Techouseのインターンは、長期インターン(本人の希望にもよる、大学・大学院を卒業するまでずっと)である、プ…

Sidekiq Middleware でコンテナイメージの整合性を確認する

本日は、異なる Amazon ECS Service のコンテナイメージの整合性を確認するために Sidekiq Middleware を使用した話を書きます。クラウドハウス労務は、企業の人事労務業務を支援するクラウドサービスです。企業に属する従業員の情報を集めるため扱うデータ…

皆に優しい Ruby が俺にだけ BUILD FAILED してくる

先日、自身の参画しているプロジェクトの Ruby のバージョンが 3.3.5 に更新されました。これに伴い、手元の開発環境にも Ruby 3.3.5 を install しようと思いました。 開発環境では Ruby のバージョン管理マネージャとしてrbenvを利用しております。

「エンジニア100人に聞きました」〜Techouse紹介編〜

今回の記事では「エンジニア100人に聞きました」を実施いたします。 「エンジニア100人に聞きました」とは、10年以上前にサイボウズ社を中心に行われた会社を跨いだコラボ企画であり、各社のエンジニアの気風を紹介し合った取り組みになります。