トップへ戻る
カレーが食べたい
times.hrbrain.co.jp
HRBrainプラットフォームチームのテックリードのhidetatzです。札幌に住んでいるんですが雪がヤバいです。 このブログでは、HRBrainのプラットフォームチームとはどういうチームで、普段何をしていて、何を考えているのかを紹介します。社内のメンバーに知ってもらいたくて書いている部分もありますが、私達のことをもっと知ってもらうために、そして私達の仲間を増やすためにこの記事を書くことにしました。この記事を読んでもらって、私達の仕事の面白さを知ってもらい、話してみたいと思ってもらえたらいいなと思います。 プラットフォームチームは「インフラチーム」「DevOpsチーム」「SREチーム」のいずれでもありません。私達のチームが向き合っているプラットフォームエンジニアリングというタームは比較的新しいもので、よく説明されている記事は (特に日本語では) 筆者はあまり見かけません。この記事では、プラ
この記事は HRBrain Advent Calendar 2021 10日目の記事です。 qiita.com はじめに こんにちは。主に人事評価サービスのバックエンド開発や運用を担当している@tonarinoheyです。 筆者の2021年ベストバイはMINIクラブマン クーパーSDです。私事ですが、1歳になる長男が無限中耳炎編に突入しており、勤務中に中抜けして通院するのが最近のトレンドです。助けてくれ。 さて、HRBrainにおいて最も運用期間が長いサービスである人事評価サービスにおいて、開発チームは今年度からサービスレベル目標 (SLO) を定めています。運用を始めたばかりなので、今回は主にSLO運用に至った背景や、サービスレベル指標(SLI)・SLOをどのように決めたかご紹介します。 導入経緯 人事評価サービスが今後も利用テナント数を増やし、稼働継続しながら新たな機能追加が続くことを
こんにちは、バックエンドエンジニアの鈴木(善)です。 昨年に引き続き、今年もHRBrainではアドベントカレンダーをやっていきます! qiita.com この記事はその第一日目となります。 みなさん、マイクロサービスの開発ってどうされてますか? HRBrainでは現在マイクロサービス構成をとっており、日々の開発では個人のマシン上で各サービスを立ち上げて動作確認やデバッグができるようになっています(以下、ローカル開発環境と呼びます)。サービスが成長するとともにこの環境にも課題が出てきました。 これを改善するため「Tilt」というソフトウェアを試したところよかったので、今はTiltベースのローカル開発環境に乗り換えています。 Tiltに関する日本語の情報もまだ少なそうなので、今回は一つの導入事例として紹介してみようと思います。 本記事ではまず弊社の抱えていた課題に触れ、次にTiltの概要を説明
どうも、こんにちは。HRBrain でフロントエンドエンジニアをやってます。ちゃんかつです。 この前初めて代々木公園に行ったのですが、めちゃくちゃ広いですね。自然がいっぱいで気持ちが良かったです。 さて、HRBrain では今年の 6 月から、毎週月曜日に「type-challenges」を用いて社員の TypeScript (以下 TS) の型表現の向上を図っています。 この記事では、HRBrain ではなぜ type-challenges を解く時間を設けているのか、また、type-challenges への取り組み方を紹介します。 なぜ type-challenges を利用するのか いろいろ理由があるのですが、「解答がなるべく簡単にできる」が一番大きな理由です。 Typescript Playgroundで解答することが出来て環境構築の手間は不要、そして、type-challeng
こんにちは!HRBrainプラットフォームチームの桜庭です。 この度HRBrainでは、アプリケーションごとにリポジトリを持つ形式から複数のアプリケーションを1つのリポジトリにまとめる形式(以下モノレポ)へ移行しました。 この記事ではいかにしてモノれぽに移行したのかを書いていきます。 アプリケーションやチームの規模その他諸々の事情によって良し悪しは変わってるのでこの記事ではモノレポとPolyrepoの比較については書きません。 どうして移行するのか HRBrainではマイクロサービスアーキテクチャを採用しています。 そのため、提供しているそれぞれのサービス(人事評価、社員名簿、組織図、組織分析)や認証基盤などのフロントエンドとバックエンドを別なリポジトリで管理していました。 最初はそれでうまく回っていましたが、最近では以下のような問題が発生するようになりました。 他のリポジトリにある共通処
こんにちは HRBrainでフロントエンドを書いている鈴木です この記事はHRBrainAdventCalendar8日目の記事です Reduxには @reduxjs/toolkit という超メガドデカハチャメチャ便利ライブラリがありますが、 createAsyncThunk で作ったコードでなんやかんやしようとするとかなりハマったのでそちらの紹介です redux-toolkit.js.org 型パラしんどい 結論 Returned ThunkArg ThunkApiConfig 使い方 動きがいまいちわからん 作った関数を実行する 非同期のアクションを受け取る おわりに 型パラしんどい createAsyncThunk には3つの型パラメーターが必要ですが、複雑でかなりしんどいです まずは型定義を見てみましょう function createAsyncThunk< Returned, T
こんにちは。HRBrainでSREをやらせてもらっている@mano_0307です。 今年も早いものでアドベントカレンダーの時期になってしまいました。あっという間の年末ですね。 昨年まで弊社ではアドベントカレンダーをやる文化はなかったのですが、先月終了間際にダメ元で「やろうよ!」とチームの方々にお声がけしたところ、予想よりも多い方が「書く!」と集まってくれました。僕としては赤井秀一(名探偵コナンの登場人物)を真似して 「・・・嫌だ、と言ったら?」 と、全員から断られてしまうことも覚悟していたので、とても嬉しく思います。 まぁでも急すぎたのもあって、さすがに25人は集まらなかった・・・。なので穴開きカレンダーです。構うものですか!アドベントカレンダーに穴が開いているからとて、別に犯罪でもあるまいに!(居直り) でも、このようなツイートをしたのですが、 会社の人たちにアドベントカレンダー書こうよ
こんにちは。HRBrainでインフラエンジニアをしている間野(@mano_0307)です。 今年の5月にインフラエンジニアとして入社しました。Kubernetesを使っている弊社で、Kubernetesをまったく触ったことのない私のような人間がインフラエンジニアになれるというのが弊社の素晴らしいところです。合言葉は「トライドリブン」。日々トライができる素晴らしい環境です。 Dev環境という各社共通の悩み 多くの会社で何かと困っているのがdev環境なのではないかと思います。 dev環境今日も空いてないよ・・・フルリモートでどうせバレないし、寝ちゃお あれ?久々に使ったdev5環境がうまく動かないよ。・・・(数時間後)あー、最新のmasterがrebaseされてないからAPIのinterface変わってんじゃん!うわー寝よ・・・ そろそろdev環境増やしたいな・・・でも、あの設定も複製しなきゃ
こんにちは、エンジニアの稲垣です。 はじめに この記事はこちらの続きです。 今回は前回Auth0に設定した情報をもとに認証のGoのクライアントを実装してみます。 なお、OpenID Connectの仕様は深掘りせずに、ユーザ認証の雰囲気を掴むことを目的としています。 それでは、見てみましょう。 認証フローについておさらい あらためて、認証フローについて確認します。 ユーザのログインボタンクリックなどをトリガーにアプリケーションサーバにリクエストが送信されます。 アプリケーションサーバはリクエストを受信すると、クライアント識別子(Client ID / Client Secretなど)を含めたリクエストを生成し、OPにリダイレクトします。 OPはリクエスト情報を検証し、認証・認可画面を表示します。 ユーザは認証に必要な情報を入力し、OPはその情報を検証します。OPは認可コードを付与し、アプリ
こんにちは、VPoEの川田です。 今回はVPoEらしく、エンジニア組織っぽいことを書きます。 エンジニアチームのパフォーマンスを定量的に計測する方法についてです。 なぜ計測しようと思ったのか 課題が大きく2つありました。 1. エンジニア個々人の事業目標が立てづらい HRBrainでは、エンジニアの立てる目標の中に事業目標というものがあります。 事業に対してどういう貢献をするために、何をやるのかを毎月頭に各メンバーに決めてもらっています。 全社である程度の方針は決めているので、その中から自分がやりたいものを拾うというのが基本的な流れですが、決めた内容がどれだけ事業に貢献するかが分かりづらいという問題がありました。 例えば、今月はSSOを実装するぞという目標を設定したとします。 そうした場合に、SSOがどれだけのお客様に利用してもらえるのか?新しく営業に行った場合にどれくらいのお客様に刺さる
はじめまして!HRBrainでフロントエンドエンジニアをしている鈴木(@suzuesa)です さて、早いものでHooksがリリースされて2ヶ月が経とうとしています みなさんHooksを使いこなせてますか?私はまだまだ使いこなせません… 今回はその新しいHooksの機能をパフォーマンスチューニングの話と絡めてご紹介したいと思います 前提 これまでのチューニング方法 ClassComponent FunctionComponent Hooks以降のチューニング useMemo memo() + useCallback() 実践 前提 パフォーマンスチューニングと言っても、どうしてReactが遅くなるのか、何処を改善すれば速くなるのかを知っておく必要があります qiita.com 上の記事にすごい詳しく書いてあるので、そちらを見てからこの記事を読むともっと理解度が深まるかもしれません 簡潔に言え
こんにちは、サーバーサイドエンジニアーのユキチです。 SaaSの開発を行う上では複数の企業様のデータを扱うことになります。 そういったマルチテナントのデータ設計を行う上で、弊社ではPostgreSQLのRow Level Securityという機能を使って実装しました。 今回はPostgreSQLのRow Level Security(以下RLS)という機能を使ってマルチテナントのデータ操作を安全に扱う方法を紹介していきたいと思います。 マルチテナントデータベース設計 主に3パターンの設計手法が考えられます。 Multi Tenants in 1 Database:複数企業のデータを一つのデータベースで管理 1 Tenant in 1 Database:テナントごとにデータベースを分けて管理。物理的なインスタンスは同じ。 1 Tenant in 1 Instance:テナントごとにデータベ
こんにちは。エンジニアのゆきちです。 普段はGoでアプリケーションを書いたりAWSでインフラ構築をしたりしてます。 HRBrainという企業の目標管理サービスを作っています。 なので、弊社では様々な企業さんの大切な情報を取り扱っています。 それにはもちろん個人情報も含まれるわけですが、そうなると僕ら管理スタッフが直接データを見ることができてはいけません。 とはいえ、こういうエラーが出たんですが...などの問い合わせに対応するためには、時によって本番のデータにアクセスして調査する必要があります。 制限も何もなければ当然丸っとそのまま見れちゃうわけですが、それができてしまってはSaaS企業としてのプライドが廃る!という所存でやっていきます。 そんな時にはどうすればいいんでしょうか? 答えは、 データを匿名化すること です。 今回、本番環境のデータベースのデータをマスキングして、調査者が見れる環
このページを最初にブックマークしてみませんか?
『times.hrbrain.co.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く