Experience & Qualifications
• 3-5+ years Linux/C programming skills experience required along with a relevant 3rd level qualification.
• Proven experience developing and debugging multi-threaded systems.
• Understanding of UNIX/Linux operating systems and programming environments.
• Strong coding skills with proven ability to write well documented, maintainable, and testable code.
• Excellent problem-solving skills and the ability to demonstrate logical troubleshooting steps when working on software bugs.
• A genuine passion and interest in technology and software development with a thorough knowledge of best practices and new technologies.
• Self-management skills, particularly in respect to prioritisation and execution.
• Detail-oriented individual with the ability to rapidly learn and take advantage of new concepts, business models, and technologies.
• Has the ability to communicate technical concepts to non-technical people.
Responsibilities
• Design – working with Product Management and Project Management on new product design architecture.
• Development – taking designs and making them happen. Writing and testing code using strict development methodologies including code reuse, maintainability, testing and documentation.
• Building high volume platforms - linking millions of users worldwide at the same time.
• Quality Assurance – developing test cases in line with best practice methodology.
• Project Environment - Working in a cross-functional agile team to develop features with collaboration across software stacks.
Desirable
• Linux Kernel and/or driver development
• Unit Test driven development
• Bluetooth classic or BLE development
• Experience with GSM AT Commands / Modem integration
• GPS/Positioning
• CAN Bus experience
• Sensor integration
• Development and debug of firmware such as u-boot