特定の機能や事象にフォーカスしたブログを書いていたら面接で役に立った話

数年前から技術ブログを書いているのですが、転職活動していた時に技術ブログが役に立ったので紹介したいと思います。

# 技術ブログの状況
この記事の執筆時点でQiitaには89記事ありました。
他にも[Zenn](https://zenn.dev/hamchance)や[Note](https://note.com/hamchance)などにも記事を書いています。

技術ブログはポエム的なものやネタ的なものを書くこともありますが、特定の機能や事象にフォーカスして気づいたことや調査したことを記事にすることが多いです。

例えば下記のような記事です。

* Active Storageの複数ファイルを1つのzipファイルに圧縮する効率の良い方法

https://qiita.com/ham0215/items/cb7386352c4cb0d1120e

* [Rails]has_oneの関連データをdestroyで消してもキャッシュはクリアされない

https://zenn.dev/hamchance/articles/f83114a0e3ee50

* [Rails]upsert_allで更新対象のカラムを指定したい

https://qiita.com/ham0215/items/b98a4b65b9f7f744b81d

* Rails6.1で追加されたdelegated typeとGraphQLのUnion typesは相性よさそうなので試したみた

https://qiita.com/ham0215/items/735eae427082db9d18eb

* graphql-rubyのN+1を遅延ロードで解決する

https://www.wantedly.com/companies/visitsworks/post_articles/327794

* MySQLの正規表現検索とReDoS対策

https://qiita.com/ham0215/items/b0631792df679921d04e

* MySQLの行ロックを図解

https://qiita.com/ham0215/items/57f84a9bf28cd2635dac

仕事で使うために調査した内容(Active Storageの圧縮やgraphql-rubyの遅延ロード、ReDoS対策)、たまたま触っていたら気づいたもの(has_oneをdestroyしたときのキャッシュ, upsert_all)、興味があったので調べたもの(delegated type, 行ロック)など調べるきっかけは様々ですが、特定の機能や事象にフォーカスした記事を多く書いています。

# 面接でどのように役立ったのか？

エンジニアの面接でよくある質問として「最近気になっている技術はありますか？」や「開発中に困ったことはありますか？」など開発エピソードを聞かれることがあります。
このような具体的なエピソードを質問された時に記事に書いたことを話します。

記事にした内容を話すことで下記のメリットがあります。

## ブログに書くことで理解が深まる

触った技術や調査したことを文章としてアウトプットすることで、細かいところで理解できていないところが見つかったり、知識が体系化されて理解が深まります。
自分で体験して理解が深まった知識となっているので、説得力のある話をすることができます。

また、最近はリモートで面接することも多くなったので、細かな点はブログを参照しながら喋ることもできます。


## 面接官が面接中にブログを見つける

リモート面接の場合に自分の記事を参照できると書きましたが、逆のパターンもあり得ます。

面接官がこちらの話すエピソードに登場する技術を詳しくない時もあります。そのときにキーワードで検索して参考となる記事を探すことがあります。
その時に自分の書いた記事が上位に出てきて見つけてもらえることがあります。
開発のエピソードトークをしつつ、それについて書いたブログまででききたら説得力が跳ね上がります！

実は私が最初に紹介した記事も関連するキーワードでGoogle検索すると上位に出てくる記事です。

* Active Storageの複数ファイルを1つのzipファイルに圧縮する効率の良い方法

![スクリーンショット 2022-11-23 0.03.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83424/ba1bf7db-b502-cc46-9588-e96a442cee8f.png)

* [Rails]has_oneの関連データをdestroyで消してもキャッシュはクリアされない

![スクリーンショット 2022-11-23 0.08.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83424/8e8d7ea2-ae80-066a-c248-a1369a983f53.png)

* [Rails]upsert_allで更新対象のカラムを指定したい

![スクリーンショット 2022-11-23 0.06.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83424/58263f75-15e3-262d-3871-1886dc859dab.png)


* Rails6.1で追加されたdelegated typeとGraphQLのUnion typesは相性よさそうなので試したみた

![スクリーンショット 2022-11-23 0.04.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83424/580ad8af-cf70-e2e0-183d-53936240d929.png)

* graphql-rubyのN+1を遅延ロードで解決する

![スクリーンショット 2022-11-23 0.08.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83424/9dcfbafc-ae74-3763-3d83-f945bafcd2bf.png)

* MySQLの正規表現検索とReDoS対策

![スクリーンショット 2022-11-23 0.07.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83424/e57dea21-0b10-f841-a5cb-cf4d454e5bfc.png)

* MySQLの行ロックを図解

![スクリーンショット 2022-11-23 0.07.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83424/66652677-2e4f-acf4-e872-daafca234cfc.png)

最近では個人でサイトを簡単に立ち上げられるので、個人サイトにブログを書いている方もいると思いますが、Qiitaなどの有名なブログサイトはSEOが強いというメリットがあります。
特定の機能や事象にフォーカスしたブログを書く場合、特定機能や事象のキーワードをタイトルや本文に含めると思いますが、それがちょうどよい検索キーワードになってくれます。

面接官が検索するかどうかはわからないので、常に使えるものではありませんが、面接中に自分の記事を見つけてもらったことが何度かあったので共有でした！