Step 1: identify a role
The first thing we did was characterize the job role that we thought an ARM Accredited Engineer would typically perform. We asked ourselves, "What does industry need from an ARM Accredited Engineer?” To answer 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 had characterized the role in a way that would appeal to the widest cross-section of embedded systems and software engineers, we pinpointed over 50 distinct ARM-related tasks that the jobholder should be capable of completing.
Examples of the tasks we identified include:
- Applications Development – develop software for Symmetric Multi-Processor (SMP) multi-core systems
- Firmware Development – initialize a (Memory Management Unit) MMU
- Firmware Development – develop device drivers/Board Support Packages (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
From this list of tasks we identified, for each distinct task, the ARM-specific knowledge that would be required to perform the task competently. The resulting list of knowledge items was then classified into subject categories. This led directly to the development of the AAE syllabus.