Job Area:Engineering Group, Engineering Group > Software Engineering
General Summary:
Key Responsibilities
Work on device bring-up, platform initialization, and hardware enablement activities.
Debug complex system-level issues involving hardware and software interactions.
Collaborate with hardware, firmware, validation, and system teams to ensure feature delivery and product stability.
Analyze system crashes, performance bottlenecks, and power-related issues.
Optimize software for performance, power efficiency, and memory utilization.
Support integration and validation of recent peripherals and subsystems.
Participate in architecture reviews, code reviews, and technical discussions.
Develop diagnostic tools, scripts, and automation to improve engineering productivity.
Contribute to technical documentation and knowledge-sharing initiatives.
Required Qualifications
Bachelor's or Master's degree in Computer Science, Electronics, Electrical Engineering
5+ years of experience in embedded software development.
Solid programming skills in C/C++.
Experience developing and debugging low-level software drivers.
Solid understanding of:
Embedded system architecture
Device drivers and hardware interfaces
Memory management concepts
Cache architecture and optimization
MMU (Memory Management Unit) concepts and address translation
Clock architecture and clock management
PMIC (Power Management IC) fundamentals
Interrupt handling and DMA concepts
Experience working with common embedded peripherals such as:
UART
SPI
I2C/I3C
GPIO
USB
PCIe
UFS/eMMC/SD
Experience using debugging tools such as JTAG, Lauterbach, or equivalent.
Solid problem-solving and analytical skills.
Preferred Qualifications
Experience with ARM-based SoC platforms.
Understanding of boot flows, firmware, and system initialization.
Experience with Linux Kernel driver development or RTOS environments.
Knowledge