キャリアを考える?
ふと気になったので、キャリアについてちょっとだけ整理。
もともとただの総合職として今の職に入って、2.5年は障害対応業務に従事した。
そして、そこから3年間は特定のアプリ開発及び運用に従事した。
ちなみに、アプリ開発とはいえ、実際はほとんど既存機能の改修がメインだった。
使用言語もPerlだし、学んだスキルもあまり高いものとは言えなかった。
※フロントサイドよりサーバサイドがメインだった。
また、独自の世界での開発だったため、正規のアジャイルのような形にはなっていなかった。
要望を聞いて、優先度順に個人で消化するような形だった。
さらに、オブジェクト指向な書き方はほとんど触ることはなかった、
いや、触ったは触ったのだが、きちんと理解して今後自分で書けます、というレベルではなかった。
それでも、形式的ではあれど超簡単な要件定義、開発、テスト、実装までは一気通貫で学ぶことはできた。
開発の傍ら、保持サーバの監視運用も行っていた。
アプリをメール等で監視するレベルではあったが、開発と運用のバランスを取りながら業務していた。
その後、半年程度の休憩を経て、運用チームへと渡った。
今度は完全に運用がメインで、持ち前のサーバおよびミドルウェア、アプリの監視を行っている。
障害が多発するので、その対応と再発防止に力を入れている状況である。
開発からは完全に離れてしまったが、
何も載っていないOSの上にミドルウェアやアプリをインストール、構築して運用するところまでを担っている。
ここまで書いて、一応ではあるが、DevとOpsについて経験をしていることになるなぁと気が付いた。
これから数年かけてOpsのほうを強化したのち、
Secの世界に入っていきたいと思ってはいる。
ただし、Secの世界を経験してDevSecOps一通り経験できました、となってもあまり意味ないかもしれない。
上記を一通り網羅するだけではなく、最低限レベルは進めるべきと考えるからだ。
DevSecOpsは、開発を行う段階から、セキュリティのこと、そして運用のことを考える。
例えば運用を学んでいる今の状況であれば、開発するアプリには、
・わかりやすいエラー記述をするようにする
・エラーを明示的にレベリングして切り替えられるようにする
・モジュールを分けて問題が起こった際の原因特定を容易にする
など盛り込んだほうが良い、とわかる。
ここにセキュリティの知識が加われば、開発時に
・あらかじめ組み込むべきでない機能を知り、代用する
・脆弱性となりやすい部分を把握し、対策する
などの知識が手に入ると思われる。
上記の知識を手に入れる場合は、
セキュリティとしては脆弱性診断orペネトレテスト系になるのだろうか。
また、今の状況ではあまりにも開発に対する経験値が足りなさすぎる、と感じる
何かを作りたい、と思ったときに開発できるスキル、もしくはあとは手を動かすだけ、という状況になれるようにしたい。
そのための経験を今から積んでおかないと、今後のスキルアップが望めないのではと思った。
例えば、
今利用しているOSSについて、OSS活動をしてみるのも手かもしれない。
そこからさらにセキュリティ面での視点が増えれば、OSSに対してセキュリティ的なアプローチが取れる、結果的にバグバウンティ的なところに行きつける?
今利用しているOSSは、きっとほとんど自身の経験していない言語になると思う。
でもやる気があればある程度は挽回できるはず?
いったんOSS周りでちょっと整理をしてみよう。
以上