博文

国外发达国家码农是真混得好么?

回答了这个问题: 国外发达国家码农是真混得好么? 我是加拿大新移民,已经上班一个多月了。公司在多伦多,是做净水设备的,也是美国的上市公司,我负责Linux嵌入式设备的软件开发。团队目前有七八个人,其中一个来自俄罗斯,其他都是本地人。 签offer之后,HR就联系我开始寄东西了,先是搞了一整套swag(新人礼包),还有寄必须的办公设备包括电脑,都是最新款,必要的软件都装好了。此外领导还说,除了电脑之外的其他配件,有什么需要都可以提,顺便帮我订了DELL最新款的曲屏显示器,说你这是个远程岗位,以后会一直在家工作就给你整个好一点的。正式开工之后没有具体的工作内容,全是公司文化的培训,整天和不同的人开不同的会议,那两周感觉自己英语突然提高了很多。 我们团队目前采用敏捷管理,每两周把需求池里面的东西拉取一些出来做一个sprint,再分拆成一些小的任务。每天早上视频聊15分钟短会,然后就各干各的,需要沟通的时候随时发Teams消息或者直接开视频聊。每天早上9点上班,但通常能赶上9点半的站会就行了,晚上5点下班,4点半就有人离开,周末和节假日是肯定见不到人的。就算工作日也不是所有人都在,因为公司要求每周工作达到40个小时,所以如果有事可以去办,群里和大家打个招呼就好了,自己再找时间把小时数补上。疫情期间几乎所有人都是远程工作,所以偶尔也见过有同事这周在这个城市,下周又去了另一个城市。每周的40个小时的工作时间里面有半天是没有工作安排的,叫做个人发展时间,可以做自己感兴趣的任何事情,看书,看视频,睡懒觉,或者干工作的事都可以。定期还有一些知识分享的机会,每次分享会里会有一个人讲解一些可能对别人有帮助的知识,有的分享硬件,C语言,还有看过的书,有意思的开源项目或者生产力工具等等,总之可以相互帮助也能促进交流和了解。 工作本身非常轻松,这段时间主要做一些技术的预研,比如一些新的语言和框架能否用到公司新的项目中,还有对新设备的调试,然后把过程和进展详细记录下来,暂时基本上没有做过需要大量的编码的事。以中国人的效率,一周的工作可能我们一两天就干完了,花时间的部分主要在沟通协调以及写文档上。网上说的比如一件小事拖很久这么夸张的事几乎不存在,需要找人协调一些资源的时候基本上当天就有响应,不用太多工作量的话当天也都能解决。那种很夸张的事可能只存在于政府部门,那是真的慢。关于职业发展,公司有不同的

百年未有之大变局,我试着聊点政治

自从出国之后跟国内亲人们的交流就少得多了,以前会经常和我爸讨论一些社会经验和时局的话题,现在他们更多的是关心我的新生活是否顺利。说实话,在加拿大的生活比在中国要简单很多,像这样的发达资本主义国家已经发展几百年了,方方面面都已经相当成熟,也有清晰的界限和规则,任何人都可以在一定的前提下享受明确的、不受限的自由。 首先我想重申自己的一个观点就是任何人都应该关心政治,此前我提过很多次了。都知道“经济基础决定上层建筑”,也知道任何事物都不是孤立存在的,所以一定有东西能影响甚至决定经济,那就是政治。大部分情况下,经济规律只能在一个平稳的政治环境中才能体现出来,如果政治环境稍有动荡,反映到经济上就是翻天覆地。这次俄乌战争爆发之后,在美国的很多中概股跌得很严重,然后就会在社交媒体上看到很多不明真相的人都在讨论要不要抄底——如果了解了这场战争背后的故事,就不会盲目至此了。对绝大部分人来说,能看得到的经济现象只是一个“表盘”,背后众多错综复杂的逻辑才是真正决定性的因素。 紧接着,全世界都开始谴责和从经济上制裁俄罗斯,这也导致了卢布瀑布式的下跌,如果美国取消了卢布的SDR之后,相信卢布在国际市场上会彻底归零。这两天看到不少新闻报道有人因为相信俄罗斯是“正义”之举就投资了不少卢布结果血亏。这就引出了第二个话题——谁才是被洗脑的那一个?不止是这一件事,国际上发生的很多事情在中国和其他国家总是有不同的报道角度。有没有发现比如,南海问题,钓鱼岛问题,台湾问题,香港问题,病毒问题,芬太尼问题,人权问题等等,凡是和中国/中共有密切关系的事情,中国始终和国际社会站在对立面,并且中国永远都是伟大、光明和正确的那一方,不管你认可哪一方,至少应该都认可这些分歧的存在。在我爸的观点里,中国当然是仁至义尽的一方,美国是因为嫉妒中国的崛起才步步紧逼的,我相信这不但是宣传机构的说辞,也是很多国人的“观点”。其实要弄清楚谁对谁错很简单:信息、逻辑和法律。 都知道“兼听则明,偏听则暗”,在中国基本没有“兼听”的机会,人们平时能接触到的不论正规媒体还是小道消息都是宣传部门安排好的内容,去年好像又规定擅自解读经济数据也违规了。如果有人转发外面的消息,在国内不是寻衅滋事就是煽动颠覆,就连美国大使馆在自己微信公众号里发布的消息也时常被删除或禁止分享。正因为如此,尽管我不同意我爸的观点也不愿意看到他被中国政府欺骗,但我也无法责

在加拿大找远程工作机会的经历

经过两年时间挣扎,发现创业并不如预期的那样顺利,值得欣慰的是走过这段路本身就是收获。疫情也快结束了,至少看上去是这样,我也打算转变思路先找个工作看看,创业的事就先兼顾着做着,未来有机会也说不定。 先说说大环境,这两年因为疫情的关系,目前整个北美对人才是极度渴求的。不止从我自己的经历能看出来,身边其他朋友的就业也都热火朝天,白领和蓝领的工作机会都非常多。但是企业对人才的选择上还是会坚持原则的,不会因为人才短缺就放低门槛。另外,作为新移民(尽管已经在这生活两年多了),没有本地背景,包括教育经历和工作经历,这肯定是一个不小的障碍。最后,也正是因为疫情的关系,很多通常可以不必on-site的岗位也都全部允许远程了,尤其是码农,所以在我看来,在提升自身素质的前提下,目前正是求职的黄金时期,包括远程岗位。 资源 加拿大政府下属的部门或者非盈利组织会提供很多与求职相关的免费服务,只要是新移民都可以报名参加,比如面向就业的英语/法语培训,以及求职相关的培训。去年我报名参加了两个月的免费英语课程,个人觉得非常有帮助,首先老师非常友好,有任何问题都可以请教,另外还会教很多加拿大本地的文化,包括日常沟通和职场礼仪,我个人觉得最大的收获就是学会怎样掌握和运用西方人的思维去更礼貌地、更有效地考虑和处理问题,只学语言是不会了解到这些知识的。 我报的另外一个是就业辅导,这个课程分两部分,一部分是约一周的知识性分享,包括怎样准备简历以及如何准备常见面试问题,另一部分是针对面试准备以及模拟面试的内容。每一个学员会被分配一个专门的coach,他会定期与学员沟通并且一直辅导到学员找到工作为止。 简历 我已经记不清我的简历已经被修改了多少次,最后才浓缩到一页纸以内,从投递的效果来看简历关应该是过了(超过20%获得面试机会),我大概总结了这几条: 注意时态和语法,简洁易懂;排版布局合理; 工作内容与申请的岗位相关联,明确贡献和收获; 匹配职业相关的关键词,利于搜索和机筛; 另外,cover letter几乎也是必须的,很多岗位都要求申请人提交这封信。我理解它就是一段对HR说的一段话,来表达自己对这个公司和岗位的了解和兴趣,虽然可能帮助不大,但写了当然是更好的,特别是用心写的。 申请 我几乎只用了LinkedIn这个平台去搜索和投递申请,其他类似的平台比如InDeed和GlassDoor等等,我发现那上面的岗

我经历的加拿大 Start-up Visa 项目

加拿大的 Start-up Visa (SUV) 项目是给全球的申请人提供一个可以在加拿大境内创业并获得居留权的项目。因为全球疫情,有一段时间加拿大的边境是关闭的(因为理论上移民局批准了申请人,申请人需要入境才能申请永久居留,如果边境关闭,移民局批准任何人都没有意义,反正所有人都进不来,所以干脆也不工作了),移民局也不上班,官网上查询的平均处理时间从最开始的12个月慢慢拖到到33个月,也不知道疫情什么时候好转(疫情好转移民局才会上班),又不能催不能问更不能加急处理,一度看不到希望。好在疫情今年年中开始逐渐稳定下来,也终于在7月份收到体检通知,一周后就收到eCOPR(electronical Confirmation of Permanent Residence),并正式成为加拿大合法的永久居民,前后花了我整整一年半时间。 前面几年里也了解过全球各种主流的方式,最终都没能下定决心,有些是移民政策变化,有些因为项目存在可能的合法性问题,有些因为费用过高或周期过长,最终了解到SUV这个项目的时候就认为它应该是最适合的途径。我当时最大的诉求就是务必一次成功,因为以自己的条件不论是时间还是金钱都容不得多次折腾,所以打算通过移民律师去申请而不是DIY。在考察了几乎市面上所有的移民中介之后,我放弃了从中国境内找移民律师,而是直接在加拿大本地找了一个,后来证明这个决定至少是不错的。SUV 项目的申请对律师比对申请人有更高的要求,也就是说,申请人只需要有雅思5.5分和相应的背景就够了,但有资源和能力能做 SUV 项目的律师是很少的,有经验的就更少了。不止因为这个项目每年只批200多个case,没有多少移民律师有机会做过这个项目,而且还需要移民律师要有本地资源,以及创业方面的经验。这也就是为什么当时我在国内几乎找不到做这类项目的律师,就算有也是天价,可以想像大概率是接了我的case再卖给加拿大这边其他律师,自己再赚个差价,所以这也是在真正清楚了这个行业之后必然的选择。 SUV是联邦项目,意味着移民不必经过省提名的过程而是由联邦直接审理,所以理论上申请周期会更短,而且创业成败对移民申请没有影响,对创收和雇员都没有要求。SUV 项目主要有天使投资、风险投资和孵化器三种渠道,天使基金需要项目获得7.5万加币投资,风险投资需要的投资额是20万加币,孵化器对投资没有要求,只需要投资机构接受项目进

为开源事业作了点贡献

CNCF这几年太火了,他的很多项目在云原生领域都有决定性的影响力,像著名的Kubernetes、Etcd、Containerd等等。最近刚好也在学习这些东西,也顺便想找个机会为这么多开源项目做点贡献。很巧地,在论坛里看到Kubernetes旗下一个项目正在呼吁社区帮忙维护一个项目,我马上就联系项目管理员加入了。 这个项目在这里: kubernetes/kompose ,在学习K8S期间,也考虑过怎样把自己机器上众多 docker compose 都交给K8S,比如开发中经常会用到的数据库、Nodejs、AI等,没想到社区已经有一个已经相对成熟的开源方案了,后来试用了一下效果还不错。如果要为这个项目做点什么,就应该先熟悉一下整个项目的架构和流程,然后从issues入手尝试解决一些小问题,最后再考虑去完善一些新的功能模块。 解决问题通常是比较简单的,但顺利走完整个流程还要费点劲,特别是第一次提交代码。我看到一个issue中有人希望能增加对fish shell的自动补全支持,就很快在代码中实现了,但第一次提交就出问题了,后来才知道,首先代码要fmt、lint等,一步都不能少,否则可能无法通过极其严格的CI,并且在提交代码之前要先签署CLA——Linux基金会的贡献者许可协议,再在commit的时候通过本地GPG签名自己提交的代码,最后才是push。这么复杂的流程应该是CNCF的项目特有的,对普通项目的贡献至少是不需要签CLA的。 支持开源项目对绝大多数人来说就是无私奉献,只有对社区产生了比较大的影响力了才可能会有额外的收获。作为普通开发者,对一个项目的贡献一方面是对社区的回馈,毕竟职业生涯中是肯定会借用别人肩膀的;另一方面通过贡献代码提升自己的技能和影响力。也有人已经习惯了伸手,但是请记住:没有什么理所当然,绝大多数人都是把业余时间投入开源项目的,所以应该多一点理解和尊重,毕竟,道德应该用来要求自己,法律才是用来要求别人的。

新冠疫苗——三思而后行

图片
从2019年新冠疫情在武汉出现,至今我还没有做过一次检测,更没有接种过疫苗,在可见的未来也没有接种的打算。2019年底前我们全家离开广州举家来到加拿大的时候还没有听说病毒,直到次年1月才开始得知武汉出现病例的消息,时至今日,全球已经有近2亿人感染、420万人死亡,这恐怕是人类有史以来最严重的疫情了。 首先,我不认为人类目前对冠状病毒有足够的了解。除了这次的COVID-19,一般人熟知的冠状病毒大概还有SARS和流感。前者于2003年在北京爆发过之后就销声匿迹了,所以没有太多关于它的数据,而流感是每年都会在全球爆发的流行病,为什么同为冠状病毒的流感能长年困扰世人至今没有彻底的解决办法,凭什么相信明显比它厉害很多倍的COVID-19能很快得到完全控制?截止目前,我们只知道COVID-19病毒会与肺部的ACE2细胞结合而感染人体,但具体免疫系统如何反应,如何突破血脑屏障,如何影响大脑、神经系统和生殖系统,是否明确有无ADE效应等等,因此我觉得有充分的理由相信人类目前对冠状病毒不了解;其次,所有人都要清楚一点,全球的新冠疫苗都是「紧急征用」的,并没有任何一款完整通过全部三期临床验证。疫苗的研发是非常耗时间、耗钱的事情,一般没有十年甚至更长时间的投入是不会有结果的,显然这次全球的疫苗都是在疫情紧急的情况下被逼迫出来的,在美国,包括辉瑞、强生都没有获得FDA正式的approve,这也就意味着不但疫苗的安全性不能像以往一般的疫苗那样得到尽可能大的保障,也意味着疫苗产生的任何后果只有自己承担,美国政府是没有法律责任的。所以很多国家的医疗机构都不但不会强制接种,而且非必要的岗位甚至不建议接种;最后,从已经接种的情况来看短期内副作用非常不乐观,长期的副作用更是未知数。不但出现大量接种后感染,甚至还有很多对人体造成直接伤害的案例。 其实,技术层面还有两个明显的漏洞,一个是至今还没有一位真正冠状病毒领域的专家(比如Malik Peiris?)出面解释这个事情,另一个是至今人们连确定的病毒来源还没搞清楚。 疫苗是政治正确的产物。在人们长期的生存经验中,疫苗就是预防病毒最好的武器,历史上许多非常凶险的病毒都因为疫苗而彻底从世界上消失,这让「疫苗」二字给人们带来了绝对的安全感,因此不论要消灭什么病毒,人们一定会寄希望于疫苗。所以在这么广泛的民意基础上,政府除了宣传和推广疫苗之外,并没有其他选择,

我为什么反对技术团队大融合

在做技术工作的这些年,我经历过至少两次大的团队调整,就是把小团队打散,形成大的集团军,里面会按技能划分成不同的小组,一旦来了项目,不同技术背景的人就马上从这些技能小组里被抽调出来一起去完成这个项目。后来事实证明,这样的调整无一成功,而且造成人员流失严重,公司面临巨大动荡。传统行业未必如此,但在互联网行业这是普遍存在的现象。 不论在阿里、腾讯,还是Amazon、Google,内部都不会有这样的组织体系,当然,他们的体量比较大,组织成一整个技术团队会带来管理上的问题,但我不认为这是主要原因。从我的经历和观察来看,“大一统”的组织体系只是领导比较喜欢的一种方式,因为把人组织起来、管理起来,看上去井井有条、秩序井然,在面临需求的时候进行资源调配有一种指挥千军万马的感觉,只要一切按照预想的去发展,一定能解决所有问题。另外,这也是一种技术人思维的具体体现,领导创建资源池,哪里需要资源的时候就直接从资源池里抽取需要的资源,特别符合技术架构的理论。但是,这种组织体系有一个致命缺陷而且是无法解决的:人。工程师也是人,他们不能被当作资源进行管理,所以我强烈反对“人才资源”这个词语,人是有感情、有偏好、有温度的,把他们大规模当冰冷的资源进行管理,最后除了领导自己感觉良好之外,不会带来更好的结果。 做公司的人都知道团队不好建,一个好的团队效率可以特别高,还可以做到几十年员工零流失,那么这个团队就是公司最宝贵的资产。很多大佬说过类似的话,只要有团队,可以在任何地方重新复制一个新的成功的公司,就是这个道理。那一个团队是怎样变得如此有战斗力和凝聚力呢?还是我刚才的观点,工程师是人,他们有自己的感情,一个团队长期在一起工作,已经磨合过了,也会相互成长,成员之间也会有默契,一起去完成一个任务的时候会有更高的效率。这就是在搭建团队中最难也是最宝贵的过程,而大一统的组织体系远无法达到这个效果,因为临时根据项目需求凑起来的班子,成员之间可能连最基本的信任都还没有,更不要提一起去完成一个任务了,这也许就是之前数次组织调整均告失败的最主要原因。至于有些领导认为大技术团队效率高,哪里有问题就往哪里疯狂塞人就好了,实在不行就全替换成骨干,这真是愚蠢至极的想法,因为这是解决问题为导向的思维方式,根本不是在建团队。 技术团队大融合的调整中,很多工程师本人,包括领导,都往往没有清醒的认识,领导为了自我感觉良好去做这个事