Technical leader in a team of up to 5 engineers. Key influencer and decision maker.
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!
Negotiate technical requirements with customers and contributors.
Architect and design the software solutions. Document the specifications.
Debug complex 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 customer sites to integrate, test, commission and demo software.
Honours Degree in Computer Engineering, Computer Science or a similar discipline.
Minimum 10 (ten) years experience in the design and development of software through all stages of the software development lifecycle; from concept through delivery to customer.
Architecture and design of software solutions using formal methodologies, e.g. UML.
Advanced C coding experience for real-time embedded software solutions.
Linux device driver, kernel and user space application development.
Expert in comms networking protocols, e.g. TCP/IP, UDP, SIP, RTP and Ethernet.
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.
Coding in C++, PHP, Python, Perl, Linux Shell Script (e.g. Bash) or assembler.
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.
Remuneration will be proportional to your level of experience. Performance will be regularly reviewed and merits will be commensurate with successful results and the financial profits we collectively achieve as a team. You will also grow your expertise in a challenging and exciting environment where you will work closely with highly experienced engineers and customers.