Fire Engine

消防士→ITエンジニア→研究者

消防士からエンジニアに転職して2年が経ったので振り返る

消防士として働いていた私が、経験ゼロからプログラミングを始めて、ITエンジニアに転職してから2年が経ちました。
1年前にも同じような振り返りの記事を書きましたが、エンジニア2年目も振り返ってみたいと思います。

blog.tsurubee.tech

エンジニア2年目を振り返って

インフラエンジニアになった

エンジニア2年目での一番大きな変化は、GMOペパボに転職して、インフラエンジニアになったことです。
これにより技術スタックも大きく変化し、自分の知識や関心領域を広げることができました。今振り返っても大変良い選択をしたと思っています。
僭越ながら、最近採用サイトにインタビューを載せていただきました。

tsurubee interview

無駄なこだわりを捨てた

私には「体系的に学ぶ」とか「順序立てて学ぶ」といったこだわりが染み付いていました。これは決して悪いことではないのですが、時に成長スピードを遅らせる要因になると思いました。
例えば、何か新しいことを学びたいとか、作りたいとなったときも、どこかで「まだインフラエンジニアとしての土台もついてないのに、そんな新しいことに取り組んでる余裕はない」とか、「しっかり土台の知識や技術をつけてからやり始めよう」など考えていたのです。それを会社の何人かの上司に話すと、
「その土台ってどこまでが土台ですか?」「土台つけるのにあと何ヶ月かかるんですか?」
などと言われました。確かにこの質問ってうまく答えられないんですね。
このときに自分は変なこだわりを持ってしまっていて、成長のチャンスを逃しているなと思いました。たいていの場合、学びたい・作りたいと思ったときにやり始めるべきだし、そうやって、何かをやっている間に自然とその周辺知識がついてきて、結果的にボトムアップで学ぶより効率もいいし、楽しいし、やってよかった!ってなるんじゃないかなーと思っています。

すごい人達にまぎれて自分の成長スピードを高める

ペパボには今の自分には手の届かないくらいすごい人たちがゴロゴロいます。そういう方達にまぎれることで刺激になるし、技術的なことを直接教えてもらえることもできます。
今の私の立場だと、@pyama86さんと仕事で関わる機会が多いのですが、私が3日くらい悩むことが8秒くらいで解決することもあるし、ペアプロ・ペアオペをやってもらうと、1時間で1ヶ月分くらい勉強時間が短縮できたんじゃないかって思わされることもあります。(社内ではpyama of the yearと呼ばれている)
なので、私は新しいコードを書くときは、ミニマム実装が終わったくらいにペアプロをお願いして、初期段階で設計を相談したりしています。

技術的にすごい人たちにまぎれて、恐れずに質問・相談するスタンスは、私の中でかなり成長スピードのハックに繋がっていると思います。そのような相談する環境がない場合は、自分自身でその環境づくりをするだけです。

2年目(2017/11~2018/11)でやったことのまとめ

OSS開発

SSHプロキシサーバ

sshrというユーザ名ベースでSSHの接続先を動的に切り替えられるプロキシサーバを作りました。 現在も開発継続中です。

blog.tsurubee.tech

K近傍法に基づく異常検知

mrubyを使ってK近傍法に基づいた異常検知を行うmruby-knn-detectorというライブラリを作りました。

blog.tsurubee.tech

イベント登壇

Date Event Slide
2017/12/20 PyFukuoka #3 Pythonで学ぶUnixプロセスの基礎
2018/03/23 TechMTG #8(社内イベント) さあ、異常を検知しよう!!
2018/06/28 九州インフラ交流勉強会(Kixs) Vol.007 Golangで学ぶHot deployの仕組み
2018/09/06 Developers Summit 2018 FUKUOKA GolangでSSHサーバを作ってみる
2018/10/04 Fukuoka.go #12 GolangでSSHプロキシサーバを実装した

コミュニティ活動

エンジニア1年目のときから、PyFukuokaというコミュニティの運営をやっていて、それをきっかけに九州版のPyConの立ち上げに実行委員として携わりました。

blog.tsurubee.tech

これからやりたいこと

エンジニア1年目に力を入れて取り組んでいたデータサイエンスと、2年目に取り組んだインフラを融合させることです。
実際に半年ちょっとインフラエンジニアをやってみると、サーバのメトリクスや、各種ログなど日々大量かつ多種多様な情報が流れていることを実感できました。しかしながら、それらのデータ活用にはなかなか取り組めておらず、簡単な閾値設定やパターンマッチなどを行い、アラーティングをしているのみです。

今後Webサービスの規模が大きくなるにつれて、サーバ台数の増加やシステム構成の複雑化が進んだ場合、サーバのメトリクス等の情報を高解像度かつ長期間保持し、保持した情報を統計的に解析することで、アラーティングの精度を向上させたいといったシーンも増えてくるのではないかと思います。
オライリーSite Reliability Engineeringにも「時系列データからの実践的なアラート」といった章があるのですが、インフラにおけるデータ活用はこれからますます需要が高まってくると思いますし、何より自分が興味があるので、取り組んでいきたいです。

さいごに

ありがたいことに時々、勉強会などでお会いした方に「2年でこれはすごい成長スピードですね!」などと言ってもらえることがあるのですが、私は本当に人に恵まれました。
最初の会社ではパソコンの使い方レベルから知らないことばかりでしたが、メンターをしてくれた方が根気よく教えて下さいましたし、その後ペパボに入ってからも、lscdくらいしか叩けないレベルだったのに、丁寧に教えて下さって、なんとかインフラエンジニアとして仕事ができています。

その方々に恩返しする意味でもさらに成長して、誰にも負けない分野を作っていきます。
あと、これから本格的にベンチプレスの大会に出場していこうと思います。