自分が出来ること出来ないこと2020

いまゆるゆると就職活動してるんだけど、そうすると自分のアピールポイントばっかり書いたり言ったりすることになるので、いま自分がそんなに自信がないこともちゃんと言語化しておきたいと思った。最初はできないことだけ書こうと思ったんだけど、逆に「自分はなんにも出来ない人間だ・・・・」となりそうになったので、ちゃんと自信を持ってできることも書いておく。

自信を持って出来ること

  • Ruby (Rails) / Python / Kotlin / Go / React / VueでサーバーサイドからフロントエンドまでWEBアプリケーションを1から作る / 機能追加する
    • いくつか新規事業の立ち上げもやったし、この辺の言語なら普通のWEBアプリケーションを作ることは大体できると思う
  • レガシーなコードを読み解いてリファクタリングする、モダンな技術でリプレースする
  • 決済など難易度の高い機能の設計・実装を行う
    • レガシーな決済コードをリファクタリングしつつ、新規決済方法追加とかもやったしまあいけると思う。

それなりにできること

  • GCP / AWSで普通のWEBアプリケーションが動く構成を構築する
  • Terraformで構成を管理する
    • 新規の立ち上げのときに既存の構成を参考にしつつイチからTerraformでインフラを用意したり、既存のTerraformにプルリク送ったりしたので、出来る。が、日常的に触っていたわけではないので、得意とは言い難い。仕事でやったのはECS、GAE。本番で動かしてないけどGKEも環境を作るくらいはやった。
  • クラウドコンポーネントを組み合わせてピタゴラスイッチを作る
  • Kubernetes
    • Kubernetesができるって意味不明なんだけど、仕事でPOC作ったり、フリーランスになってからGKE環境をプロダクションで動かしてるところをいくつかお手伝いしたので、Kubernetesの基本的なところ(PODとかDeployment)については分かっているつもり
  • OSS
    • OSSがそれなりにできるってのも意味不明だけど、自分のOSSを公開したり、OSSのコード読んでIssue / PRを投げるということは普通にやっている。
  • スクラム開発
    • 自信を持って…の方にいれるか迷った。スクラムで開発していったり、スクラムやってない会社でスクラム始めたりもしたので、できる…と思う。ただ凄いスクラムチームが作れたみたいな経験はないので、こちらに入れておく。

やったことない・あまり自信ないこと

  • いわゆるEM業
    • 組織のために動くみたいなことはそれなりしてきたつもりだけど、職務としてマネジメントしたことはない。
  • ハイパフォーマンスが求められるアプリケーション
    • toCで爆裂なアクセスがあるようなサービスに関わってこなかったので、経験がない。もしかしたら問題なく出来るのかもしれないけど、正直分からない。
  • 機械学習
    • 機械学習チームというところにいたけど、自分はアプリケーションやってたので出来ない。正直中身の理論的なところから全く分かってなかったので、CourseraのStanfordのやつで勉強中。
  • ミドルウェアに関する深い知識
    • アプリケーションエンジニアとして扱うもの(RDBMSとか)の表面的なAPIくらいは理解しているものの、具体的にいうとこの資料のようなレベルでその中身を理解してるとは言い難い RDBMS in Action - Speaker Deck
  • AWS / GCPに関する深い知識
    • 何をもって深い知識というか難しいけど、今まで一緒に働いたことのある専門でSREをやっていた人たちほど詳しくないのはたしか。
  • アルゴリズム等CSの知識
    • いまLeetCodeなどをやりつつ、おすすめされた本をちまちま読んでいる…
  • ネイティブアプリの開発
    • Flutter / React Nativeまでは触れたんだけど、Swiftのコードになるともはやさっぱり分からない。基本やったことない領域でもチャレンジして頑張ったけど、一度だけiOSアプリへの機能追加はギブアップしてごめんなさいした。
  • マークアップ
    • デザイナーさんのカンプをもとにそれに忠実にコーディングしてくみたいなこと。やれば出来るとは思うしやったこともあるけど得意ではない。。

こうやってまとめると、やはり器用貧乏感がある。精進します。