もじゃ(@s10akir)です。2021年4月から入社した新卒エンジニアです。
paizaのエンジニアになってそろそろ1年がたとうとしているので、今回はこの1年間を振り返ってみたいと思います。
エンジニアを目指している就活生の方や、他社のエンジニアは何をしているのか気になっている新卒エンジニアの方の参考になればと思います。
paizaに入社した簡単な経緯
以前も書きましたが、私は学生時代から2年半くらいpaizaラーニングでコンテンツ制作のアルバイトをしていました。
就活を始めたときも「このままここで働きたいな〜」という気持ちが強く、当時paizaは新卒採用をしていなかったのですが、掛け合って面接をしてもらい、無事にエンジニアとして採用されて今に至ります。
就活の様子に興味のある方は、詳しくは前回の記事をご覧ください。
動画でプログラミングが学べるpaizaラーニングはこちら
新卒エンジニアが一年でやったこと
というわけで、入社してからの私はだいたいこんなお仕事をしていましたというのをいくつか紹介します。
当然、これからpaizaに応募される方や新卒でエンジニアを目指している方がまったく同じ仕事をすることはないと思いますが、「paizaでエンジニアになった人はこんなことしてるんだなあ〜」というイメージの参考になれば幸いです。
入社して最初の半年の様子
入社してから数カ月は、paizaに求人掲載をしている企業の方が使う機能の改修・機能追加を担当しました。例えば、ユーザーへのスカウトを送信する画面のUI改修や機能追加などの開発を行っていました。
その後の数ヶ月は、主に「メール基盤」という仕組みを作り、運用していくための業務にあたっていました。
具体的に言うと、「Railsアプリ上でActionMailer + SMTPで実装されているメール実装をSendgrid WebAPIを用いた配信方式へ移行していく作業」です。Sendgrid WebAPI + Dynamic Templateでのメール実装は、始めたばかりで社内でも知見がなく、実装と運用を進めながら自分で切り開いていった感じです。Sendgridの仕様やDynamic Templateでの要件の達成にかなり苦しみましたが、おかげで現在は社内でも広く展開されています。
直近の半年の様子
現在、paizaには4つのエンジニアチームがあり、それぞれが異なる課題解決を目指して稼働しています。
私が所属する「ジュウシマツチーム」(各チームにはかわいい鳥さんの名前がついています)は、主にインフラ・SREの領域で、システムの安定化・インフラの最適化・プロダクトに依存しない横断的なサービス改善などを担当しています。
チームに所属するときには、「新卒のうちにフルスタックエンジニアを目指していろいろな分野を経験してほしい。これから一年くらいインフラを担当してもらいたいけどどう?」という話がありました。私ももともとインフラ関係にかなり興味があったのと、実務においてAWSの運用知識が全然足りてないなと思っていたので快諾しました。
インフラチーム所属になったと言うと、「アプリケーションエンジニアではなくなった」ように聞こえるかもしれませんが、そんなことは全然ありません。インフラを主戦場としつつ、paizaそのものに改修を入れる業務も多いため、割とアプリ側の仕事もしています。
具体的には、レガシーなサーバやアプリケーションを廃止して、AWSのManagedなサービスに置き換えたり、メモリやCPUのリソース消費の激しいタスクを調査して改善したり、社内向けパッケージの配信最適化を行ったり、特定機能についての実装ポリシーを定めてフレームワークを作ったり……などをしてきました。
レガシーサービスの置き換え
この一年で一番達成感があったのはこれだな〜と思っています。
「使われているんだかいないんだかよくわからないサーバを調査して廃止する」といったこともやっていたのですが、特に「EC2上にデプロイされているレガシーな構成をモダンな形に置き換える」タスクが一番楽しかったです!
paizaではいろいろなところで「EC2のインスタンス上に実行環境を用意して、productionアプリケーションを提供する」という、よくある方式でサービスを提供しています。
構成管理自体はされていますが、サーバそのものの保守が必要だし、現行のままではリソース調整が難しく、過剰なコストがかかりがちです。これをAWSマネージドな ECS + FARGATE という比較的モダンな構成に置き換えていくことで、保守性と可用性を高めようという取り組みを担当しました。
前述の通り、私はそれまでAWSのまともな運用経験がなかったので「そんないくつもアルファベットを並べられても何が何だかですわ」というところからのスタートでした。ECS化自体、社内でも前例や知見がない取り組みで「そもそもどうやって実現しようかね」と検討するところから、「どうやって管理していくといいんだろうかね」というところまで、本当に手探りでやっていました。
割と新しめな技術だったり、AWSの提供するツールがまだまだ発展途上だったりというのもあって、いろいろ試しては「これはやっていけないな...」と感じて手戻りすることも多かったですが、無事達成することができました。この仕事のおかげで、リリースされて日が浅いツールや、コアな部分の癖などを体験できて、かなり知見を得られました。
paizaを構成するサービスの中ではかなり重要な部分に対する置き換えで、クリティカルに影響してくる部分でもあるので、正直「これは本当に新卒にやらせていい仕事なのか?」と思いながらやっていたときもあったりなかったりしました。が、新卒のうちからこういう責任の大きい仕事を任せてもらえるのは、純粋にありがたいなあとすごく思います。
あと、個人で同じようなことをやろうとすると、勉強目的でも結構お金がかかるので…こんなふうに会社の金…もといコストをかけて遊べて勉強できるのってありがたいなあと思いました(遊んでいるとは言ってない)
一年たって振り返る自分の経験値
前述の通り、「これ本当に新卒にやらせていいのか?」ということを結構させてもらってるなあ〜と感じることはよくあります。
…と言うと、新人にも大変なことを丸投げする会社!と思われそうですが、全然そんなことはありません。丸投げで「あとはやっといてね」というわけではなく、ちゃんと経験豊富な先輩エンジニアがしっかりサポートしてくれます。ただ、「手伝うから教えるから、一緒にがんばろうね」というよりも「困ったら話を聞くから、まずはやってみてね」というスタイルが近い感じです。「自分でこれだけのことを成し遂げたぞ」という達成感がものすごくあります。
と言いつつ振り返ってみると、私が気づかない形でこっそり助力してもらっていることもかなり多いだろうなあ…。
クリティカルそうなタスクについても「最悪やらかしても、サポートしてもらえるからなんとかできるだろう」という安心感の裏付けがあるので、大きい仕事を任せてもらったときも「ミスしたらどうしよう、できなかったらどうしよう」といった恐怖感はほとんどありません。
言い方が正しいかはわかりませんが、「新卒のうちから重要な仕事をさせてもらえて、もし何かあったときの責任はとってもらえる」という、ものすごく都合のよい環境だと思っています。新人エンジニアが新しいことに挑戦したり、経験値を増やしたりするには最適です。圧倒的感謝。
paizaのエンジニア組織について
paizaのシステム開発部はこんな感じで楽しくコミュニケーションをとっていますというエピソードをいくつか紹介します。
最近はリモートワークの影響で「新卒で入社したけど、出社して先輩たちと接する機会がない」「コミュニケーションのとりかたが難しい」といった話もよく聞きます。私も入社から今までほとんどリモートですが、幸いチーム内で以下のようなコミュニケーション文化があるおかげかそれほどつらみを感じることもなく働いています。
timeline文化
paizaのエンジニアは全員「times」という自分用のSlackチャンネルを持っています。
大体みんな「今こんなことをしている」「これがうまくいかなくて困っている」「ここはこうしたらいい感じだった」「こんな記事を見つけた」といった独り言をカジュアルに投稿しています。ちなみに私はtimesをTwitterと勘違いしているので、日々「完全におなかスコティッシュフォールドになってる」などの投稿をしています。
寝坊をすると怒られますが、「おなかスコティッシュフォールドになってる」と言ってても怒られないので、使い方としては間違っていないのだと思います。
timesに投稿された内容は「timeline」というチャンネルに自動で転記され、まとめて全timesを一覧できるようになっています。
これによって投稿を見た人が投稿者のtimesにやってきて、リアクションをしたり「そこはこうやるとうまくいきますよ」などの手助けをしてくれるなどといったコミュニケーションが成立しています。「これわかんないな、誰か知らないかなぁ」ということを雑にブロードキャストで発信してコメントをもらったり、その場ですぐに「ちょっと話せます?」とhuddleミーティングで教えてもらえたりと、timelineがあるおかげで早めに問題解決できることが多々あるので、大変助かっています。
これはリモートワークで不足すると言われている、「ちょっと隣の席の人に話しかける」みたいなコミュニケーションに相当すると思っています。さらにチャットベースの非同期コミュニケーションの利点も重なるので、私はかなり気に入っています。
デモ & LT会
エンジニアチームでは、月一回定例ミーティングが開催されています。
最近リリースした新機能の共有をするデモ会パートと、好きなことをなんでもいいから話すLT会の2パートで構成されています。LT会は個人で開発しているサービスの話をする人もいれば、飲食店で食中毒になった話をする人もいて、トピックは本当になんでもOKです。
リモートだと仕事に直接関係ない趣味の話なども、発生しづらいのではないでしょうか。ここは一緒に仕事をしているメンバーの「この人はこういうことが好きなんだな〜」という人となりを知れる&知ってもらえる機会なので、毎月楽しみにしています!
ちなみに私は以前このLTでアイドルマスター シャイニーカラーズのお話をしました。そのときのみなさんのコメントの様子です。
ちょうど最近入社したばかりの別部署の方が見学に来ていたときだったのですが、普通にドン引きされていました。悲しいね。
振り返ってみて思うこと
正直言って、一年くらいではまだまだ全然「社会人」的な生活に慣れていません。割と体がしんどいことも多いです。学生時代が自堕落すぎて生活能力が足りません。timelineの投稿画像の通り寝坊もしました。
ただ一つ確実に言えるのは、エンジニアとして就職して、「とても楽しい」ということです。これまで使ったことのない技術や考え方が求められ、常に新しい物事に触れられるのが、私はとにかく楽しいです。
「常に新しい物事に」というのはエンジニアリングの本質だと思っています。社会には、技術以外にもまだまだ知らないことが多いので、今のところ全く退屈していません。もちろん、すでに知っていると思っていたことに新たな側面を見つけるようなことも多々あります。
今後もこの仕事を楽しんでいけるのか、退屈してしまうのかは自分次第なので、何年たってもこの新人のときの気持ちを忘れずにやっていきたいなあと思います。
最後に、就活生&新社会人のみんな、目覚まし時計は冗長化しよう!会社は寝坊すると怒られるところだぞ!(一番の学び)
あとアイドルマスター シャイニーカラーズをプレイしてください。
動画でプログラミングが学べるpaizaラーニングはこちら
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら