見出し画像

CakeDCでCakePHP力を磨いている

こんにちは。コネヒトという会社で家族向けのサービスをつくったり、CTO業をやったり、インディー開発(個人開発)をしていたりする@itoshoです。

タイトルのママなのですが、半年ほど前からCakeDCという海外の会社で副業をしています。副業自体は以前からちょくちょくやっていたのですが、海外の会社で副業するのは僕自身初めてだったのと、あまり事例も多くないので、こうして発信することで誰かの何かの参考になるといいなと思い、筆を執っています。

ちなみにコネヒト社では副業を許可制という形で認めています(2022年3月時点)。特にソフトウェアエンジニアの場合、副業先での経験が本業で活きることも多いと考えているので、コネヒト側の業務と健康に支障が出なければ、原則OKというスタンスでやっています(ここでのスタンスはCTOである僕のスタンスです)。

そもそもCakeDCとは?

CakePHPの生みの親であるLarry Mastersさんが創設したアメリカの会社です。基本的にはCakePHPに特化したクライアントワークがメインの開発会社ですが、その成り立ちからCaKePHP本体との関係も深く、クライアントワークだけではなく、CakePHPのOSS開発からコミュニティ運営までを手掛けています。

副業することになったきっかけ

昨年CakeFestというカンファレンスに登壇したことが事のはじまりで、カンファレンス後にCakeDCの中の方とコミュニケーションをとる機会があり、そこでCakeDCに興味を持ちました。

一応面接もありましたが、いわゆる海外企業のエンジニアの面接で想起されることの多いGAFAのような面接ではなく、これまでの開発経験や僕がCakeDCでやりたいこと、逆にCakeDCが僕に期待していることをカジュアルに話しました。ちなみに、英語のReading / Writingはある程度出来るけど、Listining / Speakingは(まだ)苦手と伝えたらチャットベースでの面接を実施してくれました。

今回、CakeDCとしても日本人(というか英語が得意ではない and タイムゾーンの差が大きい国に住んでいる人間)を受け入れるのが初めてだったのと、僕自身も時間的制約がある中でどれくらいバリューを出せるか正直分からなかったので、お互いのフィーリングが合うかどうか確かめるために、一緒にまずはやってみようという結論になり、11月から働くことになりました。

ということもあり、そもそも上手くいくか分からなかったので、特に積極的には公表していなかったのですが、半年ほど経って一定やっていけるぞという気持ちになってきたのと、CakeDC的にも日本でのCakePHPのプレゼンスを高めていくために、僕に期待してくれている面もあるので、その第一歩も兼ねてこの記事を書いています。

CakeDCで働いている理由

大きく2つ理由があります。一つは、純粋にエンジニアとしてグローバルな環境で働いてみたい、成長したいという好奇心があったからです。もちろん、「アメリカの空気を吸うだけで良いコードが書けるわけではない」(inspired by "SLAM DUNK")ですが、それでもこれまでと全く違う環境に身を置くことでアンラーニング出来るのではないかと考えました。

もう一つはCakeDCの経験がコネヒトにも還元出来るのではないかと考えたからです。かつては副業先を選ぶ基準として、本業と違う技術が経験出来ることを重視していたこともあったのですが、最近はインディー開発を含めて、コネヒトの技術スタックに寄せることで相乗効果を出すことを意識しています。

この変化はCTOになってから如実にコードを書く機会が減ったことに起因しています。正直、業務でコードを書く時間が減ったこと自体はそこまでストレスではありません(趣味がコードを書くことなのでそのストレスは週末にコードを書くことで発散できている)。ただ、シンプルにCTOとして筋力や審美眼が衰えると、誤った意思決定を下したり、イケてない技術戦略を描いたり、説得力のないマネジメントをしてしまったりするリスクが高まり、それはコネヒトにとって良くないと考えていました。かと言って、僕がコードをガンガン書くことは全体最適の観点から良くないフェーズでもあります。

その中でCakePHPのリーディングカンパニーであるCakeDCで働くことは、CakePHPを創業当時からバックエンドにシステムに採用しているコネヒトにとってもプラスになることが少なくないと考えました。

どういう働き方で何をしているの?

CakeDCはアメリカの会社ではありますが、フルリモートの会社で、世界中(アメリカ / ヨーロッパ中心)からエンジニアが集まっています。イメージ的には小さなGitLab社のような感じで、言語化 / 文書化の徹底が凄まじく、日々の業務も高度に仕組み化されています。そのお陰で僕は比較的タイムゾーンの違いが大きいため、コミュニケーションのほとんどが非同期のテキストコミュニケーションなのですが、それでも問題なく業務を遂行することが出来ています(テキスト中心なのは僕の英語力の問題もあるので、そこに関しては勉強中)。

また、文化的にもオープンソースプロジェクトのような会社運営になっており、厳密な給与体系も個人目標もなく、また、メンバーにランク付けやレッテルを貼るようなこともなく、非常にフラットな組織になっています。これは裏を返すと完全な実力主義の会社だということですが、みんなとても優しく、声を上げさえすれば、必ず助けてくれる素敵なチームです。

具体的な業務はクライアントワークのため詳しくは書けませんが、とあるプロジェクトのひとつにアサインされています。歴史のあるプロジェクトということもあり、機能改修からパフォーマンス改善、基盤のアップデートなど幅広く開発業務を任せてもらっています。

稼働時間は本業の時間外(≒平日の夜や週末)に限定されるのでそこまで多くなく、そんな条件を受け入れてくれただけでも有り難いのですが、ワークライフバランスを大切にしてくれているので、かなり柔軟に働かせてもらっています。ということもあり、これまで空いている時間はもともとインディー開発をすることが多かったのですが、その時間をCakeDCの活動に充てるようになりました。

今後について

半年ほど働いてようやく慣れてきたので、直近ではメインの開発業務と並行して、OSSの活動も徐々に始めています。ですので、CakePHP本体やその周辺のライブラリなどの改善もやっていきたいなと考えています。

また、日本のCakePHPコミュニティを盛り上げていきたいと思っていて、中長期的にはCakeDCの力を使った勉強会やミートアップなんかもやっていければと企んでいるのでお楽しみに🍰

もし、もっと詳しく話を訊いてみたいぞ!という方がいましたら、お気軽にTwitterのDMなどでご連絡ください。

この記事が参加している募集

仕事について話そう

この記事が気に入ったらサポートをしてみませんか?