なにをやっているのか
PHP/Laravelの案件で「経験あり」と書いたときに、案件側が実際に想定している範囲についてまとめます。多くの案件で最初に求められるのは、一覧・詳細・作成・更新・削除といった基本的な画面を、コントローラーとEloquentのモデルを使って組み立てる作業です。ここまでは、いわゆるCRUDが書ける段階で、公開されている教材やチュートリアルでも触れられる範囲です。
一方で、案件要件として実際に問われるのは、その先にある設計判断です。Eloquentのリレーションをどう組むか、hasManyとbelongsToManyのどちらを使うべきか、中間テーブルをどう設計するかといった判断や、N+1問題に気づいてEager Loadingで対処できるかどうかは、規模のある案件では毎回のように出てきます。マイグレーションとシーダーを使ってデータ構造の変更履歴を残し、テスト用データを整備する運用も、実務で継続的にプロダクトに関わっていないと身につきにくい部分です。
私たちは2022年に大阪で創業したインフラ事業の会社で、2026年から東京でSES事業を立ち上げています。案件の紹介は日に複数件入ってきますが、お願いできる方がまだ足りていない状況です。
なぜやるのか
「経験あり」という自己申告と、実際にできることの間にずれがあると、客先面談の段階で必ず質問が深掘りされ、そこで答えに詰まってしまいます。逆に、CRUDより先の設計判断まで説明できると、案件選びの幅そのものが変わってきます。
ミドルウェアでの認証・認可の実装、PolicyやGateを使った権限判定の設計、キューとジョブによる非同期処理、イベントとリスナーによる処理の分離、サービスコンテナを通じた依存の注入、フォームリクエストによる入力値検証といった要素は、規模のあるLaravel案件でほぼ共通して出てくる観点です。これらを自分の言葉で説明できるかどうかが、案件側にとっての「経験あり」の実質的な判断材料になっています。
PHPUnitでのテスト作成についても同様です。テストを書いた経験があるかどうかは、コードの品質だけでなく、変更に対する安心感にも直結するため、確認されることが多い項目です。
どうやっているのか
私たちは、カジュアル面談の場でその日の案件在庫から合いそうなものを3件お見せしています。合うものがなければ、その場で正直にお伝えしています。実際の案件要件と照らし合わせることで、「経験あり」の範囲が案件側の期待とずれていないかを、応募の前に確認できます。
その上で、スキルシートと客先面談の想定質問を一緒に詰めていきます。Eloquentのリレーション設計やN+1問題への対処、マイグレーションの運用経験など、どこまで自分の言葉で説明できるかを一緒に整理することで、面談本番でのずれを減らしています。
こんなことやります
契約形態は準委任です。稼働形態は案件によって異なり、フルリモートで継続的に対応いただけるものもあれば、一定の常駐を伴うものもあります。居住地は問いませんので、東京から離れた場所で稼働されている方もご相談ください。
求めるのは、Eloquentのリレーション設計やマイグレーション運用、認可の実装、キューとジョブの扱いなど、CRUDより先の設計判断に触れたことがある方です。ご自身の経験がどこまで案件の要件に当てはまるか、まずは一度お話しできればと思います。