我是 Ronan,在 Equal1 公司負責量子軟體工程。我們利用先進的自旋技術設計和建構完全整合的量子電腦。 Equal1 在愛爾蘭、美國、加拿大、日本、羅馬尼亞和我居住的荷蘭都設有辦事處。在此之前,我曾在 Qblox 公司工作,該公司致力於開發量子控制系統。
在 Equal1,我專注於建立運行我們高效能 RacQ 量子電腦的全端系統。該系統旨在擴展到數千個邏輯校正的量子位元,甚至更多。有人稱它為量子處理器 (QPU) 的「大腦」。
我發現我的工作非常有趣,因為每天都能學到新東西,而且還能和一群優秀博學的同事一起工作。我創建這個部落格是為了分享我的所學所得;當然,我不會洩露任何秘密!
歡迎隨時給我發郵件,我的信箱是ronan或者,如果您想了解更多信息,請在LinkedIn上與我聯繫!
***Disclaimer: While I work at Equal1 by the day, this blog is a personal project and does not reflect the views of my employer. The thoughts, ramblings, and opinions shared here are mine alone and haven’t been vetted, approved or modified by anyone but myself.
***系統架構概覽
在 Qblox 工作期間,我的職位是系統架構師。以下是我當時職責的備忘錄。
我常被問到這個問題:系統架構師(sysarch)究竟要做什麼?答案因公司、營運國家和業務領域而異。但有一點始終不變:溝通
是的,架構師的職責就是用簡潔明了的方式傳達複雜的概念,無論是對開發和工程團隊、高階主管或客戶。這首先要與客戶和產品團隊一起理解問題,而這正是架構師工作中令人興奮的部分:創造一個讓客戶滿意的解決方案!
接下來是傳統的系統需求分析階段,通常還會有一個概念驗證原型設計階段,我通常會親自參與其中。之後是產品開發階段,我擔任技術負責人,與跨職能團隊合作,直到產品準備好。最後是產品發布後的售後服務階段。
如何做出架構決策?架構師的角色不一定是做出決定,而是透過整合決策所需的各種資訊來界定問題。例如,產品團隊(「開發這款新產品需要多少成本?上市時間是多久?」)或高階主管團隊(「我們是否要投資這項新技術?投資回報率和長期策略是什麼?」)。
它強調運用笛卡兒式的思考方式,客觀地研究分析每種可能解決方案的優缺點,避免主觀判斷。它還強調評估成本效益,不僅要考慮實施工作量,還要考慮長期維護、營運成本以及團隊的認知負荷。
更重要的是,這也關乎社會層面的協調,因為任何工程師不認同或產品經理不理解的架構決策都會失敗。做出決策意味著要讓所有人參與其中。對於產品和業務流程,確保選擇能帶來業務價值。對於工程流程,要徵詢資深工程師的意見,讓他們對最終的執行負責。

對於所有擁有軟體產品的公司來說,這是一個反覆出現的問題:為什麼以及何時應該重構?人們通常認為,當現有產品運作緩慢且不穩定,並且由於累積的技術債導致問題修復耗時過長時,就應該進行重構。但答案並非總是如此;相反,架構師的職責是防止第二系統效應的出現。
我的個人理念是應用day-1中的決策,並用“雙向門”測試來檢驗它們:重構是單向門(幾乎無法撤銷內部範式,例如)單向門需要深入驗證;雙向門則需要速度。
乍一看,系統架構師的角色還在於倡導正確的工程文化,這種文化能夠為工程團隊(減少救火)和產品團隊(加快產品上市速度)創造價值。
雖然總體思路是_現在投資於你的工程/軟體棧,以便在以後的開發中節省時間_,但真正的挑戰在於如何在投資和過度設計之間找到合適的平衡:開發合適的工具和軟體組件,使產品開發和維護更容易,而不是過度設計一些不增加價值的東西。
這也意味著架構師需要經常與產品團隊和高階主管團隊溝通,以推廣那些致力於面向未來的工程設計而不是不斷救火的團隊的工作。
團隊重組
在某種程度上,重構系統是不夠的,因為康威定律(Conway’s Law)會發揮作用:“任何組織設計系統時,其設計結構都會是該組織溝通結構的複製品。”
解決之道並非總是調動人員,而是重新調整團隊產出與業務組織架構的契合度,使兩個團隊的整體價值大於各自價值總和。如果某個團隊因為溝通結構效率低而無法創造足夠的價值,那麼就應該建立一個系統,讓團隊的產出由更優質的組件和更清晰易懂的API承諾來定義,從而為業務帶來更多價值。如果團隊無法建立新的元件,那就將工作分解成更簡單的元件,並提供更簡潔明了的API承諾。

但更重要的是,這關乎團隊與組織之間的社會協調:試想一下,如果團隊能夠自我改變以創造更多價值,那該是多麼理想的情況啊!
人工智慧如何改變了我的工作方式?改變很大!就像開發人員進行「氛圍編碼」一樣,架構師需要更擅長編寫「氛圍設計」(以及氛圍系統需求),這些設計可以直接作為輸入提供給生命週期管理(LLM)系統以產生程式碼。
人工智慧在設計迭代過程中發揮著重要作用,因為它能夠快速產生相同設計的多種變體,從而更快地探索不同的方案。這些設計隨後可以快速製作原型,以驗證其假設和開發複雜性。
但更重要的是,我們必須記住,人工智慧並非要取代工程師,而是要增強他們的能力和創造力。它是一種提升設計流程的工具,而不是取代工程判斷和專業知識的工具。
例如,請看下圖:有多少 LLM 能告訴你,右邊的圖顯示的是量子位元 3 (Z 2 Z 3 ) 的錯誤,而實際上是量子位元 1 和 2 的拜占庭錯誤? (完整解釋)

***