新卒2年目でブックウォーカーに転職して1年経ったので振り返る

みなさまこんにちは。
メディアサービス開発部 Webアプリケーション開発課でフロントエンドエンジニアとして働いているhayakawaです。
2023年9月に中途採用で入社しました。
今回は、入社からの1年間を少し振り返ってみようと思います。
ブックウォーカーで働くことや、中途採用でフロントエンドエンジニアとして働くことについて、何かみなさまの参考になりましたら幸いです。

入社前(自分がどういう人間か)

まず、わたしがブックウォーカーに来る前の状態について軽くご紹介します。

私は大学学部を2022年の3月に卒業し、前職にWeb系のエンジニアとして新卒入社しました。そのため記事執筆時点(2024年8月)では新卒3年目です。社会人エンジニア歴としては約2年と少しになります。
前職は人数規模としてはかなり大きく、複数の自社サービスを提供する会社でした。
2023年の7月末に退職し、ブックウォーカーは社会人としては2社目に当たります。

そこより以前、大学は情報系の学科に所属していました。当時はフロントエンドエンジニアとしての実務と言えるほどの経験はありませんでしたが、Webサイトを受託制作する会社でアルバイトとして働き、HTML・CSSをまあまあ書いていたり、所属していた研究室のWebサイトをGatsbyで作らせてもらったり、個人開発をしたりしていました。個人開発は大学時代だけではなく社会人になってからも継続しています!

入社してから1年間

主に『次にくるマンガ大賞』のWebサイトのリニューアルに関わっていました。体感ですが、業務(コードを書くなど、エンジニアの仕事らしいことをしている時間)の95%ぐらいは次にくるマンガ大賞関連だったと思います(もっとかも)。
そしてその内、これも体感ですが、90%ほどはフロントエンドの開発を行っていました。

次にくるマンガ大賞のフロントエンドは、Next.js + TypeScriptで書いています。
次にくるマンガ大賞で使用している技術等に関しては、詳しい内容は別途記事が執筆される予定のため、よろしければそちらも合わせてご覧ください。

基本的にはコンポーネントの実装を行う時間が多かったと思います。次にくるマンガ大賞のプロジェクトでは1週間単位のスプリントで開発を行っており、毎週のスプリントMTGのタイミングで次週に開発する範囲を決め、JIRAにコンポーネントごとのタスクを切って開発を進めていました。

実装については、入社からしばらくはペアプロの比重が大きめで、最近はある程度自分で実装をやってみて、不明点の解消やコードレビューなどをペアプロで行うようになってきています。
と言ってもペアプロの時間自体の長さは入社時から変わらず基本的に1日1時間なのですが、初めのうちはペアプロでやった実装の復習になるような、すでにやった内容に類似した実装を自力で行うことが多かった状態から、徐々に方針やデザインだけを示してもらって細かい部分は自分で考えたり、ロジックを自分で調べて実装したりという状態に移行しています。

オンライン通話アプリoviceのスクリーンショット。

oviceでのペアプログラミングの様子

次にくるマンガ大賞関連の残りの時間は、投票データの管理や、デプロイ、自動テストなどを行っていました。
次にくるマンガ大賞Webサイトのリニューアルについては、フロントエンド3人の小規模なチームでバックエンド・データベース等も含めた開発を行いました。そのため、純粋にフロントエンドらしくTypeScriptを書くだけではなく、次にくるマンガ大賞というイベントをユーザーに届けるための幅広い分野に関わらせていただくことができました。

次にくるマンガ大賞以外では、ニコニコ漫画のスマートフォンブラウザ版の開発にも、ほんの一部ですが関わらせていただきました。
こちらは次にくるマンガ大賞のタスクが一時的に無い時期に参加しました。ページ内の一部のコンポーネントを実装するような形でしたが、次にくるマンガ大賞とかなり近い技術構成だったため変わらない感覚で実装に取り組めました。

1年間で得たもの

技術

次にくるマンガ大賞の開発に使用したNext.js、TypeScriptはある程度書けるようになりました。

Next.jsに関しては、次にくるマンガ大賞ではほとんどの部分がデプロイ時に静的に生成されているため、SSR関連などまだ分かっていない部分も多いですが、フォームを含むような静的なサイトやちょっとしたAPIの作成などに関してはさまざまな実践的知識を得ることができました。

TypeScriptは入社時と比べたらかなり書けるようになったと思います。
前職では一応React + TypeScriptで開発をしていたものの、元々別の技術スタックで開発されていたものをリニューアルするプロジェクトで、チーム内の先輩エンジニアたちも新たにTypeScriptを習得するという状態だったため、any型がたびたび登場するなど、これはTypeScriptを書いていた・書けます、と言って良いものか……?という感覚でした。

次にくるマンガ大賞ではany型を用いないのは当然として、zodやaspidaなどのライブラリを用いて、フォームやAPI関連についても型を利用した開発を行っています。これらに関してはなかなか個人開発ですぐに辿り着くことはできなかっただろうなと思うので、やはり会社員としてプログラムを書くことで学べる部分は自分にとって大きいなと思います。

今でももちろんTypeScriptの全てが分かったとは思いませんが、書けないか書けるで言ったら、少なくとも1年前よりは圧倒的に「書ける」側にいるかな、と思えます。
個人開発をする時でも確実にTypeScriptを選ぶようになったのは進歩だなと思います。

また、CSSを書くのが元々かなり好きだったこともあり、個人的に「CSS・UI周りのフレームワークは邪道!サイトに合わせてベストなCSSを1から書くことこそ至高」みたいな思想があったのですが、Tailwind CSSを次にくるマンガ大賞のコードで使ってみたら思いのほか使用感が良かったのでこちらもかなり使うようになりました。1から書くときのメリットとなる細やかさを人間が認識できる程度には保ちつつ、デザインシステムなどに対応できる効率の良さがあると思っています。

学び

何ができるようになった、以外の部分ですと、どういう風に技術を継続的に学んでいくのかというのが少し分かるようになりました。
ブックウォーカーのフロントエンドエンジニアは隔週で1時間の「JSer.infoを読む会」という勉強会を行なっています。
わたし個人ではこれまで、既に多くの人が使っていたり、書籍が出ていたりするような技術を学ぶことが多かったのですが、最新の技術や情報をキャッチアップする手段としてはこういったものがあるのだと知ることができてとても良かったです。

また、そうして知った新しい技術(例えばCSSプロパティなど)について、ブックウォーカーではサポートするブラウザのバージョンを明確に決めて、使って良い技術・今はまだ使えない技術の線引きをしっかり行っています。
これについて、私は普段の個人開発では正直ほとんど意識していなかったものの、実際に多くのユーザーにとって正しく・快適にサービスを利用していただくためにはとても大切なことだと感じました。

あとは、働き方にかなり裁量があるというか、健康や生活があってその上に質の良い労働が乗ってくる、みたいな考え方の人が(特にメディアサービス開発部の周りには)とても多いので、昨年までよりもメンタルを含む体調面の管理がうまくできるようになった気がします。
具体的には、休むべき時には休んだほうがいいという考えが自然と頭にあるようになったのと、その「休むべき時」に対する嗅覚がちょっと発達したような感じです。
これに関しては、自分で意識していた面ももちろんあるのですが、課長と毎週30分間の1on1があり、そこで感覚っぽかった部分を言語化、具体的な手法に近い形にすることができていて、より精度が上がっていると感じます。

おわりに

おわりにというタイトルの節ですが、わたしにとってブックウォーカーでの仕事はようやく1年。
タイミング良く次にくるマンガ大賞という歴史あるイベントのリニューアルに携わることができて、たった1年とはいえ達成感も学んだことも多くありますが、これからもここでまだまだ頑張っていきたい、成長していきたいなと日々思っています。
そんなブックウォーカーの社員目線での気に入っている部分をこの後に書こうかと思っていたのですが、記事があまりにも長くなりそうだったので、そちらは別の記事でいずれ書きたいです!

おまけ

ネイルアートを施された爪の写真。それぞれ親指には次にくるマンガ大賞のロゴを抽象化したものと、ニコニコ静画のキャラクターである丸バナナの立体パーツがついている

無事終わった記念に施した、次にくるマンガ大賞のイメージネイル(セルフ)