What are the responsibilities and job description for the Firmware Developer position at Cosmic-I LLC DBA Northern Base?
Job Details
Job Title: Firmware Developer Location: Houston, Texas (Onsite) Duration: 6-12 Months
Key Responsibilities:
Design and develop software for Qualcomm ARM Snapdragon SOC hardware platforms.
Write efficient, reliable, and optimized code in C/C and other programming languages for ARM systems to ensure system functionality and reliability.
Collaborate with hardware architects to ensure seamless integration of software and hardware components.
Develop software that meets performance, reliability, and scalability standards.
Optimize software performance, including memory usage, processing speed, and energy efficiency.
Participate in system architecture design and contribute to technical decision-making.
Develop and maintain technical documentation for software development and testing.
Document software design, coding practices, and maintenance procedures.
Ensure the software meets industry standards, safety regulations, and project specifications.
Analyze project requirements and translate them into ARM software design specifications.
Write efficient, reusable modules that interfaces with hardware components such as sensors, actuators, and communication modules.
Test and debug software using simulation tools, hardware emulators, and on-target testing methods in simulated environments before deployment to real-world devices.
Collaborate with cross-functional teams to define software requirements and validate product functionality.
Provide technical support and troubleshooting for software-related issues.
Work in hybrid development environments (predictive and adaptive).
Required Skills and Qualifications:
Experience with developing firmware applications on ARM processors.
Expertise in ARM embedded architecture.
Expertise in C programming.
Experience working with UEFI Architecture and the EDK-2 platform.
Design and implement UEFI/BIOS modules in PEIM and DXE stages.
Engage in bare-metal development involving communication protocols such as UART, SPI, I2C, ADC, and DAC.
Experienced in debugging embedded firmware applications using JTAG, SWD debuggers.
Familiarity with Python, batch files, command shells, and other relevant scripting languages.
Familiarity with version control systems GitHub and CICD development pipelines.
Familiarity with bare metal systems, board bring-up, and bootloader architecture.
Familiarity with using logic analyzers, I2C analyzers, oscilloscopes, and other relevant tools.
Understanding basic analog and digital electronic concepts and ability to understand HW schematics.
Ability to understand technical specifications, data sheets, and develop firmware solutions based on requirements.
Solid experience with RTOS (Real-Time Operating Systems), embedded Linux, and other embedded platforms like ThreadX and Zephyr OS.
Understanding low-level hardware architecture, software optimization, memory management, and real-time processing.