├── .github └── pull_request_template.md ├── README.md ├── articles ├── Eagle-Lo-Samsara │ └── README.md ├── Smart-Manufacturing-ML-Consultant-in-AWS-wei-chen │ └── README.md └── opensource-contribution-mindset │ └── README.md ├── mentor-projects-information ├── flyte.md ├── kuberay.md └── yunikorn.md ├── slides ├── Apache Polaris An Open Iceberg REST Catalog.pdf ├── Kafka Plugins.pdf ├── My Journey with Raspberry Pi WebRTC.pdf ├── os4y.pdf └── 如何把 committer 頭銜 zero-copy 到履歷上.pdf └── sponsor ├── README.md └── 募款徵集.pdf /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 源來適你資訊彙整 2 | 3 | ## 簡介 4 | 5 | By [蔡嘉平](本社群的老大): 6 | 7 | * 「源來適你」是一個鬆散的組織,所以如果有任何想了解或是疑問都可以直接提,千萬別客氣,畢竟可能也回答不出來。 8 | * 大方向我們是很被動的社群,你很積極 mentor 才會很積極,所以建議可以多花一些時間研究一下開源和專案的背景知識。 9 | * 開源這條路並不是一個顯學,尤其對學生而言乖乖去美國念書刷題面試才是最常見也最通用的方式。但如果你天生命格特殊,太多人走的路我不要,那麼就歡迎來走開源這條路。但是要注意,這裏雖然這裡有成功的案例,但有更多放棄的案例,你的特殊命格是否適合開源,最後都取決於你。 10 | * 這個社群其實是同溫層小圈圈,目標也不是要高流量帶貨或是造神吹捧,而是讓真的有熱情的人可以聚在一起互相取暖,簡單來說,我們目標不是讓眾人來成就社群,而是讓社群來幫助個人。 11 | * [創辦社群的心得文](https://www.facebook.com/share/p/15yTJm1JLd/) 12 | * [募款徵集](https://github.com/opensource4you/readme/blob/main/sponsor/%E5%8B%9F%E6%AC%BE%E5%BE%B5%E9%9B%86.pdf) 13 | * [社群經費使用一覽表](https://github.com/opensource4you/readme/blob/main/sponsor/README.md) 14 | * [從開源走向世界 從台灣影響國際](https://github.com/opensource4you/readme/blob/main/slides/os4y.pdf) 15 | 16 | ## 媒體報導 17 | 18 | * [戰鬥力最強的取暖小圈圈:專訪源來適你社群蔡嘉平](https://slat.org.tw/node/205?fbclid=IwY2xjawIsXO1leHRuA2FlbQIxMAABHT4jKg02mk6DzzeeobSQPUzG7a31n26YjXL_i6RmkR_EB_Yqbo70FbGo5w_aem_Vw-2uHZxyiOQ65BG8moIxw) - 軟體自由電子報 19 | * [kafka community spotlight: TAIWAN](https://bigdata.2minutestreaming.com/p/kafka-community-spotlight-taiwan?fbclid=IwY2xjawIsXM1leHRuA2FlbQIxMAABHY8a13JwK9wfnvk9XG_1SesFCROHFIWIY4mYdY20ES6OaTycjsHpjQDDZQ_aem_M2E-I46m1JuvkaChjtzhwA) - 2minutestreaming 20 | 21 | ## 參與者心得 22 | 23 | * [The Apache YuniKorn committer's path](https://medium.com/@chenyulin0719/the-apache-yunikorn-committers-path-800c614a2d66) 24 | * [2024 Apache CommunityOverCode 亞洲場遊記](https://chishengliu.com/zh-tw/posts/apache-communityovercode-asia-2024-coauthored/) 25 | * [貢獻開源並不難:我透過「源來適你」社群成為 Flyte 核心貢獻者! | 劉奇聖](https://chishengliu.com/zh-tw/posts/become-flyte-committer/) 26 | * [開源菜雞入門心得](https://medium.com/@Pupss_68096/%E9%96%8B%E6%BA%90%E8%8F%9C%E9%9B%9E%E5%85%A5%E9%96%80%E5%BF%83%E5%BE%97-fd54009ccf03) 27 | * [我的 Open Source 之路](https://frank-yang.medium.com/%E6%88%91%E7%9A%84-open-source-%E4%B9%8B%E8%B7%AF-97b264d771e4) 28 | * [參與 YuniKorn 貢獻的心得](https://www.facebook.com/share/p/1gg56eWQ73BPMtPo/) 29 | * [Open Source 開源社群的第一門課 | 如何成為 Apache Committer](https://byronhsu1230.medium.com/open-source-%E9%96%8B%E6%BA%90%E7%A4%BE%E7%BE%A4%E7%9A%84%E7%AC%AC%E4%B8%80%E9%96%80%E8%AA%B2-%E5%A6%82%E4%BD%95%E6%88%90%E7%82%BA-apache-committer-451d42e853d6) 30 | * [Flyte 開源之旅 — 從開始到現在](https://medium.com/@jasonlai1218/flyte%E9%96%8B%E6%BA%90%E4%B9%8B%E6%97%85-%E5%BE%9E%E9%96%8B%E5%A7%8B%E5%88%B0%E7%8F%BE%E5%9C%A8-efcf8afeb612) 31 | * [如何成為 Open Source Committer (Flyte) | 大學生 21 周心得分享](https://medium.com/@future-outlier/%E5%A6%82%E4%BD%95%E6%88%90%E7%82%BAopen-source-committer-flyte-%E5%A4%A7%E5%AD%B8%E7%94%9F21%E5%91%A8%E5%BF%83%E5%BE%97%E5%88%86%E4%BA%AB-c1c486af6a9c) 32 | * [普通人也能做到的 Open Source 開源一年 100+ PRs 完整指南 feat. 源來適你, Flyte](https://medium.com/@future-outlier/%E6%99%AE%E9%80%9A%E4%BA%BA%E4%B9%9F%E8%83%BD%E5%81%9A%E5%88%B0%E7%9A%84-open-source-%E9%96%8B%E6%BA%90%E4%B8%80%E5%B9%B4-100-prs-%E5%AE%8C%E6%95%B4%E6%8C%87%E5%8D%97-feat-%E6%BA%90%E4%BE%86%E9%81%A9%E4%BD%A0-flyte-87b1cc29f093) 33 | * [開源入門到加入夢幻新創!](https://medium.com/@troychiu/from-flyte-to-union-ai-%E9%96%8B%E6%BA%90%E5%85%A5%E9%96%80%E5%BF%83%E5%BE%97-6ca2dc4cd6e4) 34 | * [不尋常的找工作方式:我透過貢獻 KubeRay 開源專案找到美國跨國遠端軟體工程師職缺! | 劉奇聖](https://chishengliu.com/zh-tw/posts/join-anyscale-via-kuberay/) 35 | * [如何透過開源社群「源來適你」找到 Samsara 工作](./articles/Eagle-Lo-Samsara/README.md) 36 | * [從歷史系到阿帕契﹣轉職仔的開源之路](https://medium.com/@frankvicky/892f00a65474) 37 | * [從 0 成為 Apache Airflow Committer](https://blog.zhu424.dev/zh-tw/open-source-contribution/becoming-an-apache-airflow-committer-from-0/) 38 | * [Open Source 入門心得](https://medium.com/@blackcatoz12321/open-source-入門心得-8130d1bf76c2) 39 | * [Apache Ozone、4 個月、50 個 PR、40 個 PR Review、Committer](https://blog.peterxcli.dev/zh-tw/oss/ozone/becoming-an-ozone-committer) 40 | * [從開源新手到 Apache Gravitino Committer 的成長之路](https://medium.com/@e850506/%E5%BE%9E%E9%96%8B%E6%BA%90%E6%96%B0%E6%89%8B%E5%88%B0-apache-gravitino-committer-%E7%9A%84%E6%88%90%E9%95%B7%E4%B9%8B%E8%B7%AF-121e374026b6) 41 | 42 | ## 給學弟妹的矽谷 AI / Software 指南 (發起人:[許秉鈞](https://www.facebook.com/share/p/1Ay97TqXt8/)) 43 | 44 | 1. [全世界都在使用的 AI infra 開源專案 — Ray / KubeRay](https://medium.com/@kaihsunchen/%E5%85%A8%E4%B8%96%E7%95%8C%E9%83%BD%E5%9C%A8%E4%BD%BF%E7%94%A8%E7%9A%84-ai-infra-%E9%96%8B%E6%BA%90%E5%B0%88%E6%A1%88-ray-kuberay-ac1d08a98cb9) - 陳楷訓 (Anyscale) 45 | 2. [自動駕駛的演算法工程師是爽缺嗎?](https://u9534056.medium.com/自動駕駛的演算法工程師是爽缺嗎-863d06d28a52) - Rice Yang (Nvidia) 46 | 3. [如何挑選該加入哪個矽谷新創](https://morrishsu-94479.medium.com/如何挑選該加入哪個矽谷新創-8b5163dd9436) - Morris Hsu (Snorkel.ai) 47 | 4. [Harvester 開發日常與挑戰](https://medium.com/@brandboat/harvester-閒談-f914c421ff8f) - 曾冠博 (SUSE) 48 | 5. [智慧工廠與 AWS 機器學習顧問在做什麼?](./articles/Smart-Manufacturing-ML-Consultant-in-AWS-wei-chen/README.md) - Wei Chen (TSMC) 49 | 6. [自動駕駛的到來勢不可擋,但該如何保障其安全發展?](https://tywu13.medium.com/自動駕駛的到來勢不可擋-但該如何保障其安全發展-8739bc116ac4) - Tsang-Yung Wu (Tesla) 50 | 7. [關於加速ML,你需要知道的基本觀念](https://yuhsuan-t.medium.com/63b98ab7df15) - Yu-Hsuan Tseng (Nvidia) 51 | 8. [A Story of Database](https://medium.com/@0050211/a-story-of-database-53d02397df93) - Ryan Fu (Oracle) 52 | 9. [深掘推薦系統: 一窺 TikTok 底層演算法](https://medium.com/@frankshyu1994/%E6%B7%B1%E6%8E%98%E6%8E%A8%E8%96%A6%E7%B3%BB%E7%B5%B1-%E4%B8%80%E7%AA%BA-tiktok-%E5%BA%95%E5%B1%A4%E6%BC%94%E7%AE%97%E6%B3%95-1787289146b6) - 徐翊祥 (Tiktok) 53 | 10. [LINE — Data Engineer的日常](https://medium.com/@jasonlai1218/line-data-engineer的日常-a91324191b1c) - 賴仲哲 (LINE) 54 | 11. [一腳踏進自動駕駛軟體業](https://medium.com/momo的機器人留學夢/一腳踏進自動駕駛軟體業-2f4f7a1e7b50) - 莫絲羽 (Nvidia) 55 | 56 | ### From Database to Data Lakehouse (Ryan Fu) 57 | 58 | 1. [From Database to Data Lakehouse — Part 1](https://medium.com/@0050211/from-database-to-data-lakehouse-part-1-22a822faf9bb) 59 | 2. [From Database to Data Lakehouse — Part 2](https://medium.com/@0050211/from-database-to-data-lakehouse-part-2-d9bd1a383a06) 60 | 3. [From Database to Data Lakehouse — Part 3](https://medium.com/@0050211/from-database-to-data-lakehouse-part-3-9457004341be) 61 | 4. [From Database to Data Lakehouse — Part 4](https://medium.com/@0050211/from-database-to-data-lakehouse-part-4-ff062a9c24a3) 62 | 5. [From Database to Data Lakehouse — Part 5](https://medium.com/@0050211/from-database-to-data-lakehouse-part-5-4fabddec10f4) 63 | 6. [From Database to Data Lakehouse — Part 6](https://medium.com/@0050211/from-database-to-data-lakehouse-part-6-存儲裝置簡史-volume-2-925dd6ffbeab) 64 | 65 | ## 投影片&科技散文 66 | 67 | 1. [如何把 committer 頭銜 zero-copy 到履歷上](https://github.com/opensource4you/readme/blob/main/slides/%E5%A6%82%E4%BD%95%E6%8A%8A%20committer%20%E9%A0%AD%E9%8A%9C%20zero-copy%20%E5%88%B0%E5%B1%A5%E6%AD%B7%E4%B8%8A.pdf) 68 | 2. [KAFKA-19898 Optimize FileRecord#searchForOffsetWithSize](https://www.facebook.com/share/p/16QjxzVseZ/) 69 | 3. [KIP-1140: Avoid to return null value in Map from public api of consumer](https://www.facebook.com/share/p/1DVS4P86vS/) 70 | 4. [KAFKA-18225 ClientQuotaCallback#updateClusterMetadata is unsupported by kraft](https://www.facebook.com/share/p/1AZUYTzYpk/) 71 | 5. [KAFKA-806: Index may not always observe log.index.interval.bytes](https://www.facebook.com/share/p/1FTExkewgy/) 72 | 6. [KAFKA-17747: Trigger rebalance on rack topology changes](https://www.facebook.com/share/p/12JG3wPUD9L/) 73 | 7. [Kafka Plugins](https://github.com/opensource4you/readme/blob/main/slides/Kafka%20Plugins.pdf) 74 | 8. [review 的重要性](https://www.facebook.com/share/p/19bCy4hH47/) 75 | 9. [KIP-1150 的背景](https://www.facebook.com/share/p/15PhGgd2t8/) 76 | 10. [如何當一個好的contributor](https://www.facebook.com/share/p/1Kvwy9uU7u/) 77 | 11. [科技公司的職涯](https://www.facebook.com/share/p/1915wcBDeY/) 78 | 12. [Kafka 3.9.1 release](https://www.facebook.com/share/p/1BZfzctfEG/) 79 | 13. [YuniKorn auto-scaling](https://www.facebook.com/share/p/14oBGGD97E/) 80 | 14. [Kafka internal configs](https://www.facebook.com/share/p/1LDDS4Q8HN/) 81 | 15. [Kafka producer interceptor](https://www.facebook.com/share/p/15UygHeLP9/) 82 | 83 | ## 科技開講 84 | 85 | * 時間:台灣時間週六早上 10:00~11:00 86 | * 內容:邀請台灣和美國矽谷的業界人士來分享,主題橫跨技術、職涯、八卦、管理、教育等各種和開源軟體有關的話題。 87 | 88 | ### 講者投影片 89 | 90 | 1. [JetBrains IDE 微醺夜 - IDE 操作技巧分享](https://gist.github.com/shengyou/e09159e3ac4fb260172039bbe888d0e9) 91 | 2. [Apache Polaris: an Open Source Iceberg REST Catalog](https://github.com/opensource4you/readme/blob/main/slides/Apache%20Polaris%20An%20Open%20Iceberg%20REST%20Catalog.pdf) 92 | 3. [My Journey with Raspberry Pi WebRTC](https://github.com/opensource4you/readme/blob/main/slides/My%20Journey%20with%20Raspberry%20Pi%20WebRTC.pdf) 93 | 94 | ## 書本讀書會 95 | 96 | * 時間:台灣時間週三 20:30~21:30 97 | * 內容:大家一起讀一本書,輪流報告書裡的或是書外的補充知識 98 | * 主持人:呂明翰 99 | 100 | ## ML讀書會 101 | 102 | * 時間:台灣時間週六 9:30~10:00 103 | * 內容:選讀 ML 相關的技術文章 104 | * 主持人:陳楷訓、劉奇聖 105 | 106 | ## Data streaming event 讀書會 107 | 108 | * 時間:台灣時間週四 20:30~21:30 109 | * 內容:選讀 Kafka 相關的技術文章 110 | * 主持人:蔡嘉平 111 | 112 | ## 目前有 Mentor 帶的專案 113 | 114 | Public channel 可以直接加入,Private channel 的話要講一下才會把你加進去,非常建議自己先研究想做什麼專案,對自己負責。 115 | 116 | * Apache Kafka 117 | * 118 | * 語言:Java 119 | * 頻道: [#apache-kafka] 120 | * 主要 mentor:[蔡嘉平] 121 | * Apache YuniKorn 122 | * 123 | * 語言:Golang 124 | * 頻道: [#apache-yunikorn] 125 | * 主要 mentor:[陳昱霖]、[蔡嘉平]、[黃廷堯] 126 | * Apache Gravitino 127 | * 128 | * 語言:Java / Python 129 | * 頻道: [#apache-gravitino] 130 | * 注意:每月2次的社区中文会议,还有星巴克咖啡☕️喝 131 | * 主要 mentor:[刘勋] 132 | * Apache Airflow 133 | * 134 | * 語言:Python 135 | * 頻道:[#apache-airflow] 136 | * 主要 mentor:[Zhe You (Jason) Liu] [李唯] 137 | * Meme Bot: [李唯] 138 | * 新人必讀: 139 | * Apache Ozone 140 | * 141 | * 語言:Java 142 | * 頻道:[#apache-ozone] 143 | * 主要 mentor:[李仲恩] [李緒成] 144 | * Apache Datafusion 145 | * 146 | * 語言:Rust 147 | * 頻道:Private,請先表達貢獻意願後會收到入群邀請 148 | * 注意:主要目的為技術交流討論,無明確 Mentorship 149 | * 主要 mentor:[Jay Zhan] 、[謝東霖]、[劉立行] 150 | * Apache Ambari 151 | * 152 | * 語言:Java 153 | * 頻道:[#apache-ambari] 154 | * 主要 mentor:[Jesse] 155 | * Flyte (Linux Foundation) 156 | * 157 | * 語言:Golang + Python 158 | * 頻道: Private,來 [flyte slack channel](https://slack.flyte.org/) 自我介紹,tag Kevin Su, Han-Ru Chen, 以及 Troy 後,會把你拉進頻道 159 | * 主要 mentor:[蘇桓平]、[陳翰儒] 160 | * KubeRay & Ray(主要以 KubeRay 為主) 161 | * 162 | * 163 | * 語言:Golang (KubeRay)、Python + C++(Ray) 164 | * 頻道: Private,請表達想做的意願之後由 mentor 認領 165 | * 主要 mentor:[陳楷訓]、[劉奇聖] 166 | * [更多資訊](./mentor-projects-information/kuberay.md) 167 | * Liger-Kernel 168 | * 169 | * 語言:Python, Triton 170 | * 注意: 171 | * 需要 A100 以上等級的 GPU 才能跑(可在 lambda labs 便宜租借 GPU) 172 | * 最近 mentor 比較忙,沒空帶人,但是如果自己有辦法 pick up 的話會幫你 review PR 173 | * 頻道:[#liger-kernel] 174 | * 主要 mentor:[許秉倫] 175 | * commitizen-tools 176 | * 177 | * 語言:Python 178 | * 頻道:[#commitizen] 179 | * 主要 mentor:[李唯] [熊大] 180 | * 新人必讀: 181 | * 注意: 182 | * 三個 maintainers 都蠻忙的,看的速度有點慢🥲 183 | * 主要是維護 ,這裡的 PR, issues 相對有人在看。其他的 sub projects 也很重要,但通常貢獻比較少,我們的關注也稍微低,如果不小心漏掉,可以 tag [李唯]。 184 | 185 | ## 新手上路系列 186 | 187 | * [貢獻開源專案應有的心態](./articles/opensource-contribution-mindset/README.md) 188 | * [開源貢獻新手指南](https://chishengliu.com/zh-tw/series/%E9%96%8B%E6%BA%90%E8%B2%A2%E7%8D%BB%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97/) 189 | 190 | ## 公開演講 191 | 192 | * [NTUEE x Apache 開源系列講座 | 蔡嘉平 | Kafka Commiter, HBase PMC | 地方工程師渴望的大舞台 - Apache 開源專案](https://www.youtube.com/live/ltH3DcizGuI) 193 | * [NTUEE x Apache 開源系列講座 | 葉祐欣 | ASF member, Apache Bigtop PMC member | 非常人走非常路:參與 ASF 打世界杯比賽](https://www.youtube.com/live/YzWL5PlUx4s) 194 | * [為什麼資工系需要不平等優勢? | 翰儒 陳 | TEDxNTNU](https://youtu.be/aV-Pvb-qmC0) 195 | 196 | ## Podcast (with [Josh](https://www.linkedin.com/in/joshyeh/)) 197 | 198 | * [源來適你 Podcast](https://podcasts.apple.com/tw/podcast/%E6%BA%90%E4%BE%86%E9%81%A9%E4%BD%A0/id1674730463) 199 | 200 | ## 各種連結 201 | 202 | * [Facebook 粉絲團](http://fb.opensource4you.tw) 203 | * [加入 Slack 頻道](http://slack.opensource4you.tw) 204 | * [一些 Q&A](https://www.facebook.com/share/p/HWonrVV4eX3bE1za/) 205 | * [Google 行事曆訂閱](http://calendar.opensource4you.tw) 206 | * [2024 鐵人賽](https://ithelp.ithome.com.tw/2024ironman/signup/team/365) 207 | 208 | 209 | [蔡嘉平]: https://opensource4you.slack.com/team/U050DD45D8W 210 | [陳昱霖]: https://opensource4you.slack.com/team/U054DLDQ5TK 211 | [刘勋]: https://opensource4you.slack.com/team/U06C9SHNYCF 212 | [Zhe You (Jason) Liu]: https://github.com/jason810496 213 | [李唯]: https://opensource4you.slack.com/team/U0578610N8Y 214 | [李仲恩]: https://opensource4you.slack.com/team/U0543FN6W68 215 | [李緒成]: https://opensource4you.slack.com/team/U0745G8DYRW 216 | [Jay Zhan]: https://opensource4you.slack.com/team/U056WNB4QTE 217 | [謝東霖]: https://opensource4you.slack.com/team/U0511ETN3T6 218 | [劉立行]: https://opensource4you.slack.com/team/U05PDKL13DK 219 | [蘇桓平]: https://opensource4you.slack.com/team/U050WSFCVC3 220 | [陳翰儒]: https://opensource4you.slack.com/team/U057WFZ09TP 221 | [陳楷訓]: https://opensource4you.slack.com/team/U050V5VN4HH 222 | [劉奇聖]: https://opensource4you.slack.com/team/U06CSLLGQNR 223 | [許秉倫]: https://opensource4you.slack.com/team/U050YR3QCUB 224 | [黃廷堯]: https://opensource4you.slack.com/team/U051KFFF0C9 225 | [Jesse]: https://opensource4you.slack.com/team/U052A46DX6F 226 | [熊大]: https://opensource4you.slack.com/team/U057L1EKP47 227 | [#apache-kafka]: https://opensource4you.slack.com/archives/C06MSQ9V4F3 228 | [#apache-yunikorn]: https://opensource4you.slack.com/archives/C05PH5KB7NZ 229 | [#apache-gravitino]: https://opensource4you.slack.com/archives/C07473LAC15 230 | [#commitizen]: https://opensource4you.slack.com/archives/C08UT4GTJGL 231 | [#apache-airflow]: https://opensource4you.slack.com/archives/C07D4L435B5 232 | [#apache-ozone]: https://opensource4you.slack.com/archives/C07PLV9QNLF 233 | [#apache-ambari]: https://opensource4you.slack.com/archives/C08NK92JYSC 234 | [#liger-kernel]: https://opensource4you.slack.com/archives/C083T0MQM9C 235 | -------------------------------------------------------------------------------- /articles/Eagle-Lo-Samsara/README.md: -------------------------------------------------------------------------------- 1 | 如何透過開源社群「源來適你」找到工作 2 | --- 3 | 4 | 大家好,我是[羅昱翔](https://www.linkedin.com/in/yu-hsiang-eagle-lo/),目前在 CMU 攻讀 Data Science。這篇文章想分享我如何利用開源社群找到實習的經驗。 5 | 從去年 8 月到今年 1 月,我投了 389 份職缺。上半年幾乎沒有拿到面試機會,少數面試也憑實力被拒。直到後來加入了「源來適你」社群,由楷訓帶領的 KubeRay 組,開始接觸開源,才讓我的履歷、經歷與技術能力提升。更重要的是,我因此建立了一些關鍵的 connection,開始接觸更多潛在的工作機會。最終,我成功憑藉開源經驗拿到了 CrowdStrike MLE Intern 和 Samsara SWE Intern 的 Offer。 6 | 7 | 為什麼開源社群能幫助求職? 8 | --- 9 | 1. **Resume Boost**: 美國求職市場非常看重開源經驗,履歷上有參與開源專案,甚至有貢獻,絕對是加分項,能讓你的經歷更有說服力。 10 | 2. **搞清楚要做什麼**: 剛來美國時,最困惑的就是軟體工程的範疇太廣,不知道該專注在哪一塊。接觸開源後,才慢慢確定自己的方向,往 ML Infra 和 Data Engineering 發展。 11 | 3. **建立人脈(Connection)**: 開源社群裡有來自各大公司的工程師,很多人都願意內推。此外,因為開源專案與許多公司合作,你很容易獲得與企業接觸的機會。 12 | 13 | 我的經歷 14 | --- 15 | 1. **CrowdStrike MLE Intern Offer**: 在 Tech Interview 時,我提到自己有 KubeRay 的經驗,結果面試官表示他們剛好在評估是否要將 KubeRay 引入系統。於是,後續整個面試過程幾乎都在聊 KubeRay,完全沒有考我原本比較擔心的 ML System Design,最後順利通過 Tech Round 和 Behavioral Round,拿到 Offer。 16 | 2. **Samsara SWE Intern Offer**: 我在「源來適你」參與的組別是楷訓帶的 KubeRay,剛加入時正好有讀書會,每週分享各家公司如何在 ML Infra 中使用 KubeRay。當時我對這塊還不熟,但決定挑戰自己,試著報告。研究過程中,我發現 Samsara 在 AI + IoT 領域的產品非常有創意,技術挑戰性高,公司成長也不錯,於是對這家公司產生興趣。 17 | 後來聽說有同學拿到 Samsara 面試,我便向他要了 HR 的 Email,主動寄了兩次信。第二次 HR 回覆說,他很欣賞這種 Proactive 的態度,並立刻發了 OA。 18 | 整個流程是 OA → Phone Screen → Tech → BQ。Samsara 的 Tech Round 難度不高,但 Phone Screen 和 Behavioral Round很容易被刷掉。而因為我之前就已經研究過 Samsara,甚至有參與他們 tech stack tool 的開源,這段經歷讓我在這兩輪都答的很對面試官胃口,最後順利拿到 Offer。 19 | 20 | 結語 21 | --- 22 | 其實發這種找工文有點赤裸,但還是想趁機 Shout out 這個優質的開源社群!可以培養台灣軟體工程師實力、加強履歷,還可以建 Connection 和拓展視野,我覺得想要追求更高職涯發展的台灣軟體工程師應該要好好利用這個機會。 23 | 另外,他們最近剛開設了捐款帳戶,如果有餘力支持台灣的軟體工程師社群,歡迎點這個[連結](http://sponsor.opensource4you.tw)贊助~ 24 | 25 | [英文原文](https://www.linkedin.com/posts/yu-hsiang-eagle-lo_intern-samsarabound-samsara-activity-7295512603064180738-a623?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAABZ8uLgBJb6UvwqFXaNYL_757iPVtYGrECE) 26 | -------------------------------------------------------------------------------- /articles/Smart-Manufacturing-ML-Consultant-in-AWS-wei-chen/README.md: -------------------------------------------------------------------------------- 1 | [《給學弟妹的矽谷 AI / Software 指南》](https://medium.com/@adrianhsu/%E7%B5%A6%E5%AD%B8%E5%BC%9F%E5%A6%B9%E7%9A%84%E7%9F%BD%E8%B0%B7-ai-software-%E6%8C%87%E5%8D%97-da054b7a8dcb) 是一個矽谷工程師自發的眾籌寫作計劃,由[源來適你](https://www.facebook.com/opensource4you)社群推動。 2 | 這將是一個在台灣軟體學生圈內很有影響力的文章系列。已有 >10 篇準備發布,目標 100 篇並出書,歡迎 tag 強者大神來寫! 3 | 4 | --- 5 | 作者:[Wei Chen](https://www.linkedin.com/in/wei1) 6 | 7 | 聯絡方式:weichen@apache.org 8 | 9 | --- 10 | 智慧工廠與 AWS 機器學習顧問在做什麼? 11 | --- 12 | 13 | **產業背景:技術堆疊、框架與系統設計概述** 14 | 15 | 製造業的核心涵蓋了規格制定,產品設計,到生產與供應鏈管理的整個流程。在人們導入智慧製造的過程中,機器學習工程師運用 AI/ML 技術來提升各個環節的效率。在理想的情況下,所有系統都能夠無縫整合,打造出一座「智慧工廠」,不僅能收集並分析商業決策指標,還能優化生產、探索次世代設計、預測風險、修復缺陷並降低成本。 16 | 17 | 目前,大多數企業都以 Python 為 AI/ML 的核心語言,並採用容器化架構來部署應用。不同容器負責不同 AI/ML 問題,使用各自的 Python 依賴環境。之前在 AWS 擔任 ML 顧問的時候,我們會需要應用不同的技術來跟客戶的現有架構整合,例如如果客戶都是使用 PyTorch 那我們就用 PyTorch。若客戶尚未建立自己的 ML 基礎建設,我可能會建議從簡單的方案開始,例如 XGBoost。 18 | 19 | **工作內容與職位特質** 20 | 21 | 我之前在 AWS ProServe 擔任高級數據科學家,主要的工作是幫 AWS 的客戶打造 AI/ML 原型 (JD 範例)。這份工作就像是一家掛著 Amazon 品牌的 AI 顧問公司,當其他公司試著使用 AI 在業務上面,並且失敗了的時候,我們就會出場來拯救世界。 22 | 23 | 我們的角色必須是全方位專才,兼具產品管理、商業分析、數據科學、AI/ML 實作,以及將 ML 的應用推進到正式生產的能力。每一個工作都是一場硬仗,充滿挑戰與壓力,但換來的是飛快的成長。AWS 客戶想要實作的通常是最尖端與困難的技術,而且除了對最新技術的掌握,在這個職位因為需要常常與各個客戶討論,對於全球市場也都會有所了解。 24 | 在面試時,我最關心的兩件事是: 25 | 1. 你有沒有實際將 ML 解決方案部署到正式環境的經驗? 26 | 2. 你能不能在不同團隊或企業之間清楚表達技術觀點,利用溝通來推動專案進展? 27 | 28 | 在履歷裡面,我會希望能夠看到:「我做了什麼,來解決什麼問題,並帶來什麼效益。」只要把這些成果描述好,不需要自己主動找工作,機會就會自己找上門。 29 | 30 | **台灣的機會:課程、職位、實習與專案** 31 | 32 | 台灣一直是全球製造業的重要樞紐。最近十幾年來,許多製造企業都在積極投入 AI/ML 技術,以提升生產效率,所以相關的機會不少。 33 | 34 | 以學校來說:「樣型識別」或「機器學習」等課程都能夠奠定技術基礎,但身為技術顧問最關鍵的能力仍然是溝通,而且數據科學最重要的價值,是來自於如何將領域知識與數據緊密結合。如果你在學期間能夠透過課程專案或碩士論文參與 ML 相關專案,這會加不少分,對大多數公司的智慧製造職務都能夠勝任。 35 | 36 | 但是如果你的目標是 AWS ProServe 的數據科學家,學校畢業生的機會並不大。你會需要累積足夠的產業經驗,並證明你能夠跨部門、跨企業溝通,成功交付與管理複雜的 ML 專案。 37 | 38 | **專案案例:挑戰與解決方案** 39 | 40 | 這裡分享一個我們運用深度強化學習 (Reinforcement Learning, RL) 來優化某個製造業的生產排程系統的專案。這家企業的內部 ML 團隊已經努力了 5 年,但仍然無法找到利用機器學習來顯著改善排成系統效能的方法,最後他們決定跟 AWS ProServe 合作,進行一項實驗性專案來做一次新的嘗試。 41 | 42 | 這個題目的困難點在於,所有可能的生產排程組合多達 10^90 種,利用搜尋優化的方法也很難找到最佳解,高複雜度也使得機器學習模型很難有效的收斂。為了解決這個問題,我們採取了一系列策略: 43 | 1. 在類神經網路模型加上跨層的連線,讓模型能夠在關鍵的資訊上能夠更快地找出趨勢,類似 ResNet 概念。 44 | 2. 採用遞迴式神經網路 (RNN),確保結果的連續性,提升排程穩定性。因為更換排程會對產線操作員帶來額外的負擔。 45 | 3. 使用 Actor-Critic RL 架構,分離「行動選擇」與「狀態評估」,讓模型學習更平衡。 46 | 4. 加入許多 Domain Knowledge 的規則,防止模型學習到不合理的行為,並在 RL 模擬環境中提供行為違規回饋。 47 | 5. 利用歷史數據訓練回歸模型,並將權重轉移至 Critic 網路 (Transfer Learning),以此來加快模型收斂速度。 48 | 6. 進行大量特徵工程,篩選關鍵特徵,降低噪音,提高學習效果。 49 | 7. 設定訓練檢查點 (Check Point),確保模型朝正確方向收斂,加速實驗週期。 50 | 8. 運用 AWS 基礎設施並行實驗,最大化 ML 模型效能,並透過建立經驗池 (Experience Pool) 共享不同模型的學習成果 (Meta Learning)。 51 | 52 | 短短 4 個月內,我們從零開始啟動 ML 專案,與業務團隊合作取得專案機會、與客戶領域專家探討生產排程流程、與工廠管理者建立 RL 模擬器、與數據工程師收集與理解數據,並獨立完成數據科學與 ML 工程,最後舉辦工作坊,向客戶公司的決策層交付專案成果。 53 | 54 | **趨勢與職涯發展:樂趣與機會** 55 | 56 | 這份工作最吸引我的地方,就是能夠站在產業最前線,親眼見證 AI/ML 在各大企業的應用與發展方向。 57 | 58 | 作為 AWS ML 顧問,我們只會接觸大型企業的專案,因為只有當議題足夠關鍵、內部團隊無法解決時,他們才會尋求外部支援。因此,我們面對的每個專案都是困難而且重要的問題,成功解決這些問題也會相對帶來大量的成就感,常常覺得為什麼自己可以這麼強。 59 | 60 | AI/ML 的浪潮至少還會持續十幾年,因為數據科學的價值並不只是技術突破,而在於如何與領域知識結合,這個過程始終需要時間去累積與優化。 61 | 62 | 這份職位為未來職涯開啟了無限可能——你可以繼續擔任顧問,回歸技術當工程師,走向商業管理,也可以深入特定技術領域,成為專家。 63 | 64 | **結論:推薦** 65 | 66 | 如果你想親身參與產業變革、挑戰最難的問題、並在這些挑戰中累積無可取代的經驗,AWS 智慧製造機器學習顧問是一個絕佳的機會! 67 | 68 | 這趟旅程會很艱難,可能會有無數的挫折,但我覺得非常值得! 69 | -------------------------------------------------------------------------------- /articles/opensource-contribution-mindset/README.md: -------------------------------------------------------------------------------- 1 | # 貢獻開源專案應有的心態 2 | 3 | 這邊蒐集了散落在各處的社群成員關於貢獻開源專案應有的心態的看法,包含 Slack 的訊息或是 FB 的貼文等,內容若提到個人的資訊會被改寫掉。 4 | 5 | ## 開源貢獻流程 6 | 7 | - 作者:陳楷訓 8 | - 背景:有新手說想要在暑假的 75 天內挑戰成為 Apache 其中一個專案的 Committer。 9 | 10 | 我自己的經驗 75 天成為 committer 在多數專案是不太可能的,通常搞開源流程是這樣: 11 | 12 | (1) 先解決一些只有一種解法的問題 ex: 修 doc / 簡單 bug / 加 test,並且質量要很高,社群 maintainer 才會願意幫你 review,基本上一個新的 contributor 的 PR review 花的時間,通常 maintainer 可以做好幾遍,並且質量更好。就算是大科技公司的工程師開的 PR 也是如此。 13 | 14 | (2) 你在 (1) 有一定累積以後,開始找一些簡單但有超過一種解法的問題,然後開 issue 說明自己對各種解法的看法,並跟 maintainer 討論,again 基本上 maintainer 自己做會遠比討論有效率,因此寫的 issue 要有料、並且覺得你有潛力,maintainer 才比較有機會願意跟你討論。 15 | 16 | (3) 當你 (2) 有一定累積,接下來可能可以自己獨立判斷 (2) 這種簡單問題,哪種方案比較好,這樣你解決簡單問題週期會變快,有些情況如果該問題有一個答案遠比其他方案好,甚至可以直接開 PR。 17 | 18 | (4) 你在 (2)(3) 的過程中,會累積一些對於這個專案的 context,同時可以去 review 一些 PR / 回答社群的問題,同樣必須是高質量的 review,maintainer 大概可以知道你有沒有料。 19 | 20 | (5) 等你 (4) 做到很好,有某方面相關問題 / PR,社群第一個會想到你的時候,maintainer 可能會開始把一些沒這麼緊迫,但比較開放性的問題交給你。這些問題同樣規模不會很大。 21 | 22 | (6) 當你 (5) 做到一定程度,你完全和社群 build trust,才會將比較重要的 feature 給你做。 23 | 24 | 通常 (6) 累積一定才算是在社群有一席之地,可能成為 committer,有些專案可能會希望你 initiate 一個新的 module 才算有足夠 impact。 25 | 26 | 我個人 mentor 過 20+ 人做開源,真的自己走 (1) ~ (6) 的只有一位,其他成為 committer 有一部分原因是我和其他 mentors,強行幫這些 mentee 真氣灌頂,直接跳過 (1)(2)(3)(4),直接開始 (5)(6),而這些 (5) 又是我們 well-defined 好的東西。 27 | 28 | 我覺得大三開始接觸開源已經是很好的開始,暑假可以先把目標訂在把 (1)(2) 做好,你時間還很多,可以慢慢往 (3)(4)(5)(6) 靠近。 29 | 30 | ## 我要先學完 XXXX,才能開始 YYYY? 31 | 32 | - 作者:陳楷訓 33 | - 背景:有一位學生說他要把 XXX 課程學完之後再來開始貢獻開源專案 34 | 35 | 分享一些我的小經驗分享,我發現通常「我要看完 XXXX,才能開始 YYYY」,這種 mindset 通常在學生時期修課 / 準備考試比較有用,對於做研究 / 開源 / 工作,這會讓效率降低很多,研究 / 開源 / 工作,建議: 36 | 37 | (1) 容忍未知事物 (black box),並且使用它 38 | 39 | (2) 找到你可以理解 / 並且你可以立刻做出貢獻的地方 40 | 41 | 像是我大學做研究時,有些研究生跟我一起做研究,很常有人說,自己看得 paper 不夠多,不能開始做研究,然後就看了一年,碩二還是不知道要幹啥,我大學生論文都發完了。 42 | 43 | 開源也是,我自己做開源是: 44 | 45 | (1) Submarine 時期:先學 XX,想辦法找地方給他用上 (ex: 看了 k8s 課程一小部分,找哪裡可以用上) 46 | 47 | (2) 現在:現在經驗比較多,skillset 也相對全,就算是看似我沒有 context knowledge 的專案,我也可以很快找到我已經有 skillset 我可以理解的地方開始貢獻,像是我對 inference 內部不太理解,但是我去玩 SGLang 的時候還是可以順手水幾個 PRs,因為我可以找到我會的東西。 48 | 49 | 總之,學習盡量要目的導向 ex: 我要解決什麼問題,而解決這些問題 XX 是必要知識,所以我去學 XX 50 | 51 | ## 想學習一個library或其他CS相關知識時,你們會直接看documentation嗎? 52 | 53 | - 作者:鄭黃翔 54 | - 背景:有人提文說「聽聞很多人都建議看documentation,但自己讀起來覺得太細而且太耗時間」 55 | 1. 如果一個 library scope 很限定,譬如說 GeoHash, 那麽我大概會先看看他的單元測試 (unit tests) 的範例,快速了解一下這個 library 在幹嘛。通常看完也差不多懂了 56 | 2. 如果一個 library scope 比較大,譬如說 [Functional Java](https://github.com/functionaljava/functionaljava),那個除了單元測試以外,搭配文件是必要的,這樣才能比較徹底了解用處。然而,就跟學英文一樣。我們比較不會把字典背起來,才來想怎麼說英語。可以反過來操作,遇到應用場景,再去深入了解。 57 | 3. 我以一個特定的應用舉例: 資料庫。理論部分可以看 YouTube 教材/教科書。但實際上應用會選定一個特定的資料庫,譬如說 PostgreSQL。然而一個成熟的資料庫,例如 PostgreSQL,功能實在太多了,我一輩子也看不完。所以跟嘉平說的一樣,先找一個實際上用得到的案例開始,然後試試看文件上的範例。真的有需要進入細節,再去看更深入的材料就好。 58 | 4. 當然也有很多江湖傳言,說某某駭客從小就看 Linux manual 長大,我是覺得不用這樣啦。特別是 T 大資工系經常有很多傳說,這些傳說不是非常適合剛剛加入新手村的朋友放在心上 59 | -------------------------------------------------------------------------------- /mentor-projects-information/flyte.md: -------------------------------------------------------------------------------- 1 | # Flyte 2 | 請在 [Flyte Slack Channel](https://slack.flyte.org/) 這邊 tag 因為 XXX Mentor 而進來貢獻 3 | 4 | EX: 5 | 6 | 蘇桓平:Kevin Su 7 | 8 | 陳翰儒:Han-Ru Chen 9 | 10 | 邱譯:Troy 11 | 12 | Tag 完成之後,Mentor 會私訊你進入 Flyte 私人群組,Union 籃球隊 13 | 裡面會有貢獻的新人指南,就可以一起貢獻了! 14 | -------------------------------------------------------------------------------- /mentor-projects-information/kuberay.md: -------------------------------------------------------------------------------- 1 | # KubeRay 2 | 3 | ## 相關資訊 4 | 5 | * [KubeRay project tracker](https://docs.google.com/document/d/1Q78Ny7KpTVOleB51-Tb1fewIDMm9msCTG4kDdWonwiQ/edit) 6 | * 如果需要權限請找陳楷訓 7 | 8 | ## 注意事項 9 | 10 | * 問問題盡量在 channel 裡面問,不要私訊,避免 mentor 需要重複回答類似的問題 11 | * Pull request template 裡面的 `Closes #1234`,那個 `Closes` 是有意義的,會把 PR 和對應的 issue link 起來,讓 PR 被 merge 之後 issue 會自動關掉,請不要自己省略掉。 12 | 13 | ## FAQ 14 | 15 | * 想貢獻 [Ray](https://github.com/ray-project/ray) 可以嗎? 16 | * 可以,但是 Ray 的 PR 目前 mentor 們沒有 merge 的權限,而 KubeRay 楷訓有 merge 的權限,比較好帶人,故以 KubeRay 為主。如果想貢獻 Ray 的話,發了 PR 之後可以跟楷訓講,他會找人幫你 review。 17 | 18 | ## KubeRay 新手上路 19 | 20 | * 如果是超級開源新手,不熟悉正常開源專案怎麼發 PR、怎麼 sync upstream 之類的,請先看[開源貢獻新手指南](https://chishengliu.com/zh-tw/series/%E9%96%8B%E6%BA%90%E8%B2%A2%E7%8D%BB%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97/) 21 | * 把 [ray](https://github.com/ray-project/ray) 和 [kuberay](https://github.com/ray-project/kuberay) 這兩個 repo star、fork、clone,並執行完上面那篇文章的初始流程 22 | * 如果不熟悉 Kubernetes,請自己找教學稍微學一下,網路上面資源很多,至少需要懂基本的 Pod、Deployment、Service 之類的 23 | * 如果不熟悉 Kubernetes Operator,以下是一些閱讀資源 24 | * [Kubernetes Operator (Controller) 教學系列文(寫到一半)](https://chishengliu.com/zh-tw/series/kubernetes-operator-controller-%E6%95%99%E5%AD%B8/) 25 | * https://cloudark.medium.com/kubernetes-custom-controllers-b6c7d0668fdf 26 | * https://www.linkedin.com/pulse/kubernetes-custom-controllers-part-1-kritik-sachdeva/ 27 | * https://www.linkedin.com/pulse/kubernetes-custom-controller-part-2-kritik-sachdeva/ 28 | * https://blog.csdn.net/yanchendage/article/details/134310876 29 | * 試著 compile 並執行 unit tests 和 e2e tests,`pre-commit` hook 也記得裝一下 30 | * https://github.com/ray-project/kuberay/blob/master/ray-operator/DEVELOPMENT.md 31 | * 試著跑 RayCluster、RayJob、RayService 32 | * https://docs.ray.io/en/latest/cluster/kubernetes/getting-started.html 33 | * 看一下怎麼 build Ray 的 documentation(doc 修改的 PR 是發在 ray 的 repo,不是 kuberay) 34 | * https://docs.ray.io/en/latest/ray-contribute/docs.html 35 | * 請用 `conda` 不要用 `venv` 36 | * 請用 `make develop` 不要用 `make local` 37 | * Build 完之後會有一個 `_build` 的資料夾,執行 `python -m http.server --directory _build/html` 然後就可以去 `localhost:8000` 看到 doc 38 | 39 | ## Ray 新手上路 40 | 41 | 42 | * 找一台比較好的機器,不然要 build 很久 43 | * 照著[這個 doc](https://docs.ray.io/en/master/ray-contribute/development.html#preparing-to-build-ray-on-linux) 裝一下 dependencies 44 | * [Additional dependencies](https://docs.ray.io/en/master/ray-contribute/development.html#installing-additional-dependencies-for-development) 順便也裝一下 45 | * 裝 [pre-commit hook](https://docs.ray.io/en/master/ray-contribute/development.html#pre-commit-hooks) 46 | * 照著[這個 doc](https://docs.ray.io/en/master/ray-contribute/development.html#building-ray-on-linux-macos-full) build 一次完整的 Ray 47 | * 只有第一次 build 的時候需要用 `pip install` 的方式 build,之後都是用 `bazel build -c fastbuild //:ray_pkg` 即可 48 | * https://docs.ray.io/en/master/ray-contribute/development.html#fast-debug-and-optimized-builds 49 | * 一些比較常用的指令可以參考[奇聖的 Ray 指令 cheatsheet](https://github.com/MortalHappiness/dotfiles/blob/main/dot_local/share/navi/cheats/exact_personal-cheatsheets/projects/ray.cheat) 50 | * [其他雜記](https://chishengliu.notion.site/Ray-17e6c9db49d480ffb47af4a72d2a3564?pvs=4) 51 | -------------------------------------------------------------------------------- /mentor-projects-information/yunikorn.md: -------------------------------------------------------------------------------- 1 | # Apache YuniKorn 2 | (本文件是 源來適你 Slack YuniKorn channel 畫板的備份, 最新資訊請參見 Slack) 3 | 4 | ## 相關資訊 5 | * https://yunikorn.apache.org/community/get_involved/ 6 | * https://yunikorn.apache.org/community/how_to_contribute 7 | * 源來適你 YuniKorn 每週五 Syncup 會議 (訂閱`源來適你`的行事曆, 主要聊天, 次要討論問題) 8 | 9 | ## 新手上路 10 | 11 | **Q: 我剛加入, 該從哪裡開始** 12 | 1. Create K8S Environment (In kind) 13 | 2. 跑完 [Quick Start](https://yunikorn.apache.org/docs/next/) 14 | 3. 讀完 [Contributor Guide](https://yunikorn.apache.org/community/how_to_contribute) 15 | 4. [Create Jira account](https://yunikorn.apache.org/community/how_to_contribute#jira-signup) 16 | 5. 讀完 [YuniKorn Shim](https://github.com/apache/yunikorn-k8shim) 的 Readme.md 17 | 6. 讀完其他子專案的 Readme.md (yunikorn-core,yunikorn-release,yunikorn-web,yunikorn-site) 18 | 7. Run E2E Test (In YuniKorn Shim) 19 | 8. Build YuniKorn Shim, deploy 到你的 Kind 環境 20 | 9. 在 [Core ClusterContext.schedule()](https://github.com/apache/yunikorn-core/blob/87b1d7cf4d083fca75ea389ca025327b18bffd9a/pkg/scheduler/context.go#L119)加上 Log後, 再 Build 一次 YuniKorn 確保 Log 有出現在 Pod Log 21 | 10. 用 Rest API 去 Dump YuniKorn status 22 | 23 | **Q: 怎麼學 YuniKorn** 24 | 1. 閱讀 User Guide, 確保 25 | 1. 我懂如何[設定 YuniKorn Queue](https://yunikorn.apache.org/docs/next/user_guide/queue_config) 26 | 2. 我懂不同 [Placement Rule](https://yunikorn.apache.org/docs/next/user_guide/placement_rules) 的差異 27 | 3. 我懂 [Gang Scheduling](https://yunikorn.apache.org/docs/next/user_guide/gang_scheduling) 中 TaskGroups 的概念 28 | 4. 我懂 [Preemption](https://yunikorn.apache.org/docs/next/user_guide/preemption_cases) 的七個 Rule 29 | 2. 看懂 [Use Cases Document](https://yunikorn.apache.org/docs/next/user_guide/use_cases) 30 | 3. [Shim deployments](https://github.com/apache/yunikorn-k8shim/tree/master/deployments) 裡面有一些簡單範例, 可以跑看看 31 | 4. 加入 YuniKorn Slack, 回答 User 問題可以刷存在感順便練習 32 | 5. Read [E2E tests](https://github.com/apache/yunikorn-k8shim/tree/master/test/e2e) (In YuniKorn Shim), 想理解什麼功能, 就去閱讀對應的 E2E Test 33 | 34 | **Q: 怎麼找 Issue** 35 | 36 | 1. 高手都直接讀 Code 37 | 2. 訂閱 [YuniKorn mail list (dev)](https://issues.apache.org/jira/issues/?jql=project%20%3D%20YUNIKORN%20AND%20labels%20%3D%20newbie%20AND%20resolution%20%3D%20Unresolved%20ORDER%20BY%20created%20DESC%2C%20priority%20DESC%2C%20updated%20DESC) 38 | 3. Jira newbie issues ([Link](https://issues.apache.org/jira/issues/?jql=project%20%3D%20YUNIKORN%20AND%20labels%20%3D%20newbie%20AND%20resolution%20%3D%20Unresolved%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC)) 39 | 4. 去讀官方文件, 覺得哪裡寫太爛直接改 40 | 5. 加入 YuniKorn Slack Channel 41 | 6. 參加 YuniKorn Community Syncup, 可以了解未來的新功能, 或者 User 反應的 Bugs 42 | 7. 翻閱過往的 Issue List, 超過三個月沒動靜就留言看看 43 | 8. Review 別人的 Code , 撿別人的魚尾 44 | 9. 看哪裡有缺 Unit Test 45 | 10. 沒事跑看看 E2E Test 檢查最新版的 Core 有沒有 Bug 46 | 11. 看哪裡不順眼, 就去改 (ex: E2E test 裡面有很多可以重構的點, 改這個風險比較低) 47 | 48 | ## 進階 49 | 50 | **Q: 我要從哪裡開始 Trace Scheduling 邏輯** 51 | - k8shim -> [pkg/cache/application.go](https://github.com/apache/yunikorn-k8shim/blob/22228dfade3b27909adf62a43fca97f61b2876fe/pkg/cache/application.go#L350) > schedule() 52 | - Core -> [pkg/scheduler/context.go](https://github.com/apache/yunikorn-core/blob/87b1d7cf4d083fca75ea389ca025327b18bffd9a/pkg/scheduler/context.go#L119) > schedule() 53 | - 搭配[有限狀態機](https://yunikorn.apache.org/docs/next/developer_guide/scheduler_object_states)文件, 看得懂你就是高手 54 | 55 | **Q: 測試自己有多了解 YuniKorn** 56 | - 試著回答 Admission Controller 的用途 57 | - 試著回答 Informer 的用途 58 | - 試著回答 YuniKorn Scheduler Interface 的腳色 59 | - 試著回答 Shim 裡面 Dispatcher, Core 裡面 RMProxy 的用途 60 | - 試著回答 Allocation/AllocationAsk 差別 (bound) 61 | - 試著回答 Placeholder 是什麼 62 | 63 | ## 參考資源 64 | 65 | - [Apache YuniKorn 程式碼探討 - K8shim 和 Core 之間的溝通方式(RMProxy)](https://hackmd.io/@vegetableBird/r1wtFbwh0) 66 | - [Apache YuniKorn 程式碼探討 - App State Scheduling](https://hackmd.io/@vegetableBird/Bk9EoCLsA) 67 | - [Apache YuniKorn 程式碼探討 - Gang Scheduling](https://hackmd.io/@vegetableBird/S1tVS52oC) 68 | - [Apache Yunikorn - Preemption](https://light.ryankert.cc/p/apache-yunikorn-%E7%9A%84-preemption-%E6%A9%9F%E5%88%B6/) 69 | 70 | ## 實際應用情境 71 | 72 | 1. [執行 Spark on YuniKorn](https://yunikorn.apache.org/docs/next/user_guide/workloads/run_spark) 73 | 2. [執行 Flink on YuniKorn](https://yunikorn.apache.org/docs/next/user_guide/workloads/run_flink) 74 | 3. [執行 Ray on YuniKorn](https://yunikorn.apache.org/docs/next/user_guide/workloads/run_ray_job) 75 | 76 | ## Other Tools 77 | - [Go Report Card (yunikorn-core)](https://goreportcard.com/report/github.com/apache/yunikorn-core#misspell) 78 | 79 | -------------------------------------------------------------------------------- /slides/Apache Polaris An Open Iceberg REST Catalog.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensource4you/readme/fba64b0f89c38b8c0cff5b7f9ad1736a1c50a3e4/slides/Apache Polaris An Open Iceberg REST Catalog.pdf -------------------------------------------------------------------------------- /slides/Kafka Plugins.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensource4you/readme/fba64b0f89c38b8c0cff5b7f9ad1736a1c50a3e4/slides/Kafka Plugins.pdf -------------------------------------------------------------------------------- /slides/My Journey with Raspberry Pi WebRTC.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensource4you/readme/fba64b0f89c38b8c0cff5b7f9ad1736a1c50a3e4/slides/My Journey with Raspberry Pi WebRTC.pdf -------------------------------------------------------------------------------- /slides/os4y.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensource4you/readme/fba64b0f89c38b8c0cff5b7f9ad1736a1c50a3e4/slides/os4y.pdf -------------------------------------------------------------------------------- /slides/如何把 committer 頭銜 zero-copy 到履歷上.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensource4you/readme/fba64b0f89c38b8c0cff5b7f9ad1736a1c50a3e4/slides/如何把 committer 頭銜 zero-copy 到履歷上.pdf -------------------------------------------------------------------------------- /sponsor/README.md: -------------------------------------------------------------------------------- 1 | # 贊助與核銷 2 | 3 | | 收入 | 支出 | OCF服務費 | OCF手續費 | 餘額 | 4 | | :--------- | :--------- | :--------- | :--------- | :--------- | 5 | | 52,600 | 16,705 | 5,260 | 120 | 30,515 | 6 | 7 | ## 贊助 (依照時間排序) 8 | 9 | | 贊助總額 | OCF服務費 | 10 | | :--------- | :--------- | 11 | | 52,600 | 5,260 | 12 | 13 | | 時間 | 名稱 | 金額 | 付款工具 | 14 | | :--------- | :--------- | :--------- | :--------- | 15 | | 2025-05-30 | **霖 | 3,000 | LINE Pay | 16 | | 2025-05-29 | OCF 匿名捐款 | 300 | LINE Pay | 17 | | 2025-05-18 | OCF 匿名捐款 | 3,500 | TapPay | 18 | | 2025-05-18 | **霖 | 300 | TapPay | 19 | | 2025-05-12 | **權 | 300 | TapPay | 20 | | 2025-05-12 | **旺 | 600 | TapPay | 21 | | 2025-05-09 | **謙 | 600 | TapPay | 22 | | 2025-05-08 | **博 | 1,000 | LINE Pay | 23 | | 2025-05-06 | **霙 | 3,000 | TapPay | 24 | | 2025-05-04 | **儒 | 1,000 | TapPay | 25 | | 2025-05-03 | OCF 匿名捐款 | 600 | TapPay | 26 | | 2025-04-27 | 匿名捐款 | 300 | LINE Pay | 27 | | 2025-04-18 | 匿名捐款 | 3,500 | TapPay | 28 | | 2025-04-18 | **霖 | 300 | TapPay | 29 | | 2025-04-18 | **耀 | 10,000 | TapPay | 30 | | 2025-04-09 | **謙 | 600 | TapPay | 31 | | 2025-04-03 | 匿名捐款 | 3,000 | LINE Pay | 32 | | 2025-04-03 | 匿名捐款 | 600 | TapPay | 33 | | 2025-03-28 | **羚 | 500 | LINE Pay | 34 | | 2025-03-27 | **遠 | 1,000 | LINE Pay | 35 | | 2025-03-24 | **揚 | 2,000 | TapPay | 36 | | 2025-03-08 | 匿名捐款 | 1,000 | ATM 轉帳 | 37 | | 2025-03-06 | 匿名捐款 | 2,000 | LINE Pay | 38 | | 2025-03-05 | **璋 | 2,000 | TapPay | 39 | | 2025-03-03 | 匿名捐款 | 600 | TapPay | 40 | | 2025-03-03 | **安 | 10,000 | TapPay | 41 | | 2025-03-03 | **誠 | 1,000 | LINE Pay | 42 | 43 | ## 核銷 (依照時間排序) 44 | 45 | | 核銷總額 | OCF手續費 | 46 | | :--------- | :--------- | 47 | | 16,705 | 120 | 48 | 49 | | 日期 | 名稱 | 類別 | 金額 | 活動名稱 | 50 | | :--------- | :--------- | :--------- | :--------- | :--------- | 51 | | 2025-05-15 | CNTUG | 設備費 | 10000 | CNTUG支援硬體 | 52 | | 2025-05-02 | **瑋 | 交通費 | 1350 | 菠菜饅頭營 | 53 | | 2025-05-02 | **佑 | 交通費 | 2655 | 菠菜饅頭營 | 54 | | 2025-05-02 | **呈 | 交通費 | 1350 | 菠菜饅頭營 | 55 | | 2025-05-02 | **成 | 交通費 | 1350 | 菠菜饅頭營 | 56 | -------------------------------------------------------------------------------- /sponsor/募款徵集.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensource4you/readme/fba64b0f89c38b8c0cff5b7f9ad1736a1c50a3e4/sponsor/募款徵集.pdf --------------------------------------------------------------------------------