Embedded Software EngineerÂ
We seek experienced Embedded Software Engineers with a proven passion for the development of software for Linux based embedded systems.
-
Develop/modify/adapt Linux device drivers and board support packages for new processors, memory chips, I/O chipsets, I/O interfaces and boards e.g. x86, ARM, FLASH, DRAM, Ethernet, WiFi, ZigBee, 2G, 3G, CAN, SPI, I2C, I2S,GPIO, USB and PCIe.
-
Develop applications that demonstrate and validate new embedded chipsets and boards.
-
Code in C, C++, PHP, Python … and sometimes assembler and machine code!
-
Debug code at run-time using JTAG or ITP debuggers.
-
Profile and optimize the run-time performance of code.
-
Create and execute automated unit test, integration test and system test scripts.
-
Ensure software meets functional, performance and any standards-based expectations.
-
Travel to customersites to integrate, test, commission and demonstrate software.
-
Honours Degree in Computer Engineering, Computer Science or a similar discipline.
-
Architecture and design of software using formal methodologies, e.g. UML.
-
Advanced C coding of real-time embedded software solutions.
-
Linux device driver, kernel and user space application development.
-
Multi-thread, multi-process, multi-core processor application development.
-
Run-time debugging, performance profiling and performance optimisation of code.
-
Strong understanding of electronics and computer architecture fundamentals, e.g. microprocessors (ARM, x86), I/O chipsets, memories, digital buses and I/O interfaces.
-
A proactive problem-solver that works well within a team to get complex work done in a professional and timely manner.
-
Strong communication skills, written and oral, particularly in English.
-
Coding in C++, PHP, Python, Perl, Linux Shell Script (e.g. Bash) or assembler.
-
Experience in comms networking protocols, e.g. TCP/IP, UDP, SIP, RTP and Ethernet.
-
Programming for other embedded real-time operating systems, e.g. VxWorks, QNX.
-
Knowledge of security, cryptography and authentication protocols, e.g. SSL, IPsec, AES, SHA.
-
Experience of software version control systems and bug trackers, e.g. Subversion, GIT, Trac.