华为90后“点子王”攻城狮,造个机器人帮自己打工



作者:饶祖源来源:心声社区、华为人
“点子王”的新手村之路
      饶祖源
小时候,当同龄人都扑在学业和兴趣班的时候,我在搞小发明,常有人嘲笑我不务正业,弄得我只能“偷偷摸摸”的。一路走来,身边志同道合的小伙伴因为学业压力联系渐少,最后,只剩我一人还在坚持着。

▲我的那些稀奇古怪的“发明”
高考报志愿时,我毫不犹豫地选择了自动化,因为这是一个“万金油”专业,软件、硬件、机械都能做,很适合我这个“多面体”。大学时,我把“有趣”这个优点贯彻到底,印象最深的是策划过一场智能船模比赛,对我后来的影响很大。
当时,为了提高比赛的趣味性,我想了很多点子:要求参赛队伍设计一艘船模,首先,通过FPV(第一人称主视角)远程遥控,让船模驶入特定水域,并自动躲避水中放置的“水雷”,然后指挥船模到达指定地点,通过机械臂抓取水中的“物资”,最后使用船模上的水弹枪射击“敌人”后返程。虽然这些点子可以增加比赛的趣味性,但对于参赛队伍来说,不仅技术门槛高,还烧钱。大家都觉我是异想天开,但我还是想试试!
于是,我东奔西走,四处拉“外援”:通信学院的同学帮忙设计FPV远程遥控驾驶模块;材料、机械学院的同学用3D打印机、激光切割机制作机械臂、船体模块;自动化学院的同学设计电路板做自动避障、水弹枪的电控系统……至于比赛经费,我就去学校领导那里“化缘”。精心准备了大半年后,比赛正式开始,吸引了两百多名同学组队参加,我十分开心。
回头看,在组织比赛的过程中,我不仅建立了技术自信,还提升了发现问题、解决问题的能力。我觉得,自己还真有点“攻城狮”的气质!我也一步步向这个目标迈进。

▲我设计的比赛船模样机
校招时,我手里最后只剩下两个机会,一个是回家“进体制”,一个去华为做研发。当天晚上12点前,我必须做出选择,内心十分纠结。最后,我还是下定决心,加入华为成都研究所的无线网络产品线。我不知道这个选择会给我带来什么,但人生短暂,我想去试试!
01
造个机器人帮我打工
在无线网络成研分部,我第一次见到和蔼可亲的师尊。师尊带着他的徒弟们,来NEO(新员工入职引导)培训教室门口迎接我这位小萌新,让我产生了很强的归属感。在新员工期间,有一次,我负责开发一个5G特性,临近版本交付时还有一个bug没解决。当时,师尊见我不对劲,主动过来帮我解决问题,一直陪我忙到深夜才回家。后来我才知道,那段时间,师尊家里刚添了二孩,孩子还急需照顾,师尊的关照溢于言表。我想,等我以后有能力带徒弟了,一定要把这份温暖传递给徒弟。
研究生期间,我是搞机器视觉的,但入职后的工作方向却是5G通信,未知的世界让我脑子里充满了大大的问号。说实话,当时我内心忐忑,有所犹豫。但俗话说,“学好数理化,走遍天下都不怕”!入职后,我丝毫不敢懈怠,因为要补的功课实在太多:5G通信原理、ALA(调度器)、DSP(数字信号处理器)……为了抓紧时间赶上进度,每天上下班,我都在班车上查漏补缺学习知识点,遇到不懂的问题,在尝试无果后,就及时请教身边的前辈。前辈们还传授我“三词经”——多学、多看,多讲。不要局限于自己团队的业务知识,要多向上下游团队学习,多看看周边同事高效的做事方法,也要多对外讲讲自己的学习成果,不仅能巩固对业务的理解,还能提升自己的软实力。就这样,在前辈们的指点下,我效率倍增,两个月快速完成转身。
检验学习成果的实战机会很快就来了。
在一次期中任务沟通对齐后,主管安排我做SDV(系统设计验证)的问题接口人,工作内容是定位系统问题。对于新员工来说,这项任务时间紧、难度大:问题单要在版本迭代过点前闭环,而每个问题都需要在出现故障的芯片内部排查原因,芯片内部全是二进制码流,平均每个问题要花一两天才能定位。有时,一天下来,测试人员提几个问题单;有时,周五下班前,给你提个问题单,真让人喘不过气!那段时间,我心里时刻绷着一根弦,每每听到WeLink的呼叫声,都要心跳加速。
这样下去,迟早要崩溃。我每天都在思考,如何提高定位问题的效率?突然,我灵机一动,想到用编程技术造个机器人,帮我“打黑工”!
造机器人的过程曲折坎坷,我白天定位问题,晚上自学服务器、Python等知识,并主动向周边团队的同事“吸收能量”。一个月后,机器人(SDV故障隔离工具.exe)诞生了,它能够24小时自动定位问题,并通知相关人员处理,解放了我的双手,让我有更多时间处理其他事务,效率倍增,度过了“至暗时刻”。
周边团队的同事听说我有这个“高级货”,纷纷前来“取经”,每次我都热情地跟大家分享。每每想到,我这个新兵也能帮助大家解决问题,心里就特别开心。造机器人,不仅仅帮我渡过了难关,也给我带来了成就感,让我在工作中能更加自信地迎接挑战。
期中答辩时,我的努力奋进也得到了评委们的认可,我获得了提前转正的机会。试用期结束后,我也荣幸地获得了优秀新员工的称号。

▲2022年优秀新员工展播照片
02
把巨人踩过的巨坑“填”平了
2019年以来,由于芯片受限,5G基带规格提升遇到阻碍。为保持产品竞争力,我们需要挖掘更多硬件内存资源。内存资源经过多年的优化,现已来到深水区。在此背景下,团队希望设计一套内存资源仿真系统,用于快速评估系统的内存消耗,自动识别内存优化点,指导开发人员进行内存优化。
一次讨论会后,主管对我说:“祖源,这套仿真系统的设计是部门的重点工作,大家觉得你点子多,看能不能想想好办法,尝试设计一下?“当时我没犹豫,简单了解背景后便答应了。现在回想起来,真是无知者无畏。
我回到工位,冷静下来才感觉事情没有那么简单,左思右想后,我选择先“抱大腿”,看看站在“巨人”的肩膀上,难度是否会降低。于是我给导师发了消息:“师尊有空?WC走一波?”这是我和师尊准备开始交流的暗号。在去厕所的路上,师尊向我推荐了几位相关领域的大佬,还讲了基带内存优化的前世今生。我这才意识到自己面前是一个“巨人都踩过的巨坑”。
我请教了导师推荐的前辈,又在各大网站的资料库一顿搜索,终于有了点眉目。简单来说,设计内存仿真系统,就像在培养一名“数据分析师”。我需要教会它三个技能:从何获取数据、如何快速分析数据、怎样输出正确结果。
首先,教会“数据分析师”读懂代码、获取有效内存数据就不容易。因为我们的系统有几十万个内存使用点,想要获取关键内存数据,就像大海捞针。分析了团队内部现有的技术手段后,我发现它们都不能完美地解决这个问题。我拓宽视野,终于在外部找到了一种功能强大的开源工具(Valgrind),它能在CPU(中央处理器)上监控DSP芯片的内存使用情况,使系统具备精确获取内存数据的能力,这真是天上掉馅饼了!
但当我把工具移植、运行后,程序竟然直接死机!经过一番定位分析,我发现由于华为的芯片都是自研的,开源工具根本不兼容。于是,我联系到部门芯片领域的几位专家,在大家一起的努力下,我们通过适配自研芯片的特殊指令集,解决了这一问题。
如何让“数据分析师”快速分析数据?要知道,内存数据之间的使用关系错综复杂,排列组合达上千亿种,数据量巨大,处理起来预计需要几个月时间。我尝试了几种方案,效果都不太理想,我找到主管寻求帮助,隔天主管向我推荐了另一个项目里的“滑窗”算法,它能在海量的数据中,使用一个个“窗”,在不影响结果正确性的前提下,快速筛选出有效数据,从而降低数据量,让系统在一个小时内完成数据分析工作。后来,这个算法成功应用到系统里,难题解决了!
到了输出结果阶段,以前,我们通过一张带有公式的表格,计算各业务调度场景下内存的理论消耗值。开发人员每次编码都要与这张表格相互校验,操作复杂,且难免有误差。内存仿真系统不能再走这条老路了,经过分析,我决定换个思路:把我们现有的业务代码加工处理,让系统调用业务代码中的函数,准确计算出内存的理论大小。这套方案能大幅提升效率,但需要对现有的业务代码进行整改,前期至少要“肝”几万行代码。我生怕主管不同意这个方案,小心翼翼向主管汇报后,出乎意料的是,主管说:“祖源,多去尝试,有些事情如果不去做,就永远不知道是否会成功。”
就这样,从无到有,历时4个月,我完成了第一版内存仿真系统的开发。开机运行那天,我在主管和5G基带开发团队面前展示了这套系统。
“祖源呀,系统还不错,但操作太复杂了,估计除了你,没人会用这玩意儿吧?”主管说。
“兄弟,你这个系统的配置太多了,能不能再简化点啊……”测试人员边操作边说。
这样看来,产品还没有完全满足需求方的要求,我马不停蹄地联合工程组的同事,把系统由原来的手动配置触发改为自动化触发模式,简化了操作流程。又拿过去测试,这一次,验收人员的表情让我看到了胜利的曙光!我长舒一口气,体会到直接面对一线客户的那些兄弟姐妹的不容易。这件事给我的经验是: 年轻人,不要怕,先把事干了再说。同时,也给了我一点教训:后端研发也要多倾听前端需求,把我们的产品做到遥遥领先。
后来,我借助这套内存资源仿真系统,识别了5G基带系统的很多优化点。有些大颗粒优化点,从产品研发至今,多年都未曾识别到。这套系统也得到了大家的认可,并在其他团队进行推广。回头看,让我坚持下来的是吃苦耐劳、不屈不挠的精神。一路走来,我越来越像一名真正的华为人啦,希望自己能像太阳一样,用自己的行动辐射光与温暖!

▲饶祖源
03
“潜力股”,向前冲!
慢慢地,在大家眼里,我成了一个能抗压、能做事、有担当的“潜力股”。在这里要感谢帮助过我的每一位良师益友,我始终记得第一次见到师尊时的感人氛围,记得转正后接到的第一个开发任务在需求交付转测试出现问题时,项目经理、测试经理和我一起奋战到深夜……
感谢公司给了我展示的舞台和快速成长的机会,感谢能给我一个团结友爱、具有战斗精神的团队。希望在多年后,我能不负期望,为团队创造更大的价值。
来源/《华为人》
风起堂观察/为您讲述华为奋斗者的故事
到顶部