Website Alexander Daniels Global
The only recruitment company focused on Additive Manufacturing
Alexander Daniels Global is looking for a Firmware Software Engineer to join our client in an exciting project in their R&D department. The right person will be part of the engineering team and will be responsible for the design and development of the firmware. Out client is a leading multinational technology company and if successful, the candidate will be offered the opportunity to work in an international organization with colleagues coming from all over the world, an attractive benefit package, and diverse internal growth and career opportunities.
Roles and responsibilities:
- Software developer: be a proficient software developer, capable of develop high quality, well-architected, good performance software.
- Teamwork: be an excellent team player
- Process oriented: understand, follow and improve software development processes including Product Life Cycle.
- Understanding of Requirement processes elicitation and typical software development processes and models.
- 3+ years of experience of product/ software development or similar work on software quality.
- In-depth understanding of low-level real-time firmware development.
- In-depth understanding of modern operating systems, especially Linux.
- In-depth understanding of C++.
- Demonstrated ability to work with a group of peers.
- Demonstrated ability to make in-depth technical or business contributions working with other engineers.
- High level of initiative, with an ability to plan and manage tasks, ability to work collaboratively, both within and outside one’s own group.
- Strong written and verbal communication skills in English.
- Quality and process oriented, capable of managing automated testing infrastructure and planning for improvements in Quality Assurance and Quality Control areas.
- Experience in embedded software development.
- Experience in real time operating systems and tool chains.
- Experience in concurrent programming. Experience in multithreaded and/or multi-process systems, understanding usage of synchronization primitives, different communication paradigms, mutual exclusion, producer-consumer schemes, memory sharing, data communication and priority assignment.
- Experience in code debugging: usage of debuggers and (desirable) tracing tools, memory corruptions and leakage detection and correction, stack analysis.
- Knowledge of interchange formats such as PDF and typical CAD and Design applications such as Autocad or Adobe CS Suite.
- Experience in state machine design and implementation, event driven control, complex error detection and recovery, synchronization between multiple devices with multiple states.
- Experience working with distributed teams.
- STL knowledge and usage.
- Experience with distributed control, communication protocols (i.e. RPCs, XDR, CORBA…
- TCL, Perl scripting languages.
- Experience with ARM & MIPS microprocessor architectures.
- Experience with real time operating systems such as VxWorks, ThreadX or Integrity RTOS.
- Experience in developing with ASICs or FPGA based devices.
- Knowledge or electrical and mechanical development processes.