多くの開発者のポートフォリオは静的サイトです。私のポートフォリオにはSLOがあります。
これは過剰設計の話ではありません。面接では伝えにくい特定のスキル、運用成熟度を示すことが目的です。
「本番品質のポートフォリオ」とは
私のポートフォリオサイト(sageideas.dev)には以下があります:
- SLO目標: ダッシュボード可用性99.9%、テレメトリ鮮度24時間以内、P95応答時間500ms未満
- インシデント訓練: 文書化された対応手順付きの4つの障害シナリオ
- WAFレート制限: 攻撃シミュレーションの証拠付きCloudFront Web ACL
- OIDC連携: 静的認証情報なしのGitHub Actions → AWS
- 品質テレメトリ: CI成果物をリアルタイムで取得するライブダッシュボード
- セキュリティ証拠: IAMポリシー、脅威モデル、すべての主張に対する証拠
なぜわざわざやるのか
「作れる人」と「運用できる人」の差こそが、シニア職の本質だからです。
ジュニアエンジニアは機能を作ります。ミドルレベルのエンジニアはシステムを構築します。シニアエンジニアはシステムを運用します——障害モード、爆発半径、コスト、コンプライアンス、そして午前3時に何が起きるかを考えます。
ポートフォリオを本番環境のように扱うことで、以下を示しています:
- 障害が起きる前に考える——すべての外部依存にフォールバックあり
- 重要なものを測定する——虚栄の指標ではなくSLO
- 次の人のために文書化する——ラン ブック、プレイブック、アーキテクチャ資料
- セキュリティで手を抜かない——ポートフォリオサイトであっても
インシデント訓練のパターン
四半期ごとに4つのシナリオを実施しています:
| シナリオ | 対応 | 状態 |
|---|---|---|
| GitHub APIレート制限 | スナップショットモードにフォールバック | テスト済み |
| CI成果物欠落 | 最近の実行をスキャン、グレースフルデグラデーション | テスト済み |
| AWSプロキシトークン不一致 | CloudWatchアラーム、自動デグラデーション | テスト済み |
| S3オブジェクト欠落 | フェイルクローズ、シークレット漏洩なし | テスト済み |
各訓練は次の流れに従います:検知 → トリアージ → 緩和 → 検証 → 文書化
訓練レポートは成果物ライブラリで公開しています。
採用担当者が注目する点
シニア/スタッフ職の面接では、ポートフォリオのデザインについて話しません。運用について話します:
- 「こちらがSLOダッシュボードです。今月は99.94%を達成しています。」
- 「先週実施したWAFレート制限テストです。100リクエスト/5分で429エラーが発生します。」
- 「こちらがIAMポリシーです。Lambdaには1つのキーに対するs3:GetObjectの1つの権限しかありません。」
これにより、会話が「コードは書けますか?」から「システムを運用できますか?」に変わります——これこそが年収200Kドル以上の職に実際に求められることです。
自分で始める方法
AWSは必要ありません。小さく始めてください:
- 1つのSLOを定義する——「今月のサイト稼働率99%」。それを監視する。
- 1つの品質ゲートを追加する——デプロイパイプラインにLighthouse CI。パフォーマンス低下でビルド失敗。
- 1つの障害モードを文書化する——「APIキーが期限切れになったらどうなるか?」答えを書き留める。
- 1つのインシデント訓練を実施する——実際に意図的に何かを壊し、対応を練習する。
目標は完璧さではありません。開発だけでなく、本番環境について考えていることを示すことです。
関連システム:AIネイティブスタジオが実際に作るものでは、ポートフォリオがプロダクト表面、オペレーティングシステム、成長ループとして同時に扱われる理由を説明しています。
