OSS貢献から

キャリアを模索する

はじめの一歩からその先まで

Core Messages

  • OSS貢献は楽しいし簡単に始められる!
    • いろいろなやり方がある
    • みんなでやろう!仲間が増えると嬉しい😄
  • ついでにSWEキャリアに繋がる・お金を稼げるといいよね
    • こっちはいくつかハードルがある…
    • 参考になりそうな例を紹介

Hi 👋

橘 祐一郎

Yuichiro Tachibana

@whitphx

  • Indie developer
  • OSS enthusiast
  • Streamlit Creator
  • Streamlit/Gradio Advocate at Hugging Face🤗
    • Huge thanks to the Streamlit OSS community!

Streamlit Creator

Subtitle

今日話すこと

  1. OSS貢献をはじめる
    • 一般論
    • ​​​​わたしの例
  2. OSS貢献をキャリアに繋げる​​​​
    • 一般論
    • ​​​​わたしの例

OSS貢献をはじめる

なぜOSS貢献?

  • 学習・スキル向上
  • キャリア・ネットワーキング
  • コミュニティへの還元
  • テクノロジーへの情熱・問題解決
  • etc...

いろいろな貢献の仕方

コードだけじゃない

  • コード
  • ドキュメント、翻訳
  • テスト、バグ報告、機能要望
  • コミュニティ参加、ユーザサポート
  • 記事執筆、広報
  • プロジェクト管理
  • etc...
  1. 貢献

    • コード:コードの作成、修正、最適化。
    • ドキュメンテーション:ガイドと説明の改善。
    • テスト:バグの特定と結果の報告。
    • デザイン/UX:ユーザーインターフェースとエクスペリエンスの向上。
  2. コミュニティ参加

    • サポート:ユーザーの支援と質問への回答。
    • コードレビュー:コードのレビューとフィードバック提供。
    • プロモーション:情報発信とコミュニティの拡大。
    • メンターシップ:新しい貢献者を指導し支援する。
  3. 専門的な貢献

    • セキュリティ:脆弱性の特定と報告。
    • アクセシビリティ:すべてのユーザーのための使いやすさの向上。
    • パフォーマンス:速度向上のためのコードの最適化。
    • ローカライゼーション:国際的なアクセスのための翻訳。
  4. プロジェクト管理

    • イシューの整理:タスクの整理と優先順位付け。
    • ロードマップ:プロジェクト計画への貢献。
    • 寄付/スポンサーシップ:財政的な支援のオプション。

全部は網羅できないので…

わたしのOSS貢献の例

なぜOSS貢献をするの?

私の場合

  • 自分が使うソフトウェアの課題を解決する
    • 役にたつ!!!
  • 社会とのつながり、承認欲求的ななにか
    • 楽しい!!!

はじめてのOSS

2015年くらい

  • ⚪︎⚪︎を作ってたら再利用可能そうなパーツができた
  • せっかくだからOSSにしてみよう

whitphx/fuel-kana, 2015

whitphx/lear-gist-python, 2015

最初はこんなもん!

自分が利用したOSSへの貢献

仕事で・個人開発で

docker/compose
DefinitelyTyped/DefinitelyTyped
auth0/ruby-auth0
sheetalgiri/
nepali-calendar-js

使ってるOSSへの文句をTwitterに書きそうになったらissue/PRにするチャンス

コード以外の貢献

こういうのも大事な貢献

mdn/translated-content
keras-team/keras-docs-ja

大粒のプロダクト・ライブラリ

  • whitphx/vscode-emacs-mcx
  • whitphx/streamlit-webrtc
  • whitphx/stlite
  • gradio-app/gradio (@gradio/lite)

Awesome Emacs Keymap, 2019

Emacs keymap extension for VSCode

Streamlit-WebRTC, 2021

Real-time video&audio on Streamlit

stlite, 2022

"Serverless Streamlit"

Gradio-lite, 2023

"Serverless Gradio"

わたしのStreamlitへの貢献

出会い

使い始めたモチベーション

  • リアルタイム動画I/O + Computer Visionの開発
  • デモ作成にOpenCV → デスクトップアプリ
  • Web共有できるソリューション → Pure Python UI frameworks
  • リアルタイム動画I/Oサポート
    • 当時存在しない
    • 自作する余地のあるフレームワーク = Streamlit

Streamlit-WebRTC, 2021

Real-time video&audio on Streamlit

Streamlit-WebRTC

Forum初投稿

Streamlit Creator選出

Streamlit Creator選出

stlite, 2022

"Serverless Streamlit"

Serverless Streamlit, stlite

サードパーティ開発者として

  • streamlit-webrtc
  • stlite
  • streamlit-server-state
  • Streamlit Accessible Theme Editor
  • etc...

ブログ記事

Streamlit本体への貢献

OSS活動から得たもの

特にStreamlitから

  • 自分が欲しい機能追加、自分が困っていたバグの修正
  • 友人
    • Streamlit inc.
    • Streamlit Creators
  • 対外発表の機会(PyCon)
  • 寄付
  • お金を受け取る仕事
    • streamlit-webrtc: 動画ソフトウェアの開発の仕事
    • stlite: stliteそのものの開発
    • Hugging Faceでのポジション

OSSコミュニティとしてのStreamlit

  • Forum
    • コミュニティマネージャの手厚いサポート
  • Streamlit Creators
  • YouTube
    • YouTuber Streamlit Creators
  • Books
    • ​​​​​​​​​​​​​​

StreamlitからOSSを

はじめてみよう

コミュニティに参加する

バグ報告・機能要望をする

アプリケーションを作る

Componentを作る

→apps, componentsを作ったらforumに投稿

記事を書く

SNSで拡散する

本日のイベントで飛び込んでみる

OSSをキャリアにする

OSS活動を楽しみつつ

メシを食う方法の模索

OSSは楽しい!

ついでにお金がもらえたら/

キャリアに繋がったらもっと良い

お金の稼ぎ方・仕事への繋げ方

一般論

  • 寄付
    • GitHub Sponsors
    • Open Collective
  • プロダクトとして収益化
  • 雇用され業務として関わる
  • OSSをフックに仕事を受ける
  • 起業
  • etc...

OSSからお金を得ている先人たち(一部)

Rui Ueyama氏

Will McGugan氏

sosukesuzuki氏

お金の稼ぎ方・仕事への繋げ方

自分の例

  • 寄付を受ける
  • OSS経由で受託の仕事を受ける
    • streamlit-webrtc
  • OSS開発を仕事にする
    • stlite
  • OSS経由でポジションを得る
    • Streamlit関連全般 -> Hugging Face
    • その後業務としてGradio-liteの開発

OSS as a paid job

  • Hugging Faceで有給の仕事
    • Streamlitへの貢献 👈🩷
    • Hugging Face platformの開発(特にStreamlit関連機能)
    • Gradioへの貢献 👈🩷
    • Gradio-liteの開発 👈🩷
  • Streamlitから開発支援(2ヶ月)
    • ​​​​​​​stliteの開発 👈🩷

OSSで生活できている状態の一例

営利企業のOSS

pros/consあるが…

 

収益化という観点では良い選択肢なのではないか

Streamlitのよさ

  • 開発チームの厚さ
  • 手厚いコミュニティ
    • 専属のコミュニティマネジャーを雇用
  • ビジネスになる領域のOSS
    • 収益化源への(潜在的)接続機会の多さ
    • Snowflake Marketplace❄️
  • (なんのかんの言っても)資金がある

Snowflake

Streamlitを有給の仕事にした例

Serverless Streamlit, stliteの開発

Streamlitのpart-time jobとして

stliteの開発

組織を跨いだ仕事の可能性

開発元以外も利用・自社プロダクトに組み込み

→そのOSSに詳しい人を雇用

OSSのおもしろさの一例

組織を跨いだ仕事_1

Databutton

組織を跨いだ仕事_1

Databutton

組織を跨いだ仕事_2

Hal9

組織を跨いだ仕事_3

Hugging Face

OSSを仕事にする

  • 可能性はいろいろある
    • が例が少なくて再現性のある方法はなさそう…
  • とはいえ最近盛り上がっている
  • 自分の例
    • 仕事につなげる
      • 営利企業のOSSに乗っかる
    • ​​​​​​​​​​​​英語ファースト
      • マーケットサイズが段違い

OSS活動と英語

自分のOSS活動を英語で発信

  • READMEは英語で書く
  • SNS英語アカウントの効用

自分の例: 自作OSSから得られた経済的利益は全て英語での発信から

  • streamlit-webrtcから得た仕事
  • streamlit-webrtc, stliteのプロモーション
  • stliteに対する支援
  • Awesome Emacs Keymapへの寄付(日本語話者の方からの寄付もあり)

日本語コミュニティの小ささ

Subtitle

  • 英語ほぼ必須の理由の一つ
    • 鶏と卵
  • 盛り上げたい!

OSSやっていきましょう

  • 楽しい!役に立つ!
  • キャリアに繋がる機会が最近は増えている
  • 仲間が増えると嬉しい

まとめ