一
2018年通过校招来到迈瑞,方向是医疗器械的软件算法开发工作。
初到迈瑞,被分配到IVD血球部门的软件算法专业组,跟随的是谢俊斌导师。当时是很欣喜的,软件算法是医疗产品的核心,在这个岗位应该是大有可为的,所以也是以百分百的精力投入到工作中的,每天都像是上了发条一样精神满满,早出晚归从不疲倦。
刚刚开始工作的半年时间,遇到了一些困难。显性的问题是软件算法的实现是依据血球行业的算法实现的,仅仅具备软件的知识,而缺乏血球分析仪的系统知识,是不足以深刻了解整个软件的算法的实现的。所以在这一阶段虽然精神饱满热情充沛却常常经受打击。经过大概2到3个月的时间,每天去做调试,单步跟踪调试代码的执行路径,把整个软件算法的实现在思维导图上面去做梳理,渐渐的也算是入了门。这个时候开始承接一些算法的更改任务,往往自己希望能够快速完成更改,所以常常考虑不完善,出现一些更改的错误或者是遗漏,感谢谢工的耐心指导,渐渐地变得成熟起来,之后的各类变更也更加的熟练起来。另一个隐性的问题是算法往往是不轻易变更的,尤其是一些已经上市的产品,这类项目的特点是已经经过多年的更改完善,算法比较成熟,但同时维护的时间已经很长,打过很多补丁,所以变动起来容易出现问题,所以更加需要对算法整个设计和处理的逻辑有相当熟悉的认识。一个小的案例是,经常讨论会上提及某个参数的计算问题,导师谢工往往能相当熟练的当即解释这个参数的整个计算的逻辑以及可能引发的原因,业务知识的扎实程度真的是相当令人佩服。
我承担一些算法的在线更改差不多一年的时间,期间偶尔会有比较空闲的时候,也曾被安排做一些归档的工作(这个也是医疗器械行业内的规范,需要应对FDA的审查)。总体而论,业务知识成长很快,代码的架构相当熟悉。但另一方面,组内对编程技术的要求并不高,能处理算法业务,能编写MFC的处理工具,能用QT做linux应用开发即可。常常感觉技术视野受限。
所以有时也会感到焦虑,尤其是任务不忙时,内心有深深的危机感,思考是否是自己长期的职业,能够持续的成长。这个阶段身边几个同伴相继离开迈瑞,自己的心态也有些动摇,如果此时身处舒适圈,那未来之路又在哪里。
二
接下来的半年,谢工安排我去做阅片机的项目。阅片机是一个血球的在研项目,相对更改的时间比较宽裕,项目前期有一个基本的框架,后续的算法的迭代完全由我负责,算是一个新的阶段。于是开始逐步的接触这个新的项目。阅片机和我之前做的血球分析仪的计算流程、软件框架都不一样,业务知识也要从头学起,幸好在邓亮工程师和谢工的指导下,逐步的对整个项目熟悉起来。期间有一个性能分析的任务,就是对阅片机的工作流程进行梳理,看下各个流程模块分别占用的时间比例是多少,有哪些流程模块的耗时是可以优化的,以及如何去优化。通过这个任务,我觉着自己很快的对整个阅片机的工作流程有了了解。而且阅片机是一个算法占比很大的项目,算法处理需要参与到各个流程之中,算法优化又能够对实现的细节进行探究。在这个阶段的工作,参与到项目中,与应用开发的同事一起合作,整个工作都算是顺利且愉快。期间主动去承担一些模块的优化,以及完善整个算法的框架以及功能,学习到不少的技能。但同时客观的讲,此时自己的工作完全依赖于业务知识的学习,编程的技能似乎进步不大。
这样在迈瑞工作了将近两年的时间,是自己技术和业务能力提升的上升时期。回顾这段时间,应该都算是全心尽力的投入到工作中,就算是小部分的空闲的时间,也在看编程的书籍教程提升技术。整个这段时间是极其忙碌的,大概每天7点多到公司工作,经常晚上班赶末班地铁。有时回去也有查阅资料到深夜,周末、节假期也要加班。总的来说,这个阶段是相对忙碌的。但是,业务学习却甚于技术学习。
三
2020的前半年过后,我决定从迈瑞离职,这是一个艰难的决定,为什么必须要离职这件事,其实解释起来并不容易。尤其在经济困境且疫情阴影的条件下。大家都在呼声“上岸”,而自己却离开熟悉并且稳定的医疗软件行业,辞职转行不是明智的选择。 但是自己还是总结了一些必须要离职的理由,以和内心对话:
-
技术上不能长期持续的成长:
- 工作的重心是不断学习医学算法,以及业务更改。很难有充足的时间去扩展编程知识。
- 编程技术要求不高,缺乏技术成长的外部环境。
-
软件只是产品的一部分,甚至很难说是核心的部分:
- 医疗器械是综合性的产品,需要机械、系统、液路、设转、软件、临床、算法等多个部门一起合作,软件上的设计都是服务于整个软硬件系统的。
- 我们的算法方案来自于系统和临床算法的同事,在这些方面,我们只是处于产品落地转换的下游。尤其是算法上,哪怕只是一个参数,也需要等几天直到临床同事做完实验才能拿到。