开始在美国的第一份工作时,我的Job Title是Firmware Engineer。Firmware Engineer其实是程序员,写的是用来直接控制硬件工作的软件。Firmware Engineer必须具备硬件知识,但一般不需做硬件设计。我开始尝试硬件设计,要感谢当时的布线工程师Franco。
我们那个小小的startup公司的三个Firmware 工程师都是H1B身份的年轻中国人。老板John是Firmware出身,对我们几个人惺惺相惜。由于老板偏心,Firmware Engineer在公司里地位最高,是公司离不了的宝贵财富。
Franco是一个面容英俊但身材矮壮的意大利裔小伙子。我觉得他像是意大利街区放养出来的野孩子,讲义气却有点不知底线。他曾经让我不要理会催帐公司的催帐信,还教我可以把贵鞋放到便宜的鞋盒子里check out撞运气。另一方面,他也是个热心人,当时我们都没有车,买了大件东西找他帮忙从来不是问题。
Franco的工作是用布线软件把我们的设计的原理图设计成电路板,这份工作属于技能性的,不需要严格的工程训练,对还在修大学课程的Franco其实挺合适。可是Franco却觉得他的工作含金量不够,整天闹着要当Firmware Engineer,老板John从不接他的话茬。
Franco没有被允许写Firmware,本来就有点颐指气使的他自然把气撒在了我们身上。 当我们把设计拿给他时,他很不开心地说我们给了他太多的工作压力,以至于他没有时间学习Firmware 编程。没看到我很忙吗?你们不能什么事情都指望我,你们也应该学着布线。
艺多不压身,我们几个正处在吸取知识的大好年龄,拿着H1B的身份也是多一事不如少一事。于是我们陆续安装了布线软件,边自学边互相交流,很快就可以上手自己设计电路板了。后来我们发现了自己设计电路板的好处,首先自己设计电路板可以使原件的安放和走线更合理更高效;还有,原理设计时的不足和错误,有很大的机会在布线时发现;另外,我们好像都比Franco仔细一点,自己设计的电路板出错的机会反而少很多。
老板John终于给了Franco一个入门级的课题,Franco大张旗鼓地开始做Firmware。过了一段时间,Franco私下来找我,让我帮他看看为什么他的Code不工作。我打开他的Code一看,程序已经被Franco改得惨不忍睹。因为逻辑彻底乱了,程序运行起来就完全失去了控制。我只好调出他修改前的源程序,直接在它上面修改。
Franco不再要求写Firmware了,他也用不着布线了,他还是那副不可一世的样子,没有人觉得这样有什么不妥。然后,我们的Startup公司被南加州一个公司收购了,我们都搬到了加州。一年以后,受网络泡沫破灭的影响,公司裁员,Franco在我们组的裁员名单上。
Franco在加州无亲无故,因而决定尽快回纽约。他希望我买下他刚用了一年的床垫,一个五斗柜和一个床头柜,我们刚买了房,帮这个忙正是举手之劳。临行前,Franco开着他来加州新买的马自达小跑车运来了家具,我请了纽约来的同事们一起为他饯行。再没有和Franco联系过,听一个同事说他在纽约过的不错,已经结了婚,成了一个General Contractor。Franco善于动手,也喜欢和人打交道,这个职业更适合他。
没想到无心插柳学的布线,却让我成功的由Firmware Engineer转行为Electrical Engineer。随着年龄增长,我对做Firmware产生了越来越强的危机感,而满足感却是越来越弱。Firmware工程师可能每换个项目就会面对不同的处理器,在真正开始解决问题之前,先要熟悉需要编程的芯片,程序库还有开发环境。我对没完没了的知识更新感到力不从心。
硬件设计相对更依赖于经验。每一款设计软件都价值几万美金,电路板制作也是不菲的开销,这种经验是钱堆出来的,被淘汰的可能性相对小一些。上了贼船才发现,学新东西是在哪都跑不掉的,就像我的老板说的,That is why you are paid the big bucks。我依然在这个行业努力工作,却开始不光是为了这些Bucks了。