エンジニアリングで事業をリードする
わたしたちはテクノロジーの力を強く信じています。テクノロジーが当たり前のように美容業界で利活用されることを目指し、またデジタルの強みを持って業界構造そのものをより良い形へ変容したいと考えています。
そのためには、同じようにテクノロジーの力を信じ、それを武器に課題解決に没頭できるメンバーの存在が欠かせません。一緒にモノづくりを楽しみ、業界の課題解決に挑戦しませんか?
わたしたちが大切にしたいこと
🤍 顧客志向と倫理観
わたしたちはプロダクトを業界に売り込みたいわけではありません。わたしたち自身も業界にどっぷりと浸かり、一緒になって美容業界の課題を感じ、解決のために協同したいと考えています。業界の理解を深め、お客様のために何ができるかを本気で考え抜くために、エンジニアにも現場感を大事にしてもらいます。
また、高い倫理感を持つことも重要です。テクノロジーは専門的である分、情報格差が生まれやすいです。テクノロジーに対する安心感・信頼感を勝ち取り、長期的に共に発展するために、高い倫理感を持ち誠意を持って顧客に向き合います。エンジニアには、技術を行使する立場として、この価値観を守ることを強く求めます。
💻 技術とモノづくり
優れたプロダクトを作るためには、顧客志向を持つことに加え、モノづくりそのものを探求することも大事なことです。
新しい技術を触るのが好き、コードを書きながら良い設計を模索したい、デザイン・UXにもこだわりがあるなど、物を形にするエンジニアであるからこそ、その営みに関心を持って磨きをかけることに熱中していてほしいと考えます。
優れたスキルがあるからこそ、優れた意思決定ができ、結果それがプロダクトの品質に大きく跳ね返ってきます。エンジニアが開発を楽しみ、自発的に学習や挑戦がうまれる環境を目指しています。
⛰️ スピード感と長期目線
業界もテクノロジーも変わり続けており、解決したい課題は山積みです。エンジニアチームでは、機動的に開発に取り組み、スピード感を持ってデリバリーにコミットします。
また、スピード感を持つことは品質を犠牲にすることを意味しません。長期的に安定して価値を提供し続けるために、ソフトウェアの品質は高く保つ必要があります。そのためにも、エンジニアが自発的にリファクタリングや改善に取り組める文化を大事にしています。
🧗♂️ プロ意識と自分ごと化
最後の砦としてプロダクトを顧客に届ける責任を持っているのはエンジニアです。だからこそ「なぜこのプロダクトを届ける必要があるのか?」には腹落ちしていて欲しいです。
美容業界向けのプロダクトであるため、自身がユーザーにはなれませんが、自分ごと化して事業に主体的に取り組むことはできます。技術に閉じずにエンジニアが力を発揮することを奨励しています。
🤝 チームで臨機応変に
チームで取り組み、相互に学び合い、高め合える環境を大事にしたいです。同じゴールを目指し、助け合いながら切磋琢磨すること、その営み自体が有意義で価値があることだと考えています。
まだ小規模チームなので整っていない事が多く、開発プロセスも固まりきっているわけではありません。特定の領域に限定されず臨機応変に動き、協力的かつ建設的に前に進めることを期待しています。
技術スタック
🔷 バックエンド
技術 | 補足 |
Node.js
express.js | サービスのAPIサーバー。
NestJS 等も検討の余地はありますが、express.js は軽量でありながら機能としても十分という判断をしています。 |
tRPC | REST 形式の API から、 tRPC に徐々に移行中。
コードジェネレーターがいらずにバックエンド↔フロントエンド間で型が守られるので、フルTypeScript構成では結構嬉しい。
まだまだ移行は進んでおらず、手を入れていきたいところ。 |
🔷 フロントエンド
技術 | 補足 |
React | web は create-react-app による SPA。業務管理システムは開きっぱなしにしていることが多いので今の形でワークしています。(CRAは非推奨になっているため、Next.js の static export に切り替えられないか検証中…。)
新規のC向けの画面では Next.js (App Router) を導入しようと検討中です。 |
React Native | アプリは React Native を使用。最近は expo がデファクトになっていますが、今は生の React Native。
アップデートが辛いことが多いので、将来的に expo に乗り換えられるように準備を進めているところ。 |
Redux
tRPC
react-query | Redux では、バックエンドからの受け取ったデータを正規化して保持したり、アプリケーション全体で利用するステートを管理しています。
前者のデータ管理は tRPC × react-query に移行中。 |
Next.js | サービスサイトで Pages Router & static export で利用中。
新規のC向けの画面では Next.js (App Router) を導入しようと検討中です。 |
Storybook | デザインシステムと内製 UI ライブラリを管理。
より大きい粒度(ドメインロジックを含むような)のコンポーネントも必要に応じて Storybook でカタログ化しています。 |
🔷 共通
技術 | 補足 |
TypeScript | 随時バージョンを上げて追従しています。 |
Nx | TypeScript のモノレポ管理ツール。
開発初期はリポジトリが分かれていましたが、重複コード多く開発効率も悪かったため、モノレポに移行しました。 |
Jest | バックエンドのテストは比較的しっかり書いています。
フロントエンドのテストは最適解を模索中… |
Playwright | E2E テストは最小限用意していますが、まだまだ整備中。 |
🔷 その他
技術 | 補足 |
インフラなど | AWS: ECS, Aurora, S3, API Gateway, SQS, Lambda, Cloud Watch, …
GCP: BigQuery
Firebase: Authentication, Storage, Firestore |
エラー監視・モニタリング | Sentry, DataDog(Logs, APM) |
その他 | GitHub Actions(CI), Stripe(決済), Notion(プロジェクト管理・ドキュメンテーション), Figma, Miro, Slack |