1、精通嵌入式产品开发
a、 熟悉FreeRTOS,nuttx(小米vela),zephyr,linux等主流操作系统;
b、熟悉各种外设接口,如UART,SPI(主/从),SDIO,ADC,DAC,DMA,I2C,USB等,大部分都开发过驱动和应用程序(开发驱动是因为曾经在Wi-Fi芯片公司负责过驱动开发);
c、了解嵌入式产品的各种模块,如文件系统,内存管理,flash(nor/nand)驱动,GUI(MicWin,LVGL)系统等;
d、 丰富的产品开发经验,作为项目负责人,开发过很多嵌入式产品,如早期的电子词典,客户包括文曲星,台北远见,法国富兰克林等,上市的产品数十款;另外还有点读笔、Wi-Fi智能语音玩具,蓝牙盲文点选器等智能硬件产品;
2.、精通物联网协议和系统
a、精通Wi-Fi和 BLE协议;在Wi-Fi芯片公司工作过几年,主要负责开发各种驱动以及TCP/IP协议栈开发维护,熟悉各种传输层和应用层协议,如TCP,UDP,ARP,DNS,HTTP,MQTT等,具备解决复杂的底层网络问题的能力 ;
b、在小米工作时主要负责IOT平台Wi-Fi模组业务,核心是连接小米云的SDK开发维护(使用小米私有云协议),以及来自不同芯片公司的Wi-Fi模组开发适配;除了模组业务,还对小米云中台,后台,前端以及大数据业务都有了解;
c、熟悉BLE协议,使用nordic的蓝牙芯片开发过盲文点选器产品;
3、具备智能硬件整机开发量产上市能力
a、具备完备的智能硬件软硬件以及云端资源,可以承接智能硬件整体方案开发;
b、可协助模具开发以及工厂生产,实现整机上市;
在小米工作时花费大概一年多的时候,主导开发小米IOT产品的静默升级(自动升级)功能,该项目是IOT部门的重点项目,需要向总经理汇报;
项目背景:小米IOT产品客户的主动升级意愿不强,可能会有体验或者安全上的隐患,需要一种自动升级的机制提升升级率;紧急情况下,小米可以直接通过这套机制主动给客户的产品升级;
项目需求:a、保证升级体验,升级时不能对用户造成打扰(小米的很多产品升级时会有灯光闪烁,或者滴滴声等),静默升级时这些都不能出现;
b、保证升级安全;(小米的IOT产品上亿台,每次发布版本需要升级的产品可能有数千万台,升级出现问题,尤其是变砖问题,造成的影响非常大);
项目方案简述(可能涉及到隐私,所以简单描述一下如何实现的):
针对升级体验:为了让不同品类的产品静默升级时不影响用户,前期针对各生态链公司的产品进行了大量的调研(大概调分品类一共调研了400款),统计不同品类的产品升级体验,再设计产品的升级方案,保证静默升级时不能影响用户,并作为标准发布到各生态链公司严格执行,并同步小米验收部门严格按照标准验收。
针对升级功能:静默升级涉及到近10个部门的协作:APP开发(安卓组和IOS组)部门,需要在APP中增加静默升级的开关(还有其它一些辅助功能),并在手机中引导用户打开此功能;前端:控制各种版本的发布灰度机制(不能 一下子对所有用户放开升级,采用分批自动扩大升级范围的机制); 云端:负责从前端拿到版本发布范围,再和IOT设备协商合适的升级时机;大数据:负责实时采集设备升级过程和结果数据,对升级过程进行控制,一旦发现升级异常,自动关停整个流程,并把数据提供给信息部门制作各种统计图表;嵌入式:负责和云端协商升级时间,静默下载升级数据并安装,另外实现设备变砖回滚机制; 信息部门:实现升级数据的各种统计报表,方便查看结果;另外各个不同的部门,研发和测试属于不同的组,所以还涉及到四五个不同的测试部门。
以上是整个项目的大体过程。项目按季度设计OKR目标并通过总经理评审,按季度向总经理汇报。总体OKR制定之后,会分拆给各个部门,然后制定项目进度表,每周开会同步进度。
角色 | 职位 |
负责人 | 高级软件开发工程师 |
队员 | 产品经理 |
产品是一款供盲人使用的键盘和显示设备,通过上面的6个不同的盲文点组合输入,可以向PC或手机输入各种不同字符。下面的盲文点是用来显示盲文字符的,接收到PC或者手机的数据,可以通过盲文点显示。 支持两种数据传输方式,USB有线或者BLE无线。USB使用的是HID协议和私有协议混合,
产品是一款蓝牙网关产品,用在培训场所的门店中,用户可以通过APP配合该产品进行打卡开门。 该产品基于乐鑫的ESP32进行开发,用到蓝牙广播和Wi-Fi的功能。 我在项目中主要负责通过MQTT协议打通阿里云,打通之前需要通过HTTPS协议连接到客户的IOT物联网平台中获取各种鉴