This position will be part of a high-energy and skilled development team responsible for developing software development tools, production equipment and security modules to protect customers IPR in a hostile / non-trusted production environment. The systems developed include embedded systems (Arm for both MPU/MCUs) and PC software tools and components (using Python and C#). The technology involves the use of security / crypto functions.
As a Software Development Lead for Production Systems Variants, you will be responsible for taking the core products and developing / adapting them to meet the needs of a specific customers / partners (this is likely to be using a different production system and different third-party equipment to the core product). The role is a mixture of a customer facing, technical architect, project management and hands on software engineering project. The main responsibilities will include:
1. Working with senior management and the customer / partners to derive and gain approval for the specific requirements and technical architectural concepts for the specific variant (this involves embedded devices, software development IDSs, PC tools, and production systems).
2. To assemble work break down structure and risk identification / counter measures required to deliver the project which includes the development / integration / test planning and support for the project. This will identify the updates required to Secure Thingz core product, specific Secure Thingz development and developments required by third parties / partners.
3. To communicate the project concepts and operation with both the direct and extended Software Development Team.
4. To lead the development of specific updates including interface design, sub-system design, implementation integration and test by directly managing individuals (a team of 2-4 engineers) and by developing software as well.
5. To own and communicate the project deliverables and action lists to the team, senior management and partners.
6. To lead the integration / testing of the product and the analysis / scheduling of defect fixes.
7. Assisting the Senior System Architecture with the development of the longer-term architecture strategy / roadmap.
8. To ensure that internal processes are adhered to, and that process deficiencies / improvements are identified and communicated.
The role is likely to suit someone who is in a customer support role or a Senior Software Engineer who is used to dealing with customer issues and mentoring other engineers.
As we are a small company, you will have varied responsibilities and should be flexible with your work assignments. We want team members that have the drive, ambition, and ability to do what is needed towards on-time delivery.
Skills and Experience (Mandatory)
• Degree in computer science and or electronics or related field.
• Good communication skills written and verbal including presentation creation, and delivery.
• Strong leadership. Demonstrated ability to identify critical project success factors, driven and take ownership to accomplish on time delivery of quality systems.
• Proven ability to work with customers / independent organisations to derive engineering product requirements and propose a system architecture solution (using block diagrams and message sequence charts).
• Ability to partition and communicate how large work items will be broken into smaller units that can be integrated and tested.
• 3 to 5 years or more prior experience either of embedded system software development or PC software (C, C#, Python) and a working knowledge of the other software discipline.
• Used to working in an Agile environment (using Git / Jira)
• Ability to perform some European and International travel and to participate in conference calls in different time zones.
• The ability to take on varied responsibilities and to be flexible with work assignments.
Skills and Experience (Desirable)
• Knowledge of embedded development IDEs eg IAR Workbench, Eclipse
• Experience and understanding of microcontrollers at a “bare metal” level (ideally Arm Cortex v6m/v7m/v8m)
• Understanding of communications protocols (Sockets, TCP/IP, etc)
• Software development using JSON, XML
• Understanding of security / crypto functions: There will be ample opportunity to learn on the job.