2020/04/30
アトラスの若手エンジニアの一日
目次
はじめまして、アトラスへ新卒として入社し2020年4月で3年目になりました徳永と申します。
コロナウイルスの影響で現在も在宅勤務が続いていますが、アトラスにも新卒社員が入社し新たな年度を迎えたのだなと実感しています。
私が入社して早2年が過ぎました。今回は新人エンジニアがどのような仕事をするのか紹介したいと思います。私は学生の頃は授業などでコードを書くことはありましたが、エンジニアが実際にどのような仕事をしているのか具体的にイメージできませんでした。同じような疑問を持っている方が、この記事を読んで実際の仕事の風景をイメージできるようになれば嬉しいです。
過去にも同じテーマの記事があったのですが、2014年12月に書かれた記事でした。今回はその最新版をお伝えします。
1.始業準備
始業準備から1日が始まります。具体的には社内の清掃、給茶機・ポットへの給水、コーヒーやお茶などの補充です。アトラスでは社員用のフリードリンクとしてコーヒー、お茶、ココアなど多くの種類の飲み物があるので、それらの在庫を切らさないよう準備します。
どのような仕事でも小さな変化に気づくことは大事だと思います。清掃などの始業準備は気づく力を自然と養ってくれている気がします。
2.サーバ監視
続いてはサーバ監視です。調査は主にNew Relicという監視のSaaSサービスを使います。前日の終業後から始業までの間に異常な挙動などがなかったかを確認します。異常があればSlackへアラートが通知されるので、就業中は常に気にかけておき、すぐに調査・対応をします。
入社してサーバ監視に携わるようになって驚いたのが、予想以上に不正アクセスが多いことです。学生の頃、不正アクセスやサイバー攻撃といった単語はニュースでたまに聞く程度だったので、自分とはあまり関係のない話だと思っていました。しかし、SQLインジェクションやクロスサイトスクリプティングが疑われるアクセスは、ほぼ毎日世界中から来ます。今ではすっかり慣れてしまいましたが、サーバ監視に携わったばかりの頃はそれが非常に驚きでした。最近は不正アクセス元のIPアドレスの国コードがレアなものだとつい調べてしまいます。国コードを見て国名を当てることができた時はうれしいです。
3.開発
開発はメインの仕事です。入社して間もない頃は、新たに開発した機能を確認するためのテストをしながらシステムの仕様を覚えていきました。次に小さなバグ改修をし、少しずつ大きな機能の開発を任せられるようになります。今まではサーバサイドの開発をしていたのですが、今年度はフロントエンドの開発もできるようになるよう勉強しています。
開発を進めるうえで、アトラスではメンバ同士でコードレビューする決まりになっています。書いたコードをチェックしてもらい、問題がないことを確認してからでないと新機能として反映されません。
私は入社するまで基本的に一人でコードを書いていたので、チームでの開発をイメージできませんでした。コードレビューではいろいろなことを指摘してもらえます。たとえば、不要な変数を作っている、ネストが深い、三項演算子を使えばもっと短く書ける、関数から早く返すなどです。以下はリーダブルコード(オライリージャパン)から引用した、関数を早く返す例です。return文を複数用意し、また先頭に書くことで、わかりやすくかつ処理が早くなります。
1 2 3 4 5 |
public boolean Contains(String str, String substr) { if (str == null || substr == null) return false; if (substr.equals("")) return false; ... } |
コードレビューがどういうものなのか、さらに具体的に知るにはアトラス システム開発グループの必読書でもあるリーダブルコードがおすすめです。どのようなコードが良く、そして悪いのかを豊富な具体例付きで書かれています。私自身どうすれば指摘を少なくできるのか、わかりやすいコードを書けるのか日々考えています。このブログ記事を書いて、久しぶりに読み返そうと思いました。
4.リリース作業
リリース作業は新人エンジニアが担当しています。機能拡張の反映、サーバの台数や性能を変更します。利用するAWSのサービスが多く、リリース作業担当になった当初は理解するのが大変でした。
アトラスではリリース作業をする前に実施事項をリストアップし、実施するときは先輩と二人一組で作業します。万全の準備をして、問題なく時間通りにリリースを終えたときはとても気持ちがいいです。
5.必読書/推薦図書
システム開発グループには3冊の必読書があります。以下の3冊は開発者の共通認識として必ず読むことになっています。
- リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
- プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則
- 入門 監視 ―モダンなモニタリングのためのデザインパターン
アトラスでは社内での情報共有にDocBaseというツールを使用しています。プリンシプルオブプログラミングと入門監視については、同じチームの先輩と分担してDocBaseに要約記事を作りました。これらの本を読んだり、要約記事を作成するのは業務時間内にやっています。
また、過去の大神の記事にある通りアトラスには「参考図書制度」という、本の購入を会社が負担する制度があります。エンジニアという職業上、日々のインプットは欠かせません。こういった制度があるのは大変ありがたいなと思っています。
6.まとめ
以上、簡単にですが新人エンジニアの仕事を紹介しました。アトラスでは幅広い業務に携わることができ、参考図書制度以外にもエンジニアの成長をサポートする様々な制度があります。アトラスの新人エンジニアがどういう仕事をしているかイメージできるようになりましたでしょうか。
ブログ初投稿のため書き始めるまで少し腰が重かったのですが、書き始めてみると意外と楽しく書けました。次はエンジニアとして技術に関することについて書きたいと思います。