# Wantedly Engineering Handbook

新しく Wantedly の開発チームに参加する人向けのドキュメント集です。社内のエンジニアが知るべき情報のうち外部にも公開できる情報を体系的にまとめたものです。

入社前後のフルタイムの社員が一番の想定読者です。ハンドブックの内容はインターンや採用選考を受けている人にも役に立つことを期待しています。また、PDF 形式の電子書籍およびオンラインドキュメントとして広く一般公開しています。1 年に 1 度、物理書籍としても印刷し社内外に配布します。

## 入手

* [🌏 公開版 PDF (技術書典)](https://techbookfest.org/product/4831016940208128?productVariantID=4856256852393984)
* [🔒 社内版 PDF (internal)](https://github.com/wantedly/dev/releases)
* [🌐 Web 版](https://docs.wantedly.dev)
* [📚 過去の TechBook](https://drive.google.com/drive/folders/1sY2eF93rTaNkQeqIgtnNZntXpUueQ5DZ)

## 関連資料

* [📊 Wantedly の開発チームをよく知ってもらうための 2W1H](https://speakerdeck.com/wantedly/for-engineers)
* [🎤 登壇資料一覧](https://wantedlyinc.com/ja/presentations)
* [🎧 Podcast](https://anchor.fm/wantedly-dev)
* [🍿 YouTube](https://www.youtube.com/channel/UCj1HXgKShVMrIn9EFetN7jw)
* [🛋 Blog](https://www.wantedly.com/stories/s/wantedly_engineers)
* [🇬🇧 Blog (English)](https://medium.com/wantedly-engineering)
* [🇬🇧 Blog (English - dev.to)](https://dev.to/wantedly)
* [💬 Twitter](https://twitter.com/wantedly_dev)
* [🏫 wantedly/learning-resources](https://github.com/wantedly/learning-resources)
* [📚 dev-docs (internal)](https://dev-docs.wantedly.com)
* [🔰 Wantedly 入門 (internal)](https://dev-docs.wantedly.com/beginners/)
* [📚 Confluence (internal)](https://wantedly.atlassian.net/wiki/home)

## Dashboards

* [Looker (internal)](https://wantedly.jp.looker.com)
* [SLO/SLI (internal)](https://slo-dashboard.internal.wantedly.com/)
* [Argo CD (internal)](https://argo-cd.internal.wantedly.com/)
* [Argo Workflow (internal)](https://argo.wantedly.com/)
* [Loki (internal)](https://loki.wantedly.com/)
* [New Relic](https://one.newrelic.com/)
* [Datadog](https://app.datadoghq.com/dashboard/lists)

## 目次

* [まえがき](https://docs.wantedly.dev/preface)

### 第一部：開発チームへの案内

* [技術とアーキテクチャ](https://docs.wantedly.dev/introduction/technical-overview)
* プロダクト概要
* [開発チームの構造](https://docs.wantedly.dev/introduction/dev-org)
* [コミュニケーションの全体](https://docs.wantedly.dev/introduction/communication)
* ドキュメンテーション
* [カレンダー](https://docs.wantedly.dev/introduction/calendar)
* [障害対応の心構え](https://docs.wantedly.dev/introduction/incident)
* [効率的な社内知識の調べ方](https://docs.wantedly.dev/introduction/catching-up-on-in-house-knowledge)
* [外部発信(執筆中)](https://docs.wantedly.dev/introduction/outreach)

### 第二部：技術領域への案内

#### Apps

* [アプリを提供するプラットフォーム](https://docs.wantedly.dev/fields/apps/apps_platforms)
* [デザインシステム入門](https://docs.wantedly.dev/fields/apps/design-system-for-non-designers)
* [Web アプリのアーキテクチャ](https://docs.wantedly.dev/fields/apps/frontend-architecture)
* [プロダクトデザイナーと上手に協働するための心得](https://docs.wantedly.dev/fields/apps/collaboration-with-designers)
* [Web アプリのデザインシステムライブラリ](https://docs.wantedly.dev/fields/apps/design-system)
* [Web アプリ共通ライブラリ "React Shared Component" の紹介](https://docs.wantedly.dev/fields/apps/react-shared-components)
* [モバイルアプリのアーキテクチャ](https://docs.wantedly.dev/fields/apps/mobile-architecture)
* モバイルアプリのデザインシステムライブラリ

#### The System

* [protobuf スキーマと gRPC 通信](https://docs.wantedly.dev/fields/the-system/apis)
* [実践: gRPC in Ruby](https://docs.wantedly.dev/fields/the-system/grpc-in-ruby)
* [実践: gRPC in Go](https://docs.wantedly.dev/fields/the-system/grpc-in-go)
* [GraphQL Gateway - アプリ向けに API を公開する](https://docs.wantedly.dev/fields/the-system/graphql-gateway)
* [Wantedly Visit で BFF GraphQL サーバーを辞めた理由](https://docs.wantedly.dev/fields/the-system/history-of-graphql)
* 実践: GraphQL スキーマ設計(未執筆)
* [API での認可処理 (Authorization)](https://docs.wantedly.dev/fields/the-system/authorization)
* [マイクロサービス共通ライブラリ "servicex" の紹介](https://docs.wantedly.dev/fields/the-system/servicex)
* 非同期メッセージング処理入門(未執筆)
* バッチ処理入門(未執筆)

#### Infrastructure

* [プロダクト開発のための Kubernetes 入門](https://docs.wantedly.dev/fields/infrastructure/kubernetes-introduction)
* [インフラ構成概要](https://docs.wantedly.dev/fields/infrastructure/infrastructure)
* [リリース・デプロイ戦略を支える技術](https://docs.wantedly.dev/fields/infrastructure/deploy-strategy-implement)
* [SaaS を活用する：New Relic, Honeybadger, Datadog](https://docs.wantedly.dev/fields/infrastructure/infra-saas-usage-and-use-cases)

#### Data

* [データ基盤入門](https://docs.wantedly.dev/fields/data/data-infra)
* [レコメンデーション](https://docs.wantedly.dev/fields/data/recommendation)
* [Looker 入門](https://docs.wantedly.dev/fields/data/looker)
* [推薦システムの開発に使っているツール](https://docs.wantedly.dev/fields/data/ds_tools)

#### 開発プロセス

* [Git の慣習](https://docs.wantedly.dev/fields/dev-process/git-convention)
* [ポストモーテムの取り組み](https://docs.wantedly.dev/fields/dev-process/post-mortems)
* [負債返済日の取り組み](https://docs.wantedly.dev/fields/dev-process/fusai-hensai-bi)
* [プロダクトの課題発見及び解決](https://docs.wantedly.dev/fields/dev-process/discovering-and-solving-service-issues)
* [ソフトウェアデザインの基礎](https://docs.wantedly.dev/fields/dev-process/software-design)
* [コードレビュー](https://docs.wantedly.dev/fields/dev-process/how-to-write-a-pull-request)
* [コーディング規約](https://docs.wantedly.dev/fields/dev-process/coding-rule)
* [リリース・デプロイ戦略](https://docs.wantedly.dev/fields/dev-process/deploy-strategy-overview)
* [上長承認が必要な作業](https://docs.wantedly.dev/fields/dev-process/approval)
* [アーキテクチャディシジョンレコード(ADR)](https://docs.wantedly.dev/fields/dev-process/adr)
* [作業ログを残す意味](https://docs.wantedly.dev/fields/dev-process/operation-log)
* [多言語化対応(i18n)](https://docs.wantedly.dev/fields/dev-process/i18n)
* [メール開発](https://docs.wantedly.dev/fields/dev-process/mail)

#### 開発ツール

* [社内利用している開発ツールの最新状況](https://docs.wantedly.dev/fields/dev-tools/dev-tools-status)
* [kube](https://docs.wantedly.dev/fields/dev-tools/kube)
* [Code Coverage](https://docs.wantedly.dev/fields/dev-tools/code-coverage)
* [Kubefork](https://docs.wantedly.dev/fields/dev-tools/fork)

### おわりに

* ロードマップ(未執筆)
* [Handbook の書き方](https://docs.wantedly.dev/postscript/guideline)
* [コントリビューター](https://docs.wantedly.dev/postscript/contributors)

### 付録

* [社内用語集](https://docs.wantedly.dev/appendix/jargon)
* 主要な GitHub レポジトリのリスト(未執筆)
* 今後の挑戦・未解決イシュー(未執筆)
* プロダクト開発組織のバリュー(未執筆)
* 採用についての考え方(未執筆)

## コントリビューションガイド

ハンドブックは、継続的にチーム全員で更新していきます。特に、新人のみなさんの積極的な貢献を望みます。自分自身が困ったことや、ドキュメント不足に気づいた情報を、未来の仲間のために書き残してください。 既存の更新案は [Wantedly Engineering Handbook](https://github.com/orgs/wantedly/projects/115) で管理されています。

### 情報の追加・更新や誤字脱字

修正の pull request を歓迎します。[@engineering-handbook-editors](https://github.com/orgs/wantedly/teams/engineering-handbook-editors)にレビューをアサインしてください。

### 新しい記事の執筆

目次の中でリンクが存在しない記事は未執筆です。少しでも情報があれば助けになります。短い文章や、GitHub issue の抜粋でも構わないので、関連しそうな情報を教えて下さい。記事を書いて pull request をだすのも、もちろん歓迎です。

また、現時点で目次に含まれていないトピックに関しても、新しい記事の提案を歓迎します。気軽に[issue](https://github.com/wantedly/dev/issues?q=is%3Aissue+is%3Aopen+label%3AHandbook)を作成してください。

新しい記事を作成し、書籍版に含められる内容になったら、[catalog.yml](https://github.com/wantedly/dev/blob/master/handbook/catalog.yml)に追加してください。

記事の文章フォーマットに関しては、[Handbook の書き方](https://docs.wantedly.dev/postscript/guideline)を参照してください。
