2026 Los Angeles

前言 / Introduction 在結束一年半的研替後,我把這趟洛杉磯之旅當作一次「畢業旅行」。 第一次橫跨太平洋 + 踏上美國西岸,也是第一次體驗長達 12 小時的長途飛行。 坐飛機坐到屁股好酸、空氣乾燥到睡不著,但或許是因為夜貓的習慣,15 小時的時差反而影響不大?! 這次的行程除了參加 PyCon US,也安排了幾天的自由行,體驗美國同事的日常。 Day 1: 第一次認識洛杉磯 Route 66 與 Santa Monica 首站前往每位遊戲玩家都熟悉的場景 Route 66(隨手拍 PO 上網,網友們肯定懂),隨意找張岸邊長椅,享受加州的陽光,凝視一望無際的太平洋,希望煩惱悄無聲息地溜走。 好像許多人都說過,如果來加州沒曬黑,就白來了,所以只好黑一圈才回來。 Waymo:無人車體驗 出發前,一直聽聞其他同事說,無人計程車在美國已經很盛行,原本還不以為意,直到望著遠方馳來的 Waymo,才驚覺原來都是真的。 第一次搭上無人車,比想像中還平靜,邊發呆邊幫手機充電,轉眼間就到達目的地,是個滿舒服的體驗。畢竟出門在外,要找個插座還是挺困難的,所以整趟下來 CP 值挺高的。 Grand Central Market + Salt & Straw 來到 Downtown LA,Grand Central Market 幾乎是必訪的覓食地。裡面集合了各種文化的食物:墨西哥捲、漢堡、披薩,甚至還有拉麵,感嘆道,這就是文化大融合。 其中最有名的 Eggslut 美國創始本店,走過但不能錯過,果然名不虛傳,滑嫩的蛋配上煎到香酥的麵包,想到這口水又止不住了。 吃完正餐,點心則是 Salt & Straw,身為冰淇淋愛好者肯定不會放過美國的本地限定。 這大概是這趟旅程裡印象最深的冰淇淋之一。鹹甜交錯的口味很特別,尤其是期間限定的草莓風味,有種乾草莓粉的既視感。 Apple Tower Theatre + Los Angeles Central Library 洛杉磯是一座很擅長把「新與舊」放在同一個畫面裡的城市。 Apple Tower Theatre 果粉愛好者行程,絕對不會放過各地的直營店。Apple Tower Theatre 並不是單純的門市,而是把 1920 年代的劇院建築重新整理後,變成一個融合科技與歷史的空間。走進去時,很難不被那種細節感吸引。 ...

May 31, 2026 · 1 min · 199 words · Daniel Ho

2025 Hokkaido Travel

北海道,一段放空的旅程 從北海道回來後,現在才有一點餘裕把這趟旅程整理起來。 1. 出發前,我其實沒想太多 工作大概快滿一年了,其實一直處於緊繃的工作狀態,也沒想過其他事情。 直到被朋友慫恿的當下,一氣之下訂好了機票。 12/13 ~ 12/19 Hokkaido Sapporo, Otaru, Asahikawa 2. 在北海道,時間走得比較慢 可能是初見雪的感動,周遭時間彷彿放慢了。 藍調時分的浪漫,讓人總忍不住停下腳步,仰望那靜謐深邃的天空。 3. 有幾個瞬間,我其實有點被打到 這趟旅程幾乎都是自由行,更能按照自己的步調探索。深夜時分獨自漫步至神社,旅途因而多了一抹神秘的色彩,彷彿替回憶加上了難以言喻的 DLC。 KingBear 湯咖哩——每一樣食材都能感受到主廚的用心與細膩。這間小店原本並不在行程內,只是旅途中的即興決定,卻意外帶來一份驚喜。 4. 回來之後 開始想念雪花輕撫臉龐的那份柔軟,即使在零下十度的寒夜裡,卻有著沁入心脾的舒暢,當下的煩惱也隨之融化。 5. 留給未來的自己 這趟旅程,是我人生第二次出國,也是工作後的第一次遠行。走出熟悉的生活圈,更加確信這世界還有那麼多地方等著我去探索、體驗與感受。

December 20, 2025 · 1 min · 29 words · Daniel Ho

從草臺班子到架構思維:為什麼我要開始學 System Design

前言 / Introduction 工作上經常會寫一些自動化小工具,去解決日常的問題,開發過程不免俗與其他同事的專案有重疊的功能,因此會互相 Code Review,但此時常會覺得羞於見人,既沒有 Diagram 描述架構,文件描述又異常地空乏,總覺得少了點甚麼。 一開始我會覺得:「反正只是個小工具嘛」,但當聽到大神們聊起「模組設計 OOP」、「可維護性」、「容錯設計」等架構問題時,才意識到,我寫的不是工具,是妥協出來的程式碼。 初期的盲點:解決問題 ≠ 解決得好 對我來說,小工具只要「能跑」、「能交差」,就算完成。但這樣的 mindset 讓我忽略了幾件事: 沒人看得懂的 code,會變成團隊的負債 架構思慮不周,容易留下技術債 擴充性很低,重構等於打掉重練 沒有良好的錯誤處理、資源釋放、IO timeout 大神們思考的是「系統的運作」,而不是「功能的存在」 有一次 Code Review,學長只用兩句話,就打醒我: Function 過度耦合,缺乏可維護性和可擴展性 架設方式過於複雜,沒考慮使用者的背景 這時我才發現,System Design 不是只有在面試時才會遇到的 buzzword,它是真正在工作中,讓專案變得可靠、可維護的核心能力。 我為什麼決定開始學習 System Design 技術長大了,但腦袋沒長大:寫得出複雜的程式碼,但無法抽象出整體結構 專案開始有接觸多人合作:你不能只靠自己看懂,還要讓別人接得下去 我想寫出讓人放心的程式,而不是「現在能跑,之後爆炸的程式」 學習路線 我規劃一個 System Design Study Plan,希望能夠利用空閒的時間去補齊這些知識。 週次 主題 核心關鍵詞 重點問題 Week 1 Scalability & Load Balancer Vertical / Horizontal Scaling, Auto Scaling, Round Robin, IP Hash 如何應對高併發?如何分散負載? Week 2 Cache 設計與策略 Read-Through, Write-Through, TTL, LRU, Redis 如何用 Cache 提高效能又保持一致性? Week 3 Database 選型與 Sharding SQL vs NoSQL, Sharding, Replication, CAP 什麼情況選 MySQL?什麼情況拆 DB? Week 4 Data Consistency & Message Queue Eventual Consistency, Kafka, RabbitMQ, Idempotency Key 系統怎麼確保資料一致?怎麼防重複? Week 5 Rate Limiting & Circuit Breaker Token Bucket, Leaky Bucket, Retry, Backoff, Hystrix 如何保護系統不被濫用或雪崩? Week 6 CDN & Global System Design Cloudflare, Geo DNS, Edge Cache 如何設計給全球用戶?如何用 CDN 加速? Week 7 Monitoring & Reliability SLA, SLO, SLI, Prometheus, Grafana, Healthcheck 如何設計一個穩定且可觀察的系統? Week 8 Design Real Systems & Interview Case Design YouTube, Messenger, TinyURL, LLM Infra 如何答出一個完整的系統設計題? 結語 System Design 不只是為了寫出能跑的系統,而是為了寫出能活得久的系統。 ...

June 23, 2025 · 1 min · 170 words · Daniel Ho

113 年度研替小記

前言 / Introduction 在研究所畢業在即,相信許多人跟我一樣,被未來的迷惘給殺地措手不及,而沒有相對應職涯規劃。 在經濟現實和兵役壓力雙重夾擊下,我開始思考:研發替代役,也許是個不錯的出口? 那我又是怎麼規劃接下來的人生?中間又跌了哪些坑?就讓我一一分享吧~ 找研替的具體行動 將四個月的兵役,延長至一年六個月,從而換取直接在公司工作的機會。 研替時程、用人單位 通常以畢業前的最後一個暑假,用人單位集會釋出職缺。 以我為例,預計在114年的六月畢業,那113年的8月暑假,就可以開始找職缺。 通過下方的用人單位網路發表查詢,即可看有哪些公司、研究單位、政府機關等等 投遞履歷 如果想去MTK, RTK 等等IC大廠,必須上網查詢,往年的投遞履歷以及面試的時程,才不會錯過。 大公司: 通常暑假(七、八月)就會開始面試 校招宣傳: 通常會安排在九、十月上旬 就業博覽會: 通常安排在二月、三月下旬 校招宣傳和就業博覽會,HR通常是把機會留給畢業即就業的新鮮人,也就是不卡兵役的即戰力。 Notes: 所以想要申請研替最好提早一個學期,就開始打聽,好好把握時間。 準備面試 面試準備,大致有下面幾種: 根據職缺描述,複習相關的知識 刷題、刷題、刷題: 考古題很重要,所以說三次!!! 兩種程式語言,建議要有 C/C++ Leetcode Top Interview 150 LeetCode 75 Daliy challenge Weekly Contest or Biweekly Contest 準備履歷 整理作品 Linkedin, GitHub 工作、實習經驗 發表過的論文、碩論題目(方向) 像我當初找研替(軟體與韌體相關),除了擅長Python以外,但為了更多的面試機會,又加入了C++,作為第二程式語言,刷題的時候,就可以切換練習,增加熟悉度。 而準備履歷,就是把求學歷程攤開來,讓大家檢視,哪怕只是課堂作業,包裝後也會是一份有趣的經歷,不要怕丟臉,多展現自己。 心境變化與成長 在整個找研替的過程中,我經歷了不少情緒的起伏。一開始滿懷不安,對未來的選擇感到焦慮,總覺得自己是不是「不夠好」,才需要靠研替來拖延人生的進度。 在收到錄取通知前,我前前後後投了不下數十個職缺,其中包含研替與預聘的機會。每一次面試,都是一次對自己的重新認識與審視,也讓我在過程中慢慢釐清真正想追求的方向。從一開始被動地「找一個落腳處」,轉變為主動地「尋找一個起點」。也讓我重新回想起,當初選擇念研究所的其中一個初衷,就是希望找到一份與自己的專業和學歷相匹配的工作。 當我收到錄取通知的那一刻,雖然它不是最理想的職缺,但我很清楚,那是自己一步一腳印努力換來的成果。或許人生的本質,就是在不斷的妥協中前進,但即便是在命運的玩笑裡,我們仍然可以做出屬於自己的選擇 —— 因為這是你的人生,不是別人的。 結語 回頭看這一路,從猶豫要不要找研替,到投遞履歷、準備面試,再到最後真的錄取,過程中經歷了不少挫折和懷疑。 研發替代役不一定適合每個人,但如果你也正面臨「畢業後要去哪裡?」這個經典難題,也許可以先靜下心來,思考自己真正重視的價值是什麼。希望我的經驗可以給你一點方向或靈感,不論你最後選擇的是什麼,重要的是——那是你想走的路。

May 19, 2025 · 1 min · 62 words · Daniel Ho