Solid understanding of CPU architecture (core, cache, memory models, multiprocessing, coherency etc.) and associated hardware blocks (cache controllers, timers, interrupt controllers etc.)
Exposure to developing/ analyzing/ modifying CPU centric system software for kernel, bootloader and power management software
Ability to design and implement prototype software to demonstrate and analyze new ideas and concepts
Ability to derive, document, and present high-level system requirements from the associated detailed technology requirements.
In addition, at least 7 years of prior industry experience in one or more of the following areas is required:
Exposure and good understanding of any multi-processor CPU Architecture (preferably ARM) either through development or debugging of system software or through in-depth analysis of benchmarking suites
Good understanding of CPU architecture concepts Pipelining, Exception handling, Cache hierarchy, Cache coherency, Memory Management, Low-Power states
Experience and good understanding of SOC memory architectures, including on and off chip memory blocks.
Experience in porting and debugging Linux or any Real-Time OS on to a new target
Software partitioning with emphasis on hardware requirements and the corresponding impact to cost, flexibility, scalability, and reusability.
Demonstrated ability and experience in working with global cross functional teams.
Skills and experience in the following areas is a plus:
Strong C and C++ programming skills along with good knowledge of data structures
Programming in ARM assembly language
Development of device drivers in Linux particularly in the area of power management
Experience in porting and debugging bootloaders like UEFI or uboot on to a new target
Exposure to working with debugging tools like Lauterbach Trace32
Exposure to compiling, loading and running software on pre-silicon platforms like models, FPGA, Palladium, Veloce etc.
SW architects participate in a wide range of engineering activities across many functional teams. Responsibilities include gathering and distilling requirements from multiple sources, proposing architectural solutions, communicating architectures across various technology teams, and providing follow-up guidance as needed.
Some travel will be required in order to collaborate across multiple locations.
Required: Bachelors degree in Computer Engineering and/or Electrical Engineering
Preferred: Masters degree in Computer Engineering and/or Electrical Engineering or equivalent.