All Articles

5 years of engineer life

2020年4月でエンジニアとして働き始めて5年が経つ。なんとなく区切りはいいので、自分のこれまでの経験、次の5年のこととか考えてみたいと思う

これまで

よかったこと

自分で現状と今後を分析してキャリアを選んでこれた。また、選択先でギャップを味わうような事故がなかった。自分が率先して手を動かせる場所に移って行ったのは良かったと思う。結局自分で意思決定できる立場にならないと隅の隅まで調べないし、大きく成長はできない。会社の構造上、自分の職域が広くならないと思ったところで転職してきた。

悪かったこと

ライブラリの使い方やちょっとした触れーうワークを動かしたり、簡単にわかるようなことを追う時間が多かったかなと思う。色んなフレームワークをやるよりも、フレームワークの中でレイヤードアーキテクチャなどの設計に力をいれることを行えばよかった。一個のフレームワークに造詣が深くなれば、ほかのフレームワークもなんとなく理解できるし。フレームワークをアーキテクチャの一部として調教しているエンジニアに会うまでわからなかった。そういうことを教えてくれる人がいればよかったな。。

graphQLやサーバレスは今後もっと流行るのではないかと思っている。なぜなら、RESTはクライアントに優しくないから。画面構成に必要なAPIを何本も投げる必要がある。それは永続化されたリソースを概念ごとに返すのが正とされてきたから。しかし、そのリソースを主に扱うのはクライアントである。裏側では処理しやすいように適切な境界でデータを分ければいいのだが、クライアントはそんな話はどうでもいい。画面を構成するためのデータを取得できれば十分である。この乖離を解決するのがgraphQLなんだと僕は理解している。ビジネスを早く進めるためには、クライアントに機能を追加し、エンドユーザに触ってもらうのが一番だろう。そのためには、UI/UXの作り込みをしっかりやってもらったほうがいい。サーバとのやりとりを単純化しておけばもっと重要な価値の部分にコミットできる。そして、graphQL自体は多分そう難しくない。クエリによって決まったデータを返すだけなので自動生成が楽なようだ。現にAWS AppSyncではスキーマを決めればdynamoDBにテーブルが作られ、リソースを操作するクエリが提供される。必要に応じて自分でクエリを書くことももちろんできる。そうなると、RESTを書くバックエンドのエンジニアは段々と必要なくなっていくのではないかまで思っている。今後のバックエンドには、インフラからセキュリティの管理、BIツールの運用、UIテストの整備などよりサービス運用に近い部分の仕事がメインになってくるのではないか。インフラはクラウドの知識が必要不可欠。jsは変化が早いからめんどいと思ってじっくりやれそうなバックエンドに移ったけどこっちも大変。コンテナ運用を支える新しいツールはどんどん出てるけど追いかけられていないし、AWSの知識も全然怪しいし、DBの知識も最低限でまだまだこれから最低限のエンジニアになるために勉強することはあるなぁという所感。それでも変化は早く、進化するもの、止まるものがあるのでよく見極めて自分の時間を投資していかないといけない。目下はGraphQLの運用をしてみて一つ新たなスキルセットとして売り出せるようにしてみる。

今後5年のこと

今まではバックエンドアプリケーションのコードを書くことに注力してきたので、フロントも多少触れるようになりつつ、アプリケーションアーキテクチャに強くなっていたい。インフラとアプリケーションで堅牢なバックエンドを作る実績を作る。チームの出力を上げていけるような戦略作り。最近は、チームのタスク管理や整備に時間を取られがちなのでプロダクティビティを上げる行動を続けていきたい。まずはタイムトラッキングをしているが、ポモドーロも試したい。それくらい僕には開発時間の捻出が近々の課題。もし、会社が上場していたら海外に飛ぶことも検討しているかもしれない。上場させられるように人事を尽くす。

チャレンジ

  • 英語へのモチベーションを上げたいので英語で本を書くのはありかもしれない
  • 英会話
  • 競技プログラミング
  • プロダクティビティを上げる

    • タイムマネジメント
    • 課題の分解力
    • 設計力