Sr. Engineer Firmware Engineer
Описание от работодателя
POSITION SUMMARY
We are looking for an experienced Embedded Firmware Engineer to develop high-performance system management firmware for data center equipment. Key responsibilities include the design and enhancement of firmware for small form factor devices and the execution of complex debugging protocols. The role requires a collaborative mindset to engage effectively with global development teams and contribute to the evolution of our hardware-software ecosystem.
RESPONSIBILITIES
Requirements analysis: Requirements gathering, use case analysis, device and application prototyping.
Project management: Project planning, task estimation, software metrics collection, version control
Solid understanding and application of Open Source and its licensing models
Full lifecycle software application development: Design, programming, debugging, peer review, unit testing, performance tuning, integration
Documentation: Program commentary, design documentation
Product testing: Unit testing, bench testing, system integration testing
Leadership: Effective team member and/or lead engineer, consistent positive attitude, creativity
Hardware development support: Software support for hardware development and testing
Other tasks and activities as required by management.
QUALIFICATIONS
REQUIREMENTS
9+ years of relevant experience
BE, BTech or MTech degree or equivalent.
Experience with C/C++/python embedded firmware and Linux programming.
Proven experience with Yocto, Linux gcc build and debug tools.
Proven experience with GitHub/GitLab source code repository operations (commit, cloning, branching, etc).
Knowledge of x86 and ARM based server and data center infrastructure architecture.
Knowledge of hardware interfaces like SMBus/I2C, Ethernet, SPI, RS232/RS485, USB.
Knowledge of industry standard initiatives and standards such as Open BMC, Redfish, SNMP and working with open-source software.
Knowledge of networking protocols and related debug tools.
Experience with Agile and CI/CD software development process methodologies.
Strong experience with documenting the design processes and architecture.
Strong analytical skills and decision-making capabilities.
Excellent English communication skills, verbal and written.
PREFERRED:
Exposure to IoT technologies
Expertise with software programming languages, frameworks, and subsystems including but not limited to:
C++, C, C#, JavaScript, Python, Go, Perl, Shell
Linux kernel, device drivers and Linux device tree, filesystems, networking, serial communications, real-time operating systems (RTOS), bare metal
Embedded Linux
Infrastructure and application development experience using technologies and architectures such as:
IP networking: TCP, UDP, TLS, DNS
Serial communications: RS232/485
Protocols: ModBus, BACnet, SNMP
Platforms: ARM, x86, SoC
Familiarity with software development environments and tools:
Integrated platforms like Eclipse, CodeWarrior, Visual Studio
Source code version control: Git
WireShark, Docker, Jenkins, VirtualBox, VMWare, BitBake, Yocto