Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
普通のエンジニアがOSSで世界と繋がるまで.pdf
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yota Hamada
June 26, 2025
Programming
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
普通のエンジニアがOSSで世界と繋がるまで.pdf
Yota Hamada
June 26, 2025
More Decks by Yota Hamada
See All by Yota Hamada
Go × 軽量ワークフロー言語で実装する LLM ワークフロー
yohamta
2
370
IP電話自動応答システムの実現
yohamta
1
100
Other Decks in Programming
See All in Programming
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
370
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
130
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
160
ジョジョの世界をXRで再現する
mofurune
0
110
iOSDC2026登壇資料.pdf
riofujimon
0
210
contenteditable と日本語入力に向き合う
colorful12
0
120
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
230
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
130
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
740
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.9k
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
350
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
450
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
400
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
610
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Skip the Path - Find Your Career Trail
mkilby
1
240
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
300
First, design no harm
axbom
PRO
2
1.3k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Odyssey Design
rkendrick25
PRO
2
860
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
Transcript
普通のエンジニアがOSSで 世界と繋がるまで Yota Hamada GitHub / X: @yottahmd
オープンソースのワークフローエンジン
Cron Airflow
Daguとは? - CronとAirflowの「中間」 • Cronの手軽さと、高機能ワークフローエンジンの「中間」を埋める選択肢 • 実行ファイル一つで動作 • DB不要でシンプル •
組み込みWeb UI
YAML 定義 可視化
GitHub が荒野だった日
「OSS活動は何かされていますか?」
はじめてのOSS - 貢献の形はコードだけじゃない • 当時流行り始めていた TypeScript を学習 • 質の高いオンライン書籍 TypeScript
Deep Dive を発見(ただし英語版のみ) • 💡「これを翻訳すれば、自分の勉強にもなるし、誰かの役にも立つかもしれな い!」
None
⼀つの活動が、新たな機会を運んでくる 翻訳活動 Udemy 講座作成 記事執筆依頼
【世界で7万人が受講】Understanding TypeScript 日本語版
ゲーム開発にはまる
ライブラリ開発で学んだ「上位互換に殺される感覚」 ゲームの設計パターン ECS に魅了さ れ、ライブラリ donburi を開発・公開 出典: Unity manual
- ECS concepts
海外技術者のチュートリアルで利⽤される • 海外の有名ブログで紹介され、多く のスターを獲得! • …しかし、ある日、圧倒的に高性能 な競合ライブラリが登場 m110氏により開発された airplanes mlange-42氏によるベンチマーク
強者が次々現れる、 OSS の現実
Dagu開発へ - 原動⼒は「Cron地獄」への課題感 • 当時勤務していた大手企業での深刻な問題 ◦ 数百のCronジョブが複数のサーバーに散在 ◦ 全体を把握しているのは、勤続10年のベテランエンジニアただ一人 ◦
障害が起きると、彼の「頭の中の設計図」だけが頼り… • Airflow等は導入が重すぎ、商用製品は高価で手が出せない
シンプルで⼿軽な選択肢がない 釘
Dagu 開発へ 高機能 手軽さ Cron Airflow
Go ならわかるシステムプログラミング ラムダノート
なぜ Go ⾔語を選択したのか • 依存関係の少なさ (標準ライブラリの充実) • シングルバイナリ(embed機能) • 優れた並行処理
(goroutine + channel) Go gopher 画像: Renée French 作
⼤きなソフトウェアを作り続ける技術 1. 小粒なイテレーションで達成感を得る • 壮大な計画は立てない。毎週「動くもの」を積み重ねる。 ◦ 1 週目: CLI で最低限
DAG を実行できるように ◦ 2 週目: Web UI で DAG が表示されるように ◦ 3 週目: 途中でキャンセル、再開できるように 2. 「Deep Module」の思想で変化に強く • I/F はシンプルに、複雑さは内部に隠す。 • シンプルな I/F を組み重ねて複雑なものを作る。
「Deep Module」の思想 出典: ソフトウェア設計について twada技術顧問と話してみた 〜 A Philosophy of Software
Design をベースに 〜
参考: Unix OS における Deep Module の例 • ファイル入出力は、5個の関数(システムコール)で成り立っている open
read write lseek close ファイルを開く ファイルから 読み込む ファイルへ 書き込む 読み書きする位置を 移動する ファイルを閉じる OS アプリケーション 物理デバイス(HDD / SDD)
OSSを「育てる」上で最も重要だと気づいたこと 「すべての貢献に、貢献者の名前を明記して感謝を伝えなさい」 (元 Firefox コミュニティマネージャーの友人からの助言) • リリースノートでのクレジット表記を徹底 ◦ バグ報告、機能提案、ドキュメント修正 …関わってくれた全ての人に感謝を
• 結果:リピート貢献率が明らかに向上! 自分の貢献が正当に評価されることが、次の貢献へのモチベーションに繋がる。
OSS 開発の原動⼒ 1. 「Cron地獄」のような課題への「怒り」 2. 利用者の声 3. 作品を育てる楽しさ
⾃分の作品を育てる
AI エージェントの活⽤ • Issue の要約と修正案の検討 • 要求事項のまとめ、Issue のドラフト作成 • Pull
Request の作成
⾃分⼀⼈が感じている課題は 実は世界の誰かも同じように感じている 海外 Dagu ユーザーとの情報交換ミーティング
ご清聴ありがとうございました まとめ • 課題発見: 日々の業務で感じる「不便」や「怒り」は、開発の最高の原動力になる。 • 継続のコツ : 小さく始め、目に見える達成感を毎週積み重ねて、モチベーションを維持 する。
• 設計思想: 「Deep Module」の思想で複雑性の増大を抑えるコードを書く。 • コミュニティ : 小さな貢献も見逃さず、すべてのコントリビューターに感謝と敬意を伝え る。