転職活動を振り返る

はじめに

6月の頭から初めての転職活動をしていました。 約一ヶ月半の活動を経て、無事内定を得ましたので、振り返りをしようと思います。

大まかな活動の流れ

順番に振り返ります

  1. 応募する企業選び

  2. 書類選考

  3. 筆記試験・コーディングテスト

  4. 一次面接

  5. 二次面接(最終)

各活動の振り返り

応募する企業選び

選考:11社

エージェントから紹介された会社に応募する企業を11社選びました。 紹介数はかなり多いですが、自分の要望とはあまりマッチしていない企業(SESとか)もあり思ったより苦ではありませんでした。

書類選考

選考:11社 → 8社

応募する企業に作成した履歴書、職務経歴書を送りました。 結果は大体1週間後には来ており、11社中8社からは書類選考の通過連絡がありました。

エージェントからは、書類選考の通過率は5割ほどと聞いていましたが7割以上の通過率で思ったよりも高かったです。

筆記試験・コーディングテスト

実施されるかどうかは企業ごとに違います。

CAB、性格診断、webコーティングテストなどを実施しましたが、お見送りになることはありませんでした。

特にwebコーディングテストについては「落ちたかも・・・」と思うほど出来が良くなかったのもあります。 しかし実際は通っていたので通過ラインはそこまでではないのかもしれません。

webコーディングテストは時間が全然足りないと感じました。 高評価を狙って1問に時間をかけるのはNGです。可読性の意識は必要ですが、こだわりすぎず一通りの問題を解けるようにした方が良いと感じました。

一次面接

選考:8社 → 5社

正直8社分の面接は多すぎたと思ってます笑。

エージェントの方から「企業の数を調整しましょう」と提案されましたが、持ち弾がなくなることを恐れて結局減らしませんでした。 全てオンライン面接だったので時間調整は楽でしたが、連日の面接はかなり疲れます。 エージェントの言う通り調整すればよかったかなと反省。

よく聞かれる質問

  • 転職理由
  • 苦労した点(工夫した点を交える)
  • あなたの強み、弱み
  • 職歴に関すること
  • キャリアパスについて

注意点

面接中は面接官のこともしっかり見た方が良いと感じました。 というのも、そっけない面接官が結構います。

具体的には

  • 自分の話に反応がない
  • 終始無表情
  • こちらの顔を全く見ない
  • 書類を事前に見てない(面接始まってから初めて読んでいる)

他の採用者が決まっていて取る気がなかったのか、やる気のない印象が受けられた企業もありました。

応募しておいてなんですが、「この人がいる会社は嫌だな・・・」と面接中に感じてしまったところもあります。 逆質問などを通して、ちゃんと一緒に働きたいと思えるような人がいるところの選考を進めましょう。

二次面接(最終)

選考:5社 → 3社

募集要項に面接3回と書いていましたが、2回目で最終というケースが意外とありました。

志望度が高めの企業3社から内定の連絡をいただき、他2社については辞退しました。

ここまで選考を進めた企業はどこも素晴らしい会社でした。 面接官の方も自分の話をしっかり聞いてくれて、話していて楽しいと思えるくらいでした。

よく聞かれる質問

質問に関してはあまり一次面接と大きい変化はありません。 キャリアについて少し深く聞かれるくらいで、対策には特に苦労しませんでした。

  • 転職理由
  • 苦労した点(工夫した点を交える)
  • あなたの強み、弱み
  • 職歴に関すること
  • キャリアパスについて

やって良かったこと

ポートフォリオ作成

Next.jsで作成したポートフォリオを持っており、それも提出しました。

これが結構好評で、面接時にポートフォリオ見ましたと言って頂ける企業もありました。

他に開発したアプリケーションも載せていたので向上心があるということを強くアピール出来たと思います。

Lapras登録

自身の技術力などを数値化してくれるサービスです。

客観的に自分の力を見たくて登録してみました。採用活動している企業も利用しており、スカウトが届くこともあります。 自分もスカウトメールをいくつか頂きました。

技術力の平均や順位も出るので、自分がどれくらい出来るのかある程度把握することが出来ました。

ポートフォリオをデプロイしました!

作ったもの

Hirorin's portfolio

使用技術

  • Next.js
    • 今回のメイン。これを使ってみたかったので年末年始に勉強していました。
  • Bulma
  • FontAwesome
    • Bulma提供のアイコンだけだと物足りないので使用。
  • heroku
    • デプロイしているサーバ。無料で使用できなくなっているのをあとから気づきました・・・
    • AWSの方が良さそうならそっちにするかも。

ページ構成

今後増えたり、編集したりする予定です。

  • Home
    • メインページ。自身の簡単な自己紹介を記載
  • Skills
    • 自分の持つスキルをまとめたページ。Tableを使ってまとめてみました。
  • Certifications
    • 取得した資格をまとめたページ。資格試験にも力を入れていたのでアピールしたいと思いました。
    • Credyのページにも遷移できるようにしています。
  • Links
    • 情報発信先として利用しているページをまとめています。

今後は自分が作ったものとかを載せたいと考えています。 デザインももう少し凝りたいですね。

Laratablesを使ったユニットテストがPHP8.2にしたら失敗するのを解決した話

経緯

業務で使っているLaravelが6で古いため9まで上げることになり、それの担当を任された。

Laravel9に上げるにあたって、PHPのバージョンも次の通り更新する必要があります。

更新前 更新後
PHP 7.3 8.2
Laravel 6.x 9.x

Laratablesについて

Laravelから取得したデータをDataTableで簡単に表示させるためのパッケージ。 実はこのDataTableというのが重要です。

Laratablesはgithubリポジトリが公開されていますが、今では開発されてなさそう?

起こったこと

Laravelは公式のアップデートガイドに沿って7, 8, 9と順々に更新していきます。 更新してはテストを繰り返し上げていったのですが、9に上げたときに今まで動いていたテストが動かなくなりました。

Laravel9からは、更新前のPHP7.3に対応していないので、 Laravel9に上げるタイミングに合わせてPHPも8.2に更新しました。

更新後にテストを実行すると以下のようなエラー文が出力されました。

ErrorException: Trying to access array offset on value of type null

nullに対してアクセスをしてしまっているようです。発生しているのはvendor配下のLaratablesのパッケージ。

対応

問題のコード

渡すパラメータを配列でまとめ、テストしたいルーティングを呼び出します。

// getリクエストのパラメータリスト
$params = [
  'param1' => 'パラメータ1',
  'param2' => 'パラメータ2'
];

// テストする処理を呼び出すルーティング(Laratablesでデータを返す)
$response = $this->get(
  route('sample.route.name'),
  $params
);

修正したコード

リクエストパラメータに、Laratablesの処理が使用するパラメータを追加する($laratables_params) その後、検証したいIDと連結して一つのパラメータリストとしている。

$laratables_paramsで定義されているパラメータは、DataTableで使用されるもので、 Laratablesのドキュメントにあるクライアント側の処理で送られる時に付与されます。

テストの時はこのパラメータが送られていなかったので、Laratablesの処理が参照できず、エラーになっていました。

// Laratablesで使用されるパラメータ
$laratables_params = [
  'draw' => '1',
  'columns' => [
    [
      'data' => '0',
      'name' => 'hoge',
      'searchable' => 'true',
      'orderable' => 'true',
      'search' => [
        'value' => '',
        'regex' => 'false'
      ]
    ]
  ],
  'order' => [
    [
      'column' => '0',
      'dir' => 'asc'
    ]
  ],
  'start' => '0',
  'length' => '10',
  'search' => [
    'value' => '',
    'regex' => 'false'
  ]
];

// 検証したいID
$test_params = [
  'param1' => 'パラメータ1',
  'param2' => 'パラメータ2'
];

// 一つにまとめる
$request_params = [
  ...$laratable_params,
  ...$test_params
];

$response = $this->get(
  route('sample.route.name'),
  $request_params
);

まとめ

テストの時にも、DataTableで使用されるパラメータを付与することで対応できます。 項目数が結構多いので、定数クラスとして定義しておいて必要な時に参照するのが良さそうです。

AWS Lambda + LINEbotで毎朝通知してくれるシステムを作ってみた

AWSを使ってなにかしてみたかったので、LINEbotを作ることにしました。

使用技術

  • AWS Lambda
  • AWS Eventbridge
  • LINE Messaging API
  • Node

仕様

毎朝7時にbotから通知が送られてくる。発言内容はひとまず以下の通り。

  • 本日の日付
  • 今日出せるごみ

構成図

以上のことを踏まえて構成図にまとめると次の画像のようになります。

出来たもの

画像のように今日の日付と出せるごみを教えてくれます。

ゴミ出しは、第2水曜だけのような出し方をしている地域もあるのでそれも判定するようにしています。

通知の時間が 午後5:26 になっていますがこれはLambdaからテスト実行している時間です。

EventBridgeで設定すれば毎朝7時に通知してくれます。

アイコンや発言内容をいじって、お気に入りのキャラクターが教えてくれるようにするのも良さそうですね。

ポートフォリオの作成を始めてみた


React.jsを勉強して見てみたいと思い、どうせならNext.jsを使って自分のポートフォリオを作ってみることにしました。 jsのフレームワークはvueしか触っていなかったので新鮮で、楽しいです。

開発環境

windows 11 home。WSL2でubuntuを使って作成中

使用技術

  • Next.js
  • Bulma
    • CSSフレームワークです。Bootstrapばかりだったのでこちらも勉強を兼ねて使ってみようかと思いました。
  • FontAwesome
    • Bulma提供のアイコンだけだと物足りないのでこちらも使用。

現時点の見た目

まだ載せる情報は検討中ですが、それっぽい形にはなってきています。 なんだかワクワクしますね。これからの開発のモチベを上っていきそうです。