我是 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 的拜占庭错误?(完整解释)

***