Somtochi Onyekwereは、オープンソースのメンテナーであり、シニアソフトウェアエンジニアです。5年以上にわたり、グローバルなテクノロジー企業において、開発者がアプリケーションをデプロイするための信頼性の高いスケーラブルなシステムを構築してきました。Fly.ioでは、ネットワーキングレイヤーを支えるオープンソースの分散システム「Corrosion」に取り組んでいます。Fly.io入社以前は、Developer ExperienceエンジニアとしてFluxCDのメンテナーを務めていました。FluxCDはKubernetes上のGitOpsに向けたオープンソースプロジェクトで、MicrosoftやControlPlaneなどの企業のエンタープライズ開発者プラットフォームを支えています。
エンジニアリングの仕事と並行して、Somtochiはコミュニティ構築にも情熱を注いでいます。その原点は、Federal University of Technology(オウェリ)在学中にGitHub Campus ExpertおよびIngressive Campus Ambassadorとして活動していた時代にまで遡ります。現在は、Kubernetes Community Days Nigeriaの共同オーガナイザーを務めており、昨年開催された第3回目には、アフリカ各地から500名以上の参加者が集まりました。

私は、みんなが毎日スマホで使っているウェブサイトやアプリを動かすためのツールを作っています。家を建てることに少し似ています。普通、家が欲しければ、土地を買って、材料を集めて、自分で全部組み立てなければなりません。でも私が働いている会社は、そういったことを全部代わりにやってくれます。あなたは自分の荷物を持って来るだけで、すぐに住み始められるんです。
仕事で好きなのは、解決すべき問題の種類と、一緒に取り組む人たちです。Fly.ioには、私がこれまで一緒に働いた中で最も優秀なエンジニアたちがいます。問題の面では、分散システムに取り組み、信頼性を保ちながらスケールさせる方法を考えることが好きです。
プログラムを1台のコンピューターで動かすところから、複数のコンピューターにまたがって動かすようにすると、面白い問題が出てきます。プログラマーが当たり前に思っている多くの前提が崩れるのです。また、ユーザー体験を大切にして、ユーザーがアプリケーションを簡単にデプロイ・スケールできるようにしている点も気に入っています。
私が不満を感じながらも興奮するのは、マーフィーの法則です。壊れうるものは必ず壊れる。私たちは、障害が起きうるけれども、ユーザーのニーズを満たすのに十分な信頼性を持たなければならないシステムに取り組んでいます。
初めてインシデントに立ち会ったとき、みんなが緊張感を持って動き、壊れたものを修正し、正常な状態に戻すのを見ていたことを覚えています。自分もインシデントを経験するようになった今、プレッシャーの下でのデバッグが上達し、最初から様々な障害モードを考えるようになりました。
以前の会社であるWeaveworksが閉鎖したとき、次にどんな会社に入るかを意識的に考えることにしました。インフラ分野で面白いことをしている会社、趣味で読んでいたエンジニアリングブログを持つ会社のリストを作り、応募し始めました。
Fly.ioはそのリストの一番上にあり、面接プロセスは厳しいものでした。しかし、通過することがチャレンジの終わりではありませんでした。Fly.ioでの仕事にも同じ意図を持って臨みたいと思っていました。Corrosionに辿り着く前に他の2つのプロジェクトに関わりましたが、Corrosionは群を抜いて難しいものでした。さらに難しいことに、それは私が知らない言語で書かれていました。
そこで素早く学び、数ヶ月のうちにコードベースに意味のある貢献ができるようになりました。やがて、そのシステムの主要な開発者になりました。「この言語を書いたことがない」から「このシステムを自分が担う」へ、その期間での成長は静かに誇りに思っていることです。技術的な飛躍もありますが、優れたエンジニアであるとは、未知や不明確な問題を受け取り、分解し、解決策を見つけることだと改めて気づかせてくれたからでもあります。
私にとって、コミュニティとエンジニアリングは常に切り離せないものでした。常に手を携えてきました。オープンソースは、私が駆け出しの頃に腕を磨き、エンジニアリングが現実の世界でどう機能するかを学んだ場所です。知識を共有し、アイデアを公の場で議論し、プロジェクトの形を決める会話に参加する場所です。
その信念が私のあり方を形作ってきました。学生のとき、GitHub Campus ExpertおよびIngressive Campus Ambassadorとしてテックミートアップを企画し、約50人の学生が業界でのスタートに必要なスキルを身につけるのを助けました。その後、Kubernetes Slackコミュニティにアフリカ人向けの専用スペースを設けるよう働きかけ、そのグループは450名以上にまで成長しました。
現在は、Kubernetes Community Days Nigeriaの共同オーガナイザーを務めており、最新版にはアフリカ各地から500名以上の参加者と登壇者が集まり、共に学び、共有し、構築しました。
私はコミュニティから多くのものを得てきました。メンター、協力者、友人、そして機会。だからこそ、次世代のエンジニアへの投資を続けているのです。学生の初めてのプルリクエスト(PR)をメンタリングすることでも、初めてのカンファレンス登壇の準備を手伝うことでも、目標は同じです。見つけたときよりも強いコミュニティを残すこと。
16歳の私には興味がたくさんありました。数学、物理、工学、文章を書くこと、教えること。当時はたくさんの道が魅力的で実現可能に見えました。高校を卒業したばかりで、時間を潰すために映画を見ていました。コンピューターの前でハッカーが猛烈にタイピングし、不可能な問題を解決し、チームの仲間たちの作戦を成功させる映画にいつも引き込まれていました。
種はすでにそこにあったのです。少なくとも試してみようと思いました。でも16歳の私には、どこまで遠くへ行けるか全く想像がつきませんでした。今の私を見たら、きっとすごく興奮すると思います。
おそらく小説家への道を探っていると思います。最近はあまり書いていませんが、良いストーリーテリングと、芸術や表現の手段としての言葉は今でも大好きです。

