こんにちは.
メディアサービス開発部 Webアプリケーション開発課の しののめ(佐々木) です.
今年の4月にブックウォーカーへバックエンドエンジニアとして中途入社し,この10月で半年になりました.
入社の経緯から半年仕事をしてみての状況と働いてみて思ったことを書いていこうと思います.
転職活動を考えている/している方に少しでもブックウォーカーでの仕事や環境についてイメージを持っていただけたら幸いです.
入社の経緯から現在まで
入社の経緯
これまではWebベンチャーやSESでAWSを利用したインフラの設計構築を中心にSREのような仕事をしており,実は2021年に前職へ転職したばかりでした.
前職へ入社してみると入社前に聞いていた業務内容や環境と違うところがあり,また自分の技術力の向上にあまりつながらないような環境かもしれないと感じながらも日々業務をしておりました.
そんなときにとあるIT系コミュニティでの友人であったフサギコ(髙﨑)さんとサバゲー終わりの打ち上げで仕事についての話になった際,一度カジュアル面談だけでもしてみないかとお誘い頂いたのがきっかけです.
その後転職活動を始めた際にせっかくならば話を聞いてみようとフサギコさん,マネージャーの太田さんとのカジュアル面談を設定していただきました.
カジュアル面談の中ではブックウォーカーでの開発体制や働き方,自分の仕事に対する軸とマッチしているかなどをカジュアルながらも根掘り葉掘り質問をし,良い印象を持ったのを覚えています.
他社への転職活動を行いながらブックウォーカーへの正式な応募と選考を進め,ありがたいことに内定をいただくことができました.
最終的に自分の仕事に対する軸と一致しており,技術的にも新しいことを学んでスキルアップが望めそうなところに魅力を感じてブックウォーカーの内定を承諾し,4月1日付での入社となりました.
オンボーディング期間
現在私の所属しているメディアサービス開発部で開発をしているシステムのバックエンドはほとんどがRuby on Railsです.
前職まではSRE的な業務が主だったためPythonでちょっとしたバッチなどを書くことはあったものの,フレームワークを利用してのバックエンド開発はほぼ初めてという状態でした.
そのため入社してからしばらくはオンボーディング期間ということでRuby on RailsチュートリアルでRuby on Railsの基礎を学んで行くことになりました.
基本的にはチュートリアルに沿ってもくもくとこなしていく形でしたが,テストをRSpecで書いてみたりRubocopでLintをかけてみたりとブックウォーカーでの開発スタイルに合わせながら実施.
またRubyでわからないことがあったらプロを目指す人のためのRuby入門を,RailsでわからないことがでたらRailsガイドを参照しながら進めていきました.
Webアプリケーション開発課ではコアタイム中はVCをつないでおり,本やRailsガイドを読んでもイマイチ理解がしにくいところがあったら即質問をしてRailsガイドを参照しながらアドバイスを貰えるという環境があったので悩んで止まってしまう時間が少なかったのはとても良かったと思います.
そして毎日のコアタイム後には今日学んだこと,わからなかったことの確認をして理解を深めていくと同時に,会社に慣れる事はできているか心配事はないかなど状況のヒアリングを兼ねて1on1を実施していました.
合間には機能開発やリリースなど実際のWebアプリケーション開発課での業務を見学しながら2ヶ月ほどでチュートリアルを完遂してオンボーディング期間は一区切りとなりました.
チームへ配属されてのOJT
Railsチュートリアルを完遂することができたのでOJTで実際の業務に慣れていく段階へ.
Webアプリケーション開発課では3つのプロジェクトが動いているのですが,タスク内容などを検討し現在の一迅プラスチームへ一旦配属に.
配属されてからはペアプログラミングをしながら稼働中のシステムとコードについての理解をすすめていきました.
知識が身についてないところや独自実装などがあり苦戦をすることも多かったのですが,わからないところはペアプロ中に質問することで少しずつシステムについての理解を,レビューでRubyやRailsの書き方に関してアドバイスをもらいながらタスクをすすめていきました.
2週間ほどのペアプロで開発しているシステムについて理解を深めるとともにチーム内での開発の流れを学び,配属されてからの4ヶ月で一通りの機能実装と多くのプルリクや本番リリースを経験することができました.
配属当初レビュー担当にアサインされた際は実装内容を追って理解することで精一杯でしたが,現在は少しずつ実装の提案やテストの漏れに気がつくことができるようになってきています.
入社して半年経ってみて
以上のような流れで入社してからオンボーディング,OJTを経てチームの一員として開発に関わることができるようになりました.
このように書くとタスクがたくさん積まれてバリバリこなしていたかのように見えるかもしれませんが,タスクに関しては毎週のスプリント計画会でバッファを盛り込んだ計画を組んでいるので負荷が大きいということはあまりありませんでした.
タスク自体も基本的にはコアタイム中に終えるようにしており,コアタイム外ではわからなかったところの復習や新しい技術についての調査など自己研鑽に当てることができております.
たまにキリが悪くて30分ほど残業してしまうこともありましたが,Webアプリケーション開発課では8時間で帰るよう動いていますので自分を含むほぼ全員の方が8時間ですぐ切り上げていました.
今後リリースなどで忙しくなる可能性はあるもののマネージャー陣が残業が常態化しないようタスクの調整を行ってくれるので長時間の残業が続くということはないと信じております.
限られた時間内で成果を出して自己のスキル向上につながることをしていく.
それがブックウォーカーのエンジニアの働き方なのだなと半年間で実感することができました.
技術や環境について思ったこと
ここからは半年間Webアプリケーション開発課の利用している技術や仕事環境について個人的に感じたことを少しご紹介します.
シゲタさんの記事やニコニコ漫画でのインフラ構成について,読書メーターのインフラ構成についても合わせて見ていただきますとWebアプリケーション開発課での技術についての理解が深まるかと思います.
Ruby / Ruby on Rails
上でも書きましたとおりWebアプリケーション開発課で開発しているシステムの大半はRuby on Railsにて実装されています.
一部独自実装もありますが基本的にはRailsのセオリーに沿っての実装を行い,RSpecを利用してのTDDやRubocopを使ってのコーディングスタイル統一など読みやすく保守しやすいコードを書くようにしています.
また,ruby-jpで情報収集や先日開催されたRuby Kaigiへ参加するエンジニアがいたりと積極的に新しい情報のキャッチアップと導入をしていくような雰囲気もあります.
CI/CD
入社して個人的に一番感動したのがCI/CD環境がしっかり整備されているところです.
コード管理はGitHubでブランチ戦略はGitHub Flowを採用しています.
新たな機能実装をfeatureブランチで行いプルリクを作成,masterにマージされるためにはレビューで2人以上のApproveが必須.
レビューが通ってfeatureブランチをmasterブランチへマージしたら自動的にCircleCIが走り始めます.
CircleCI上でビルド,テストと自動で実行され,問題がなければDev環境まで自動的にデプロイ,リリースされます.
Dev環境へリリースされた後は動作確認をして問題がなければ本番環境へもデプロイ,リリースとなりますが,それもCircleCIのコンソール上でクリックするだけ.
エクセルにコマンドを書いた手順書を作成してデプロイ時にコマンドをコンソールへコピペして実行,そのログをコピーしてエクセルへ貼り付けてエビデンスとして残すという作業がないことに非常に感動しました.
スプリントにもよりますが毎週5回は本番へデプロイされ,常に最新の機能が本番に入っているような状態になっています.
詳しいデプロイの流れについてはぜひ読書メーターのデプロイの流れについてをご一読ください.
楽をするために苦労をする
上記にもつながることなのですが,楽をするために苦労をするという意識があると思いました.
CI/CD環境を作るためには問題なくデプロイされるようなconfigファイルを書いていかねばなりません.
ビルドが通らなかったとき,テストが失敗したときやインフラ側の問題でタイムアウトしてしまったときにデプロイ先の環境へ問題が出ないようになっているかなど考慮しなければならないことがたくさんあり,作成したあともライブラリの更新や機能更新に追従していく必要があります.
ですがリリースという定常的に発生する面倒くさいタスクを毎回こなすよりは苦労してもCI/CD環境を整備することで今後楽をすることができ,開発に集中できるようになります.
そのような意識がCI/CD環境だけでなく,開発しているシステムやチーム内随所に感じられました.
技術への好奇心
RubyKaigiへの参加やスクラムフェスへの登壇,コアタイム外に読書会を開催していたりと部署内で新しい技術について積極的に吸収実践していく姿勢があります.
現状に満足せず技術を磨いていき,新しい技術を追いかけていくことで自分の武器となり開発しているシステムへ反映され,最終的にはエンドユーザーへと還元されていきます.
エンジニアとしては当たり前の事かもしれませんが,その姿勢がチーム内にあるというのは非常に自分のモチベーションにもなりました.
まとめ
ブックウォーカーへ入社してから半年仕事をしてみての状況と働いてきて思ったことをご紹介しました.
この記事でブックウォーカーでの働き方や雰囲気について少しでもわかっていただけたら幸いです.
カジュアル面談してみませんか?
ブックウォーカーでは現在 [急募]フロントエンドエンジニア,バックエンドエンジニア,iOS/Androidエンジニアを大募集中です.
もしブックウォーカーでの仕事に少しでも興味を持っていただけましたらまずカジュアル面談をしてみませんか?
カジュアル面談で業務内容や技術の説明,自分の仕事の軸に関するすり合わせをして合わないと思ったら選考へ進まなくても大丈夫です.
まずは一度カジュアルにお話してみましょう.
こちらに記載のメールアドレスへカジュアル面談希望の旨と興味のある部署かポジションを記載してお送りください.
ご応募お待ちしております!