自分の仕事 (SRE, Platform Engineer) と趣味 (OSS 活動) についてエンジニア以外の方にもわかるように説明します。 背景としては、時々世間話のような形で仕事や趣味について聞かれることがあるもののあまり上手く説明できないことが多いので、一度文書化してみようと思った次第です。 エンジニアの方以外にも分かるよう分かりやすさを重視するため、少々雑で乱暴な説明をすることがあるかもしれません。 エンジニアの方などからすると引っかかる部分もあるかもしれませんが、予めご了承ください。
仕事で何をやっているのか
自社サービスを運営している IT 企業でソフトウェアエンジニアをやっています。 ソフトウェアエンジニアとは要はプログラマのようなもので、プログラムを書くことを仕事にしています。 ソフトウェアエンジニアといっても色々な種類がありますが、自分はインフラエンジニアとして働いています。 もっと正確にいうと SRE や Platform Engineer と呼ぶべきですが、説明を簡単にするためにインフラエンジニアとして説明します。 インフラという言葉は、社会インフラや生活インフラのように、人々の社会生活を支える基盤となる施設や設備のことを指します。 自分はインフラエンジニアとして、所属する企業が運営するサービスを支える基盤を作っています。 つまり、自分はユーザー向けのサービスの機能を直接的に作っているわけではなく、それを支えるインフラを作る、いわば縁の下の力持ちのような存在です。 具体的にどういうことをやっているかというと、サーバー (サービスを動かすためのコンピューター) やデータベースなどのサービスを動かすのに必要な環境を用意したり、サービスが安定して使えるようにしたり、異常にすぐきづけるようにしたり、サービスの開発者が効率よく開発できるようにしたりしています。 こういったことを手作業でやることもありますが、エンジニアの醍醐味はプログラムによって自動化することですので、エンジニアとしてこれらを可能な限り自動で実現するような仕組みづくりをしています。
趣味 (OSS 活動) について
OSS 活動とはなにか
趣味として OSS 活動をしています。 OSS は Open Source Software の略で、ここでいう Source はソースコードのことです。 あらゆるプログラムは C や Java といったプログラミング言語で書かれていて、そのプログラムを書いたソースコードがあります。 例えばみなさんが使っている Windows や Word, Excel などにもソースコードがありますが、当然それらは公開されていません。 そういったソースコードが非公開なソフトウェアとは対象的に、ソースコードが公開されていて誰もが (一定の条件付きで) 自由に使って良いものを OSS と呼びます。 OSS は個人や企業を問わず広く使われていて、 OSS を全く使ってないソフトウェア・サービスはないといっても過言ではありません。 自分が開発する OSS も個人はもちろん企業でも使われています。 OSS 活動には幾つか種類がありますが、自分は以下のようなことをやっています。
- 自分で OSS を作って公開すること
- 他人の OSS に不具合を報告したり新しい機能を提案すること
- 他人の OSS を修正すること
何を作っているのか
自分は様々な OSS を作っていますが、それらは全て開発者向けのものであるため、開発者以外に説明するのはかなり難しいです。 幾つか頑張って説明すると、まずソフトウェアのインストールとバージョン管理を自動化する aqua という OSS を作っています。 バージョン管理とはようするにソフトウェアのバージョンを上げたり(アップデート)下げたり(ダウングレード)するということです。 あとは Terraform というとあるソフトウェアの実行結果を分かりやすく通知する tfcmt という OSS なども作っています。 他にも色々作っているんですが、要するに開発者にとって便利なものを作っています。
なぜ OSS 活動をやるのか
残念ながら OSS 活動で食べていけるだけのお金を稼ぐのは難しく、金銭的にはあまりメリットがありません。 それでも自分が OSS 活動をするのには色々理由があります。
- 楽しいから
- 問題を解決するため、より便利になるため
- 自分の OSS 活動を評価してもらえると嬉しいから
まず単純に楽しいからです。 数学やパズルのように問題を解く快感がありますし、期待通り動いたときの気持ちよさもあります。 あとは OSS 活動を通じて知識やスキルを身につけることが出来、これも楽しいです。 次に、自分が遭遇した問題を解決したりより便利にするためです。 こんなのあったら便利だなと思ったら自分で作ってしまえるのがプログラミングのいいところです。 既製品では満足できないから DIY するようなものなのかもしれません。 最後に、自分の OSS 活動を評価してもらえると嬉しいからです。 自分の OSS は個人や企業を問わず広く使っていただいています。 SNS で自分の OSS を褒めてもらったりすると嬉しいですし、それだけのことをやったんだと誇らしい気持ちにもなります。
あとは OSS 活動で食べていくのは難しいとは言いましたが、 OSS 活動がキャリアアップにつながることはあります。 すごい OSS 活動をすれば能力の証明になりますし、それがきっかけでスカウトが来たり、採用面接でコーディングテスト (プログラミングのスキルを見るためにコードを書いてもらうテスト) が免除されることもあります。 まぁキャリアアップが目的で OSS 活動をしているわけではありませんが、こういうメリットもあるということです。