KAKEHASHI Tech Blog

カケハシのEngineer Teamによるブログです。

RxJSと仲良くなる

こんにちは、株式会社カケハシでおくすり連絡帳 Pocket Musubiの開発を担当している渡辺です。 RxJS RxJSはリアクティブプログラミングのライブラリです。 リアクティブプログラミングって何かと言いますと、 データを受け取るたびに反応(リアクション)をす…

カケハシがDatabricksを導入した背景と技術選定のポイント

初めまして、カケハシのデータ基盤チームでデータエンジニアしている大木と申します。 この度カケハシでは、全社的なデータ活用基盤のプラットフォームとしてDatabricksを採用し、2022/07より本格導入することとなりました。 当記事では、カケハシがDatabric…

【Airflow】夜間バッチが心配で夜も眠れない...なら夕方にも動かせるバッチ処理のE2Eテスト環境を作ってしまおう!

こんにちは、カケハシでMusubi Insightのバックエンドエンジニアをしている末松です。 夜間などに動くバッチ処理を開発・メンテしているエンジニアの方ならきっと共感していただけると思うのですが、夜間バッチって心配になりますよね。 朝早起きして結果を…

AWSの負荷テストソリューションを使ったGraphQLの負荷テスト

はじめに こんにちは、LINE上で動くおくすり連絡帳 Pocket Musubi というサービスを開発している種岡です。 日頃もくもくと開発作業に勤しむ傍ら、ときどきユーザーからの生の声(良くも悪くも)が届くのは嬉しいものです。 サービスが成長している1つの証で…

ElectronアプリとDeepLinkでシステム連携する

概要 こんにちは!私はカケハシにて薬局と患者様の関係を向上させるためのオペレーションツールである 患者リスト の開発を担当している小室と申します。患者リストの立ち上げから担当させて頂いており、技術選定などのお話は先日はTechPlayでも登壇させて頂…

【開発者でもできる!】OWASP ZAPを利用したGraphQLアプリケーションへの脆弱性診断

はじめに こんにちは、LINE上で動くおくすり連絡帳 Pocket Musubi というサービスを開発している種岡です。 弊社では、ソフトウェアエンジニアそれぞれが得意分野をリードしながらも、フロントエンド、バックエンド、インフラを横断的に見ているケースが多い…

Figma からアイコンの画像を生成して GitHub の PR を作る Widget の作り方

はじめに こんにちは、Pocket Musubi エンジニアの関(@sekikazu01)と申します。 「あ〜アイコン大量に増えた時逐一画像を書き出して Icon コンポーネントに反映させるのめんどくせ〜〜〜」 そんな風に思った事はないでしょうか。私は思いました。 ので Figma…

ServiceWorkerの事前読み込みとキャッシュ化でプロダクトを高速化した話

はじめに こんにちは、KAKEHASHIのMusubiInsightチームでエンジニアをしている高田です。 MusubiInsightとは、薬剤師さんの業務データを可視化するBIツールになります。 そんなMusubiInsightにおいて、表示の高速化を狙いにServiceWorkerという技術を導入し…

Angular テストフレームワーク を jasmine/karma から Jest に移行しました

概要 薬局運営のデータ分析サービスである Musubi Insight のフロントエンド開発をしております米山と申します。 Musubi Insight のフロントエンドは Angular で開発されており、テストフレームワークには jasmine/karma を利用していました。 この度、jasmi…

Google + Cognitoでユーザーグループ単位の認証認可

こんにちは、あるいはこんばんは(アーニャ声)。 突然ですが認証認可周りの設計・実装は毎回全然違った要件に沿って違った感じでやっていく感じになるのでおもしろいですよね。 この記事では、先日Musubi Insightチームが社内向けに作成したコンソールの設計…

新規プロダクトにおけるFlutterのローコードツール利用とそのリファクタリング戦略

概要 こんにちは。PocketMusubiチームの南光です。 今回は、ローコードツールを利用してアプリを開発した際に工夫した内容を記事としてまとめました。 ローコードツールの開発知見記事はあまりみない気がするので、興味を持っている方やこれから利用を検討し…

カケハシをデータドリブンな組織に!全社横断的なデータ基盤を組成しました!

こんにちは、カケハシでデータ基盤チームの開発ディレクターをしている松田です。 2022年に、「カケハシはデータについて本気で取り組んでいくぞ!」と意気込み、 全社横断的な組織としてデータ基盤チームを組成しました。 今回はそのデータ基盤チームについ…

異分野の知見を活かす、DevOpsの実践: Learning from Other Fields

冒険。ロマン。船はその文明、文化における最新技術の結晶と水中(船舶)考古学は伝えます。今の時代ならば宇宙分野もそうかもしれませんね。昨年2021年の12月、ジェイムズ・ウェッブ宇宙望遠鏡が打ち上げられています。望遠鏡に代表される新しい「観測手段」…

DevOps Days Tokyo 2022に参加しました

こんにちは。ソフトウェアエンジニアの南光です。 2022年4月21~22日に開催されたDevOps Days Tokyo 2022 に、スポンサーとしてイベント参加してきました。今回の記事では、イベントの概要や参加した感想などを皆様へお届けしたいと思います。 イベントに参加…

DynamoDBからS3へApache Hudiを使って同期してみた

KAKEHASHI でバックエンドエンジニアをしている横田です。 今回は、OLTP から OLAP へのデータ同期処理で、気になった技術を使ってみました。 背景・目的 DynamoDB のデータを S3 に日次で同期する必要がありました プロダクトで作っているデータをどうやっ…

🚒 今の組織でもすぐできる、障害訓練ガイド

誰にだって作戦がある。最初にパンチを食らうまでは。 ヘビー級ボクサーとして名を馳せた、マイク・タイソン氏の言葉です。 障害における計画やマニュアルがあっても実際にできるか、衝撃を受けてもうまく動けるかどうかは試してみないとわかりません。さす…

【Angular】@angular/common の DOCUMENT を利用して、window.document を依存注入する

概要 Angular での開発において、DOM 操作などのために window.document を参照することはあるかと思います。 @angular/common には、DOCUMENT という DI Token が用意されています。こちらを利用することで、依存注入経由で document を参照することができ…

Presigned URLを利用したS3へのファイルアップロード

はじめに こんにちは、LINE上で動くおくすり連絡帳 Pocket Musubi というサービスを開発している種岡です。 社内システムからS3にファイルをアップロードする機能を開発することになり、Presigned URLを利用して開発を試みたものの、想定以上に時間がかかっ…

なぜバックエンドTypeScriptか?技術選定背景と実践例を紹介します

カケハシの医薬品発注管理最適化領域の新規事業の開発を担当している木村です。今回は新しいサービスを構築する上で行った技術選定と実践方法の話をします。 技術選定に関しては、インフラ関連やライブラリなど選定した技術は多岐にわたるのですが、その中で…

スマートホームで職場(自室)環境を改善してみた

こんにちは、カケハシでMusubi Insight のバックエンドエンジニアをしている高田です。 私はカケハシへの入社と同時に兵庫県移住し、現在フルリモートで勤務しています。 そのため自室=職場であり、より生産性が上がり、気持ちよく働けるよう環境を改善した…

どのような考えで社内ローンチチェックリストを作成したか

作成した背景 カケハシでは新規プロダクトや大掛かりな改修に対し、Well Architected Frameworkに基づいたレビューを行っています。一方、フレームワークは汎用的に記載されており、特にAWSや非機能要件に慣れていないメンバーには各項目の具体的な内容がイ…

Storybook Addon Contexts を使って、ワンランク上のコンポーネントカタログを作ろう

概要 コンポーネントのカタログを作成することができる storybook。利用している開発者は多いのではないでしょうか? この記事では、Storybook Addon Contexts を利用して、storybook 環境をちょっと便利にする方法を書きます。 Storybook Addon Contexts と…

カケハシのフロントエンドエンジニアとしてのスキルアップ

こんにちは、株式会社カケハシでおくすり連絡帳 Pocket Musubiの開発を担当している渡辺です。 カケハシのエンジニアはフロントエンドもバックエンドのAPIサーバーも開発を担当しています。どちらかといえばフロントエンドの方が知識・経験ともに自信がある…

Amazon CognitoでSingle Sign Onを実現してみた

KAKEHASHI の Musubi Insight チームでエンジニアをしている横田です。 KAKEHASHI では薬剤師さん向けに Musubi という業務システムや、BI ツールの Musubi Insight という Web アプリケーションなどを提供しています。 それらは toB のサービスなので 一般…

まったく新しい開発体験をもたらすServerless Stackとは何か

はじめに こんにちは、LINE上で動くおくすり連絡帳 Pocket Musubiというサービスを開発している種岡です。 この記事では、Serverless Stackとapollo-server-lambdaを使って、AWS Lambda上でApollo Serverを動かしてみたのでご紹介します。 対象読者 以下に興…

⚡今すぐ見直してほしい、2021年版Lambdaチェックリスト!開発者のためのポイント30選

AWS Lambdaを使えば開発者がビジネス価値に集中できる一方、それでも今までの開発と異なるポイントに気をつける必要があります。この記事では注意したい計30個のチェックポイントを紹介します。 まずは比較的簡単で効果が出やすい部分から見ていきましょう。…

ググれなかった時にやっていること

こんにちは、LINE上で動くおくすり連絡帳Pocket Musubiというサービスを開発している南光(@stnamco)です。 Qiitaのググって解決しづらかったこと Advent Calendar 2021向けに書いた記事です。 この記事では、ググれなかった時に個人的にやっている手法につい…

ETL処理がシンプルになる!AWS Glue 3.0で使えるようになったPySparkの関数紹介

KAKEHASHI の、Musubi Insight チームのエンジニアの横田です。 KAKEHASHI では BI ツールの Musubi Insight という Web アプリケーションを提供しています。 BI ツールでは薬剤師さんの業務データを可視化しておりますが、そのデータの集計処理には AWS Glu…

自分の学びをチームの学びに変えるPRレビュー活用術

こんにちは、LINE上で動くおくすり連絡帳Pocket Musubiというサービスを開発している南光(@stnamco)です。 この記事では、PRレビューを利用して自分の学びをチームの学びに繋げた取り組みについて紹介します。 背景 カケハシではDXCriteriaを利用した開発組…

【TypeScript】Yaml を読み込んで(無理やり)型付けする

こちらは株式会社カケハシ x TypeScriptアドベントカレンダー2021 20日目の記事です。 タイトルの通り、TypeScript ファイルに Yaml データを読み込んで型付けをする方法です。 TypeScript 環境のセットアップ まずは TypeScript 環境をつくります。 mkdir t…