职位概要:
我们正在寻找一名熟练的嵌入式Linux软件开发人员加入我们的工程团队。在这个角色中,您将负责为我们的变频驱动器(VFD)设计、开发和维护强大的软件。您将跨整个堆栈工作,从硬件抽象层到应用级逻辑,确保高性能、可靠性和长期可维护性。
主要职责
• 系统集成:使用Yocto Project/OpenEmbedded设计和维护定制的Linux发行版。
• 软件开发:用C和C++编写干净、可维护且高效的代码。
• 代码质量与标准:通过静态分析、代码检查和遵循行业最佳实践来执行高标准。
• 构建系统:使用Make和CMake管理复杂的构建。
• 自动化与测试:使用Python和Pytest开发系统级测试和自动化脚本,以确保100%的功能可靠性。
• 基础设施:维护和改进CI/CD管道,并使用Docker确保一致的开发环境。
• 协作:使用Git进行版本控制,并领导/参与严格的代码审查,以确保代码质量的集体所有权。
必备资格
• 教育背景:电气工程、计算机科学或相关技术领域的学士学位。
• 开发经验(3年以上):在高功率或工业电子环境中具有自动化测试开发的经验。
• 嵌入式Linux专业知识:具有Yocto Linux的经验,包括创建层、配方和配置内核。
• 编程语言:精通C和C++。
• 质量保证:具有实施单元测试、测试驱动开发(TDD)和使用内存分析工具(如Valgrind、AddressSanitizer)的经验。
• 脚本编写:具有使用BASH和Python的丰富经验,尤其是用于像Pytest这样的测试框架。
• 构建工具:精通Make和CMake。
• DevOps工作流程:具有CI/CD集成和通过Docker进行容器化的经验。
• 跨平台能力:能够在Linux和macOS开发环境中工作。
• 语言:流利的法语和英语(书面和口头)。
加分技能
• 微控制器:具有STM32 MCU和使用STM32 HAL(硬件抽象层)进行开发的经验。
• 工业自动化:具有MODBUS、BACnet和EtherNet/IP等工业通信协议的经验。
• 硬件接口:具有与VFD(变频驱动器)和PLC(可编程逻辑控制器)合作的实践经验。
• 现代语言:熟悉Go(Golang)用于系统工具或后端服务。
• 安全性:了解安全编码实践和基于硬件的安全(如TPM、安全启动)。
面试流程
该职位的招聘流程将包括3次面试:
• 第一次面试与人力资源代表 - 通过Google Meet进行20分钟 - 一般讨论,确认兴趣
• 第二次面试与部门负责人 - 通过Google Meet进行30分钟 - 一般技术讨论
• 第三次面试与未来的同事和主管 - 现场1小时 - 深入的技术讨论+办公室参观
您将成为一个经验丰富的初创团队的一员,在这里:
• 您的声音将被听到,您将感受到工作的影响;
• 您不会在无休止的会议或演示中浪费时间;
• 您将努力工作并乐在其中。
工作环境与福利
• 地点:混合模式(60%办公室-实验室/40%在家)位于蒙特利尔市中心。
• 福利:4周带薪休假、残疾/人寿保险、扩展医疗保健、休闲着装。
• 文化:一个小而有效的团队,您的声音将被听到,没有无休止的会议。