Apache Arrow関連業務
2016年からApache Arrowの開発に参加しています。
業務内容は次のとおりです。
- Apache Arrowおよび関連プロジェクトの開発
- Apache Arrowおよび関連プロジェクトのサポート・コンサルティングサービス案件の獲得
- Apache Arrowおよび関連プロジェクトのサポート・コンサルティング
開発
2022年6月現在のApache Arrow関連業務の主な収益源はApache Arrow関連の開発です。私たちのApache Arrow関連の開発に対してVoltron Dataさんが金銭的に支援しています。
2022年6月現在はApache Arrow PMC chairである須藤だけがこの開発業務に取り組んでいます。クリアコードに入ってこの開発業務に取り組む場合、入社時点での経験によって変わりますが、次のようなステップを想定しています。これらを実現するために須藤が随時サポートします。入社後3ヶ月から6ヶ月ほどでVoltron Dataさんから支援を受けられるレベルの開発者になることを期待しています。なお、国外企業で働くことに問題がない・Voltron Dataさんが注力しているApache Arrowの領域に共感できる場合はクリアコードではなくVoltron Dataさんに入社することをオススメします。詳細はVoltron Dataさんの採用ページを参照してください。
採用プロセス中での判断基準
採用プロセスでは、次のセクション「入社後1ヶ月程度で期待すること」をできそうかを判断します。具体的には次の観点で判断します。
- つまづきポイントを見逃さないか
- 自分が作業していてつまづいたところは他の人もつまづく可能性が高いので、それをコミュニティーで共有あるいは修正することは健全なコミュニティーを維持するためによいことである。
- つまづいたけど無意識にWebページを検索して回避し、つまづいたことに自分で気づかない進め方の人は厳しそう。
- つまづいたときに抱え込まないか
- ドキュメントに手順が抜けているとかそういう簡単なやつは自分でちょろっと解決して進んで問題ない。
- そうではなくて、(現時点での)知識がないなどでつまづいたやつは他の知っている人に教えてもらうなどして他の人の助けも借りながら適切な解決方法を見つけていける進め方のほうが望ましい。
- 現時点で知らないことはこれから知っていけばよいだけなので、自分だけで解決する以外の他の人に教えてもらうなどの解決方法も選べるほうが望ましい。
- Apache Arrowは関連技術が幅広いので自分だけでなんとかする進め方だと時間がいくらあっても足りなくなるはず。
- 自分のことを説明できるか(今の状況、これからの計画、なにを知っていてなにを知らないかなど)
- 2.の実現時に必要になる
- Apache Arrowは幅広いので作業をしていて知らないことがたくさんあったり、好きな作業や嫌いな作業があるはず。
- 他の人から説明してもらう場合、一回の説明ですべて理解できることは稀なはず。そういうときに自分はどこまで理解してどこからは理解できていないのかとか自分の状況を説明できると説明している側は追加の説明をしやすいので望ましい。(説明する側も聞いている側の理解度を確認するべき。)
- 自分の好みを説明できるといい感じの進め方を選びやすくなり望ましい。
- 自分が考えているこれからやろうとしていることを広く説明できるとまわりから協力を得られやすくなり望ましい。(Apache Software Foundationが大事にしていることをまとめたThe Apache Wayという考え方があって、そのなかにOpenがあるが、それに通じること。)
- 説明を省略しないか
- ある程度お互いのことや対象のことをわかっていればもろもろ説明を省略して結論だけ共有してOKなこともあるだろう。
- しかし、特に新しい作業ではそうではないケースの方が多いので、そういうときにどうしてそういう結論に至ったのかとか(たとえきれいにまとまっていなくても)なにを考えている・いたのかを他の人に説明できた方が適切な相談・判断をしやすくなって望ましい。
入社後1ヶ月程度で期待すること
- Apache Arrowの開発方法を実践している
- 週に3個程度のペースでpull requestがマージされている(typoの修正など簡単なもの)
- 週に3回程度のペースでpull requestをレビューしている
- 週に1回程度のペースでissue/メーリングリストなどにくるユーザーからの質問に回答している
- 週に1回程度のペースで
dev@arrow.apache.org
メーリングリストの議論に参加している
入社後3ヶ月程度で期待すること
入社後1ヶ月程度で期待することに追加:
- 週に1個程度のペースである程度まとまった機能の開発・修正をしたpull requestがマージされている
- リリース作業を手伝う(CIの修正・RCの検証・リリースプロセスの改良など)
入社後6ヶ月程度で期待すること
入社後3ヶ月程度で期待することに追加:
- 他の開発者からメンションが飛んでくる(ある分野では十分詳しいと認識されている)
- コミッターになる
サポート・コンサルティングサービス案件の獲得
前述の通り、2022年6月現在ではApache Arrowの開発に対するVoltron Dataさんから支援がこの業務の主な収益源ですが、今後はもっと収益源を増やしたいです。収益源が多いほうがビジネスとして安定するからです。1つの大きな収益源だけだとその収益源がなくなったらその事業が立ち行かなくなりますが、複数の収益源があれば影響を抑えることができます。
2022年6月現在、クリアコードの案件獲得の方法はアウトバウンドではなくインバウンドです。つまり、クリアコードがお客さんを探す方法ではなくお客さんにクリアコードを見つけてもらう方法です。どうしてこの方法なのかというとこの方法しかできないからです。(アウトバウンドなやり方が苦手です。)今後、他社と協業するなどしたら変わってくるかもしれませんが、2022年6月現在はこの方法を使っています。
お客さんにクリアコードを見つけてもらうために次のことをしてもらいます。
- Apache Arrowの開発
- Apache Arrowコミュニティーで存在感がでると↓の活動をしやすくなります。たとえば、須藤はPMC chairになりましたが、そうすると「クリアコードはApache Arrowを知っている感」が強くなります。
- ブログでの情報発信
- たとえば、Apache Arrowの最新情報(2022年5月版)というように最新情報を定期的に情報発信することで日本でApache Arrowに詳しいといえばクリアコードっぽいからクリアコードに相談しようという流れを作ります。
- イベントでの発表
- たとえば、db tech showcase 2021 - Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021で発表したときに声をかけてくれた方がいて、その後、その方の会社とビジネスの話をする機会がありました。(案件にはなりませんでした。)
他にも案件を獲得するアプローチはあるはずなので、どんなアプローチがよいかを考えながら一緒に案件獲得に取り組んでもらいます。
クリアコードでのこれらの活動の多くは広く公開された場で行うため、今後のあなたの実績として広く参照できます。また、これらの活動を通じて人のつながりが増えます。人のつながりは公私問わず助けになります。
サポート・コンサルティングサービス
大量データの扱いに課題をお持ちのお客さんから相談を受けることから始まります。
まず、お客さんから課題をヒアリングをします。その結果に基づき、次のような解決方法を検討、提案します。
- 導入支援
- 性能改善
- 機能追加、不具合修正
- 運用支援
Apache Arrowを全面的に活用して解決する場合もあれば、Apache ArrowだけでなくApache Arrowを活用したプロダクト(たとえばApache Spark)を活用して解決する場合もあります。お客さんの課題に応じて内容が大きく変わるため難しいですが、面白いところでもあります。