Step 1: identify a role
The first thing we did was identify the job role that we thought an ARM Accredited Engineer would perform. We asked ourselves "What does industry need from an ARM Accredited Engineer?". In answering this question we researched job adverts, and talked to HR representatives, hiring managers, technical trainers, engineers and support staff.
Step 2: create a job description for that role
Once we were comfortable that we had identified the role that would appeal to the widest cross-section of embedded systems and software engineers, we set about breaking down that role into over 50 ARM-related tasks that we would expect the jobholder to be capable of.
Examples of the tasks we identified are:
- Applications Development – develop software for SMP multi-core systems
- Firmware Development – initialize an MMU
- Firmware Development – develop device drivers/BSPs
- Firmware Development – develop interrupt handlers
- Generic Development – cross compile code
- Software Debug – debug cache coherency issues
- Software Optimization – write performance efficient code
- Software Optimization – write software for cached systems
Step 3: identify the knowledge each of these tasks requires
Using this comprehensive list of tasks we then identified the ARM-specific knowledge required for performing these tasks competently. This led directly to the development of the AAE syllabus.