Embedded Software Engineer 

We seek experienced Embedded Software Engineers with a proven passion for the development of software for Linux based embedded systems.

  • ROLES & RESPONSIBLITY

  • ESSENTIAL SKILLS REQUIRED
  • ADVANTAGEOUS SKILLS

  • 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.

BENEFITS

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.