加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.023zz.com.cn/)- 高性能计算、物联设备、数据可视化、操作系统、基础存储!
当前位置: 首页 > 创业 > 模式 > 正文

嵌入式工程师13年:不接外包,私域年入200万

发布时间:2026-11-07 08:14:28 所属栏目:模式 来源:DaWei
导读:  凌晨三点二十,监控屏右下角那个贴了三回胶布的告警灯还亮着,蓝得像块冻住的冰。我啃完第三包泡面,汤没喝——太咸,盐粒沉在底上,跟上周磁盘里那个删不掉的 .swp 文件一样硌牙。  去年三月,我拆了自己写的第十七个 boo

  凌晨三点二十,监控屏右下角那个贴了三回胶布的告警灯还亮着,蓝得像块冻住的冰。我啃完第三包泡面,汤没喝——太咸,盐粒沉在底上,跟上周磁盘里那个删不掉的 .swp 文件一样硌牙。


  去年三月,我拆了自己写的第十七个 bootloader,烧进新产线那批 STM32H7 的时候,手抖了一下。不是因为焊点密,是老板在钉钉群里甩来一张截图:私域商城后台订单漏单率 18.7%,客服刚接了三个家长电话,小孩的智能药盒昨晚没响铃。我原以为改个 RTC 校准偏差就行,结果发现时钟芯片压根没接晶振,PCB 上那个 32.768kHz 的焊盘空着,像张没补的牙窟窿。


  五月,证书过期。不是 Let’s Encrypt 那种自动续的,是嵌入式设备里硬编码的 CA 根证书。我们那台带 Wi-Fi 模块的宠物喂食器,固件签名验证卡在 X.509 的 version 字段——它不认识 v3,只认 v1。厂商给的 SDK 文档里写“兼容所有 RFC5280”,可实际跑起来连 ASN.1 的 TLV 解析都跳错字节。同事老张用串口把日志一行行拖出来,末尾写着:“CA verify failed: tag 0x13, expected 0x02”。他骂了一句,顺手把调试板上的跳线帽拨了,说“这破板子供电纹波比我的血压还高”。窗外正好开始下雨,雨刷节奏和机房空调的嗡鸣刚好同频,听得人太阳穴突突跳。


文章配图,仅供参考

  六月,DNS 解析崩。不是你猜的那个 DNS,是我们自建的内网域名服务,跑在树莓派上,主从都搭好了。可偏偏那次升级后,从节点的 zone transfer 总是卡在 IXFR 第二轮,AXFR 又被防火墙拦掉。查到⭐️⭐️⭐️⭐️发现是主节点 bind9 配置里多加了个空格——在 serial 后面多了个不可见的 U+00A0(非断空格),从节点 parser 直接扔异常退出,连 log 都没打。这事我没敢声张。后来有天半夜,看见运维小陈蹲在机柜前,用手机电筒照着看交换机标签,嘴里念叨:“这个端口…怎么标记的是‘备用电源’?可它明明连着 DNS 服务器…”


  八月,带宽跑满。真不是被 CC,是用户主动刷的。我们那套低功耗 OTA 升级协议,设计时想着省电,就把握手包做成每分钟发一次心跳——可有个客户拿它当 MQTT 替代品,写了段 Python 脚本,每秒连三次,每连就拉一遍 firmware manifest JSON。四百台设备,半小时干到出口带宽 98%。值班室那台旧笔记本风扇转得像要起飞,我把它垫高了两厘米,底下塞了张咖啡馆收据,才让风道通一点。老张路过看了眼,说:“这协议当初是你定的吧?”我说:“是我。”他点头:“嗯,我老婆上个月问我,你们做嵌入式的,是不是天天在给上帝写 bug。”


  十月,机房断电。真断。UPS 蓄电池三年没换,放电测试那天电压掉到 10.2V 就歇菜。但最离谱的是迁移丢数据那次——为了上新平台,我把本地 sqlite 数据库导出成 CSV,再用脚本重导入到新环境。脚本第一行写的是 `import csv`,第二行却是 `reader = csv.reader(open('data.csv'))`。没加 encoding='utf-8-sig'。三十七台售货机的销售记录,所有含中文商品名的条目,全部变成乱码里的 字。客服下午三点给我打电话,声音很平:“老师,您看下 132 号机器,客户说买了‘酸梅汤’,系统显示‘梅汤’。” 我挂了电话,盯着电脑右下角的时间:十四点零七分。我到现在也没想明白,为什么同样那行代码,在我本地虚拟机跑就是好的。


  中间我还搬了次家。纸箱上写着“工具/示波器/万用表”,结果拆开全是电路板——五年前做的门禁控制器样品、两年前调试失败的 LoRa 网关、还有上上个月客户退货的 BLE 温湿度传感器,包装膜都没撕,躺在角落积灰。我老婆抱孩子路过看了一眼,问:“这些板子还能卖钱?” 我说不能。她哦了一声,把婴儿车停在纸箱旁边,小家伙伸手去够一块带蜂鸣器的 PCB,叮地一声,响了。


  嵌入式工程师十三年:不接外包,私域年入两百万。这话听着浮,可它站得住的地方,是优胜劣汰——不是淘汰人,是淘汰那些你明知道有问题却不敢动的配置、明知道路径不对却懒得重构的驱动、明知道客户要的其实是稳定而不是新功能,却还在加 CRC32 的人。有人靠接单活着,我靠不接单活下来。别人修 bug 是抢工单,我是等设备自己报错;别人优化是降功耗,我是把 watchdog 喂食周期从 8 秒改成 4 秒,就为多抓一次堆栈溢出的现场。


  上个月,一个做智能家居的创业公司来找我聊合作,说他们新方案用 RISC-V,希望我帮忙调 BSP。我看了一眼他们的 Kconfig,default 值全设成 y,连 CONFIG_DEBUG_FS 都开了。我喝了口已经凉透的茶,茶叶沉在杯底,像一粒没烧熟的 BootROM。我说:“你们先看看自己 bootloader 里那个 memset 初始化,有没有在 cache enable 之前清过 L1 dcache。” 对方愣住。我没再说话,打开终端,tail -f /var/log/syslog,里面正刷着一条重复十一次的日志:“[ 2341.782910] i2c-0: timeout waiting for bus ready”。时间戳是昨天下午四点十五。我数了三遍。


  明天先把告警阈值调了——CPU 超过百分之八十二持续两分钟,就直接钉钉电话我。不管是不是误报。反正泡面还有五包,监控屏上的胶布,也该换新的了。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!