- 地点
- 浦那,印度
- 工作方式
- 现场办公
- 资历
- senior
职责
- 设计并实现满足严格功能安全与网络安全要求的嵌入式实时系统
- 在敏捷开发环境中工作,使用 Azure DevOps 或类似工具
- 与位于多个地理位置的跨职能团队协作
- 负责系统产品架构、系统需求与用户界面需求
- 将系统需求分配到技术领域、子系统和需求中
- 计划并执行软件开发活动,实现迭代开发中计划的功能
- 执行实时嵌入式软件的面向对象设计与编码
- 参与迭代计划会议、待办事项梳理会议和回顾会议
- 进行代码审查,确保代码质量符合标准编码规范
- 使用 Git 等版本控制工具管理代码变更
- 创建并执行单元测试和集成测试,验证固件需求
- 负责软件调试以及硬件/软件集成问题
- 在定制硬件上进行软件原型开发并执行底层电路板调试
- 通过代码优化、重构和提升实时性能来改进性能
- 使用示波器、万用表、电源、逻辑分析仪、嗅探工具等调试目标硬件板上的问题
- 遵循安全编码规范,执行静态和动态代码分析以发现漏洞
- 了解欧盟网络安全认证(EU-CRA)或类似网络安全产品认证所驱动的产品网络安全要求,并确保在整个软件开发生命周期(SDLC)中满足这些要求
必备要求
- 至少 15 年以上嵌入式软件开发经验,最好是在嵌入式 Linux 平台上
- 精通 C/C++ 和 shell 脚本编程
- 具备设备驱动程序开发、Yocto 镜像构建和设备树开发方面的实践经验
- 熟悉嵌入式系统中使用的 ARM 或 PowerPC 处理器架构、闪存、ADC 和 RTC 设备
- 具备使用 I2C、SPI、CAN、RS-232/RS-485 或 Modbus 等通信协议的经验
- 了解如何使用 SQLite、JSON 或类似方法进行数据库管理
- 具备使用手动或自动化方法开发和执行单元测试的经验
- 具备使用 GDB 调试器或类似工具在模拟环境和硬件板上进行软件调试的经验
- 具备使用 JTAG 或 J-Link 等工具进行电路板编程的经验
- 具备安全编码实践经验,并了解开源软件许可,以确保网络安全合规性
- 具备敏捷开发方法论的知识和经验
- 具备在 VMware 或其他类似虚拟环境进行代码开发的经验
- 具备使用 Azure 进行 DevOps 和实施 CI/CD 的经验
- 具备实施数据加密以保护产品内部关键数据和固件的经验
- 能够通过深入了解软件架构以及使用 Blackduck 等工具来识别软件中的安全漏洞,并满足欧盟 CRA 的要求
- 仪器仪表、电子与通信工程学士/理学学士学位
- 英语口语和书面表达能力强
- 较强的分析和解决问题的能力
- 较强的学习能力和应对不确定性的经验
- 指导并担任团队其他成员的技术导师
优先条件
- 有引导加载程序(首选 U-Boot)开发经验,并对 Linux 内核内部机制有深入了解者优先考虑
- 有从事温度、压力、电力或气体测量用嵌入式产品相关工作经验者优先考虑
- 具备使用 UML 或类似建模语言进行软件设计和架构开发的经验
- 具备实时操作系统(RTOS)方面的知识和经验,以及使用 QT 框架开发用户界面(UI)的经验
- 具备分布式版本控制系统(例如 GIT、SVN 等)的知识和经验
- 熟悉并使用静态代码分析工具(如 PC-Lint、Coverity 或 MISRA)的经验 - C 标准
- 具备使用 VS Code 或类似 IDE 进行代码开发的知识和经验
- 具备使用 CI/CD 进行平台和管道自动化测试的经验
- 具备单片机系统/微服务/软件开发/系统/模拟/测试的经验
- 具备网络安全功能实施经验,并熟悉 IEC62443 或 EU-CRA 合规性要求
- 具备使用 Copilot 工具进行代码开发或单元测试以提高生产力的实际经验
- 具备使用 Microsoft Azure 或类似工具进行威胁建模的经验者优先考虑
- 具备在地理位置分散的团队中工作的经验
Responsibilities
- Design and implement embedded real-time systems meeting strict functional safety and cybersecurity requirements
- Work in an agile development environment using Azure DevOps or similar tools
- Collaborate with cross-functional teams across multiple geographic locations
- Own system product architecture, system requirements, and user interface requirements
- Allocate system requirements to technical domains, subsystems, and requirements
- Plan and execute software development activities to deliver planned features in iterative development
- Perform object-oriented design and coding of real-time embedded software
- Participate in iteration planning, backlog refinement, and retrospective meetings
- Conduct code reviews to ensure code quality meets standard coding guidelines
- Manage code changes using version control tools such as Git
- Create and execute unit and integration tests to verify firmware requirements
- Debug software and hardware/software integration issues
- Prototype software on custom hardware and perform low-level board bring-up
- Propose performance improvements through code optimization, refactoring, and real-time performance enhancements
- Use oscilloscopes, multimeters, power supplies, logic analyzers, and sniffing tools to debug issues on target hardware boards
- Follow secure coding practices and perform static and dynamic code analysis to find vulnerabilities
- Understand product cybersecurity requirements driven by EU Cyber Resilience Act (EU-CRA) or similar cybersecurity product certifications and ensure they are met throughout the software development lifecycle (SDLC)
Must Have
- At least 15 years of embedded software development experience, preferably on embedded Linux platforms
- Proficiency in C/C++ and shell scripting
- Hands-on experience with device driver development, Yocto image builds, and device tree development
- Familiarity with ARM or PowerPC processor architectures, flash memory, ADC, and RTC devices used in embedded systems
- Experience with communication protocols such as I2C, SPI, CAN, RS-232/RS-485, or Modbus
- Knowledge of database management using SQLite, JSON, or similar
- Experience developing and executing unit tests manually or with automation
- Experience debugging software in simulation and on hardware boards using GDB or similar tools
- Experience with board programming using tools such as JTAG or J-Link
- Hands-on secure coding experience and knowledge of open-source software licensing to ensure cybersecurity compliance
- Knowledge and experience of agile development methodologies
- Experience developing code in VMware or similar virtual environments
- Experience with Azure DevOps and implementing CI/CD
- Experience implementing data encryption to protect critical internal data and firmware
- Ability to identify software security vulnerabilities through deep understanding of software architecture and tools such as Blackduck, and meet EU CRA requirements
- Bachelor of Engineering/Bachelor of Science in Instrumentation or Electronics and Communication Engineering
- Strong spoken and written English
- Strong analytical and problem-solving skills
- Strong learning ability and experience dealing with uncertainty
- Mentor and serve as technical guide for other team members
Preferred
- Experience with bootloader (preferably U-Boot) development and in-depth knowledge of Linux kernel internals
- Experience with embedded products for temperature, pressure, power, or gas measurement
- Experience with software design and architecture development using UML or similar modeling languages
- Knowledge and experience of real-time operating systems (RTOS) and UI development using the QT framework
- Knowledge and experience of distributed version control systems (e.g., GIT, SVN)
- Experience with static code analysis tools such as PC-Lint, Coverity, or MISRA - C standard
- Knowledge and experience developing code with VS Code or similar IDEs
- Experience with CI/CD for platform and pipeline automated testing
- Experience with microcontroller systems/microservices/software development/systems/simulation/testing
- Experience implementing cybersecurity features and familiarity with IEC62443 or EU-CRA compliance requirements
- Hands-on experience using Copilot tools for code development or unit testing to improve productivity
- Experience with threat modeling using Microsoft Azure or similar tools
- Experience working in geographically dispersed teams
公司简介
艾默生(Emerson)是一家全球性的自动化技术与软件公司,成立于 1890 年,总部位于美国密苏里州圣路易斯。业务涵盖流程自动化(控制系统、阀门、测量与分析仪表)、离散自动化,以及收购 NI(美国国家仪器)后形成的测试与测量业务,服务能源、化工、电力、生命科学、半导体等行业。
