初めまして!2023年2月に株式会社クラウドワークスへ中途入社した馬渕です。
2023年5月で入社して約4ヶ月経過しました。
今回は同じ日に入社しました牛嶋さんと、入社後の感想などを(勝手に)対談形式でお話していきます。
- 中途入社
- 地方在住
- 初めてのオフショア開発
こんな方の参考になると思います。
またこの記事では
こんな内容を盛り込みました。
ぜひ最後までお付き合いください!
自己紹介
馬渕 では牛嶋さんから軽く自己紹介をお願いできますか?
牛嶋 牛嶋一登です。現在、社会人3年目で、前職はスマホ広告配信システムのバックエンドをメインに行っていました。
では、馬渕さんお願いします。
馬渕 馬渕勇介です。前職は受託開発企業で主にバックエンド開発とインフラ周りを行っていました。
今担当していること
馬渕 現在担当している業務の紹介をお願いします。
牛嶋 現在はフロントエンドメインでデザインシステムのコンポーネント実装を行っています。これからは新規画面の作成をマネージャー1人、エンジニア4人、デザイナー1人のスクラムチームでエンジニアを担当します。
馬渕 2023年3月までは外部の勤怠システムとの連携機能のバックエンド開発を行っていました。4月から牛嶋さんと同じプロジェクトで、主にバックエンドを担当する予定です。
入社直後は別のチームだったのであまり関わりが無さそうですね、なんて言っていましたが同じチームになりましたね!よろしくお願いします!
オンボーディング
牛嶋 入社してオンボーディングがあったと思いますが、バックエンドのオンボーディングはどのようなことをされましたか。
馬渕 クラウドログで設定できるカテゴリマスタのエクスポート機能を実装しました。
一口にエクスポート機能といっても、ファイルの種類・エンコードの種類・言語の種類をカバーしないといけなかったので、ユニットテストのパターン網羅がなかなか大変でした。
あとは各種ドキュメントの整備がしっかりしているので、API設計やテスト仕様書、外部公開しているAPIドキュメントの修正などもありました。
牛嶋 フロントエンドのオンボーディングの一環として、既存UIライブラリの移行とテスト拡充に取り組みました。既存UIライブラリの移行では、ローカル環境での挙動や、Storybookを中心に確認を進めていきました。Storybookとは、コンポーネントの状態を一つずつ、視覚的にテストするためのUI開発環境です。
また、テスト拡充では、React-Testing-LibraryとJestを初めて触りながら学びました。React-Testing-Libraryは、Reactコンポーネントの振る舞いをテストするためのライブラリであり、JestはJavaScriptのテストフレームワークです。React-Testing-LibraryとJestを使って、コンポーネントやカスタムフック単位でのテストを拡充しました。
馬渕 フロント側でも結構テストに力入れているんですね!テストを書くこと自体は大変だと思いますが、後の開発に役に立つと言うか、安心して開発できる感じが良いですよね。
牛嶋 オンボーディングを通して、採用されているデザインパターンやディレクトリ構成など、開発における基本的な知識を学びました。
馬渕 私もオンボーディングを通して、設計から実装、ユニットテストにリグレッションテストと一通りの開発の流れを経験できたと思います。
地方在住
馬渕 お互い地方在住ですが、現在の住んでいるところ・働き方・出社の頻度はどんな感じですか?
牛嶋 私は現在熊本県在住です。基本的にはリモートワークです。入社時の説明会で一度東京の本社に行きましたが、その他、全社や事業部の全体会などでは福岡営業所や大阪営業所などに出社しています。
馬渕 私は静岡県在住で、牛嶋さんと同じく基本的にリモートワークです。全社や事業部の全体会があるときは東京へ出社することがあります。今のところ四半期に1回くらいのペースのようなので、ほぼリモートワークといった感じです。
クラウドログチームの全体を考えると関東圏が多いイメージですが、九州・関西・東海と各地にも何名かメンバーが在籍していますよね。
あ、あとフィリピンにも(笑)
クラウドワークス、クラウドログに決めた理由
馬渕 牛嶋さんがクラウドワークスに転職を決めた理由って何ですか?
牛嶋 環境がマッチしていると思ったからです。まず、技術面についてですが、React x TypeScriptのモダン技術に触れたかったという気持ちがありました。
馬渕 前職ではもともとバックエンドの業務をされていて、フロントエンドに転向されたんですね。何かきっかけってあったのですか?
牛嶋 きっかけはUIデザインを勉強したことですね。個人開発をしているとフロントのコーディングもそうですが、デザインもやりますよね。私はデザイン力が壊滅的だったのでUIデザインを勉強してました。
馬渕 おお!個人開発されているんですね!私はMaterial-UIとかでお茶を濁していましたが(笑)
牛嶋 それから、よりインタラクティブなUIを実装を進めようとする中でReactを勉強して、「こっちで進んでみたい!」と思った経緯ですかね。
次に労働環境についてですが、英語を使った環境で働きたい、また地方でのリモートワークが可能、という気持ちがありました。
馬渕 私も英語を話せるようになりたい、という気持ちがずっとあったのですが、入社を機に英語に向き合う覚悟を決めました(笑)
牛嶋 馬渕さんはどうですか?
馬渕 もともとバックオフィス関係の業務を行っていたこともあって、クラウドログというサービスに興味を持ったことがきっかけです。あとは、牛嶋さんと同じで英語を使って仕事をしてみたいと思ったところです。
それぞれの面談や面接でお話させて頂いた方の印象が良くて、一緒に働いてみたい、と思ったことも大きなきっかけでした。
牛嶋 それは私も完全に同意です!
馬渕 面談時なんですが、みなさん全体的にやわらかな雰囲気を持ちながらも、内側では強い思いや情熱がある・・・そんな印象を受けました。まだ数ヶ月程度ですが、現在でもその印象は変わらないですね。
クラウドログの良いところ
馬渕 お互いクラウドログ事業部への配属ですが、クラウドログチームの良いところってどんなところだと思いますか?
牛嶋 まず、エンジニア一人一人が主体性を持って開発を進めているところが良いと思います。
あとはクラウドログは、株式会社クラウドワークスの1サービスですが、事業部が一つのベンチャー企業のようで、社員全員がクラウドログを良くしていこう!という気持ちで業務にあたっているところも良いところですね。
馬渕 確かにチームとしての一体感がありますよね!先日行われた下半期全社キックオフのクラウドログチームの発表、盛り上がりましたね!
私が思う良いところですが、「みんなでなんとかしてやろう!」っていう雰囲気が開発だけでなくチーム全体で感じられるところです。あとみんなクラウドログというサービスが好き、っていう感じが伝わってきます。
技術面で言うと、フロントエンドもバックエンドも習熟しているエンジニアが在籍しているので、日々刺激をもらえるところも良いところです。
勉強熱心な方も多くて、毎週やっているLogStudyというイベントは内容も盛りだくさんでいつもためになってます。
スクラムイベントについて
馬渕 クラウドログではスクラムのイベントが結構ありますが、その点についてはどうですか?
牛嶋 DSUやCheckIn、スプリントレトロスペクティブ、スプリントプランニングなど基本的なイベントがあります。また、PdMチームもスクラム開発の勉強会を行っているので、スクラム開発がやりやすいです。
馬渕さんはスクラムイベントにどんな印象を持ちましたか。
馬渕 前職でスクラム開発の経験がありますが、イベントの数でいうとクラウドログの方が多くて、スクラムのフォーマットに則って開発が進んでいる感じです。
牛嶋 私も前職でスクラム開発を経験しましたが、もっとイベントの回数や種類は少なかったですね。
※スクラムイベントについて補足
- DSU: デイリースクラムのこと。毎朝同じ時間に集まり、進捗の共有や課題に感じていること、気になっていることなどを共有します。
- CheckIn: 軽い雑談会。1回につき数トピックについて話します。
- プランニング: そのスプリントで行う内容を検討します。プロダクトバックログから行う内容を選び、大体の作業量をみんなで見積もります。その後、スプリントバックログに分解し、作業時間の見積もりまで行います。
- レトロスペクティブ: スプリントの最終日に振り返りを行います。間に合いそうにないタスクの確認、KPT法を使って良かったことや問題だったこと、その改善方法について話し合います。
- デモンストレーション: そのときのスプリントで実装された機能をチーム全体に共有します。
フィリピンメンバーとの英語コミュニケーション
馬渕 業務で英語を使い始めましたが、フィリピンメンバーとのコミュニケーションについてはどうですか?
牛嶋 Slackやドキュメント、MTGでフィリピンメンバーが関わるものについてはすべて英語でコミュニケーションを取ることになってますよね。もちろん、毎朝のDSUも英語です。毎日ドキドキしながら話していますね。
馬渕さんは英語に自信ありますか。
馬渕 いやー、正直自信はないですね(笑)入社前の面談で英語を読んだり書いたりはそれほど問題ないと思いますが、スピーキングはちょっと苦手です、、、と伝えたところ「大丈夫ですよ!全員がペラペラしゃべれるというわけではないので!」と聞いて入社したのですが、みなさん割と普通に英語を話しているという、、、(笑)
あとは、Google MeetやSlackのhuddleの字幕機能に助けられています。
牛嶋 Slackのhuddleに字幕機能なんてあるんですね、知りませんでした。私はよくDeepLに助けてもらっています。
馬渕 DeepLはよく使いますよね(笑)
あとは、週に1回「English Assemble」という英語の勉強会があるので参加しています。仕事の中でよく使われる表現や初めて聞いた表現、どんなオンライン英会話がよいかなどを共有し合ってお互い英語力を高め合うことができるのが良いですね。
技術面のキャッチアップ
馬渕 入社後、特に牛嶋さんはバックエンドからフロントエンドへ転向されたこともあるので、キャッチアップとかどうしてました?
牛嶋 入社前にりあクトを個人的に購入し、ReactとTypeScriptの勉強を行いました。ボリュームはかなり多かったですが、読んで勉強になることが盛りだくさんでした。それに加えて、Reactは公式ドキュメントを定期的に見返しています。
馬渕 おー、素晴らしいですね、最近更新されたみたいですし。
牛嶋 そうですね、フロントエンドは変化の流れも早いので追いつくために必死です。他にはReact Hook FormやJestといったライブラリ周りでしょうか。ライブラリに関しては業務の中でキャッチアップした方が効率がいいと思っていたため、入社後に取り組みましたね。
バックエンドのキャッチアップについてはどうですか?
馬渕 Goについては前職でも使っていたので、基本的なところは大丈夫でした。ですが、ライブラリやアーキテクチャは違うので現在勉強中です。ライブラリについては、Gorm、Gin、アーキテクチャについては、DDDやオニオンよりのレイヤードアーキテクチャですね。
Gormについてですが結構SQLを書く感じなので、「達人に学ぶSQL徹底指南書」でSQLの勉強中です。開始して数年経っているサービスなのでテーブル数も多いですし、複雑なクエリを書くケースもあるのでパフォーマンスまで意識できるようになりたいと思っています。
アーキテクチャに関しては、もともとフラットパッケージ構成でしか実装したことがなかったので、レイヤーごとの責務を確認するようにしています。以前、「pospomeのサーバサイドアーキテクチャ」を読んでオニオンアーキテクチャについて頭ではわかっているつもりでしたが、実際に使われている構成と照らし合わせながら落とし込んでいるところです。
あとオンボーディング後に外部サービスのAPIから勤怠データを取得して変換して保存するというプロジェクトに携わっていたのですが、そこで使われているクラウドサービスや実行の仕組みについて理解をするのに少し時間がかかりました。
具体的には、非同期処理で実行するためにAmazon SQSを使ってバッチ実行用のコンテナを起動、その後に外部APIからデータ取得する、みたいな流れでした。クラウドサービスが絡む仕組みですとローカルでの確認が若干大変なので、私が担当させてもらった内容はそれほど大きなものではなかったものの、実装は少し大変でした。
キャッチアップが大変なところもありますが、福利厚生で半年に2万円までの書籍補助制度*があって助かっています。せっかくなので月に1冊くらい購入させていただいて、キャッチアップを深めていこうと考えています。
牛嶋 私もフロントエンドを中心に制度を利用して本を購入してます。なんだかんだプログラミングの本って値段しますから助かりますよね。
※本制度は2023年5月時点で実施されているものです。今後変更になる可能性があります。
まとめ
馬渕 入社4ヶ月を振り返ってみましたが、いかがでした?
牛嶋 日々勉強ですね(笑)勉強すればするほど、わからないことが出てきます。一方で、「困ったことがあったら、どんなことでも相談してきてね」という雰囲気をチームやエンジニアの皆さんから感じられる環境であることに感謝です!
馬渕 リモートワークですけど、各種スクラムのイベントがあるのでまめにコミュニケーションしながら開発できているのはありがたいなあ、、、と改めて思いました。
あとは、相変わらず英語には苦戦中です!(笑)とはいえ、慣れのような気もしますので、気長にじっくり取り組んでいこうかなと思っています。
最後に
いいかがだったでしょうか。
2023年2月に入社した二人でクラウドワークスについて振り返ってみました。
今後もクラウドログが良いサービスになるよう、より一層頑張っていきます!
最後までお付き合いいただきありがとうございました!