Technical Leader – Embedded Software Development
ActiveVerified 6h ago
Job description
In This Role, Your Responsibilities Will Be:
- Design and implement embedded real-time software solutions that meet functional safety and cybersecurity requirements.
- Contribute to system architecture, system requirements definition, and software design activities.
- Allocate system requirements to software components and technical subsystems.
- Develop high-quality embedded software using C, C++, and scripting languages.
- Participate in agile ceremonies including sprint planning, backlog refinement, daily collaboration, and retrospectives.
- Perform object-oriented design, coding, debugging, and optimization of embedded applications.
- Conduct peer code reviews and ensure compliance with coding standards and secure development practices.
- Manage source code, branching, and releases using version control systems such as Git.
- Develop and execute unit, integration, and system-level testing activities.
- Investigate and resolve software defects and hardware-software integration issues.
- Prototype software solutions on custom hardware and support low-level board bring-up activities.
- Use debugging and diagnostic tools such as oscilloscopes, logic analyzers, JTAG, and debuggers to identify and resolve technical issues.
- Build and maintain Embedded Linux environments, including device drivers, device trees, boot loaders, and Yocto-based distributions.
- Implement data protection and cybersecurity features across products and development processes.
- Support compliance with cybersecurity standards, regulations, and product certification requirements, including EU Cyber Resilience Act (EU-CRA) considerations.
- Participate in continuous improvement initiatives involving performance optimization, code refactoring, automation, and software quality enhancement.
- Mentor team members and provide technical guidance to support team growth and project success.
Collaborate effectively with colleagues, stakeholders, and partners across multiple geographic locations.
- Strong experience developing embedded software on Linux-based platforms.
- Advanced programming skills in C, C++, and shell scripting.
- Experience with device driver development, Yocto build systems, and device tree configuration.
- Knowledge of boot loaders, preferably U-Boot, and familiarity with Linux kernel concepts.
- Experience working with ARM, PowerPC, or comparable embedded processor architectures.
- Understanding of embedded hardware components such as flash memory, ADCs, and RTC devices.
- Experience using industrial communication protocols including I2C, SPI, CAN, RS-232, RS-485, or Modbus.
- Knowledge of data management using SQLite, JSON, or similar technologies.
- Ability to develop, execute, and maintain unit and integration testing solutions.
- Experience using debugging tools such as GDB, JTAG, J-Link, and related technologies.
- Knowledge of secure coding practices and software vulnerability management.
- Understanding of open-source software licensing considerations.
- Experience working within agile software development methodologies.
- Familiarity with virtualized development environments.
- Experience using Azure DevOps or similar platforms for software lifecycle management and CI/CD implementation.
- Experience implementing encryption and data security mechanisms for embedded products.
- Ability to identify, analyze, and address software security vulnerabilities using industry-standard tools and practices.
- Strong analytical, problem-solving, and troubleshooting skills.
- Excellent verbal and written communication skills in English.
- Ability to adapt, learn quickly, and work effectively in evolving environments.
- Bachelor's degree in Electronics, Instrumentation, Telecommunications, Computer Engineering, or a related technical discipline.
- Experience developing products used for temperature, pressure, electricity, gas, or industrial measurement applications.
- Knowledge of UML or comparable modeling techniques for software architecture and design.
- Experience working with RTOS environments.
- Experience developing user interfaces using the Qt framework.
- Familiarity with distributed version control systems and collaborative development practices.
- Experience with static code analysis and coding standards compliance tools.
- Knowledge of software build automation frameworks and cross-platform development practices.
- Experience developing multi-threaded applications on single-core or multi-core processors.
- Exposure to cybersecurity standards and frameworks such as IEC 62443 and EU-CRA.
- Experience using AI-assisted development tools to enhance coding, testing, or productivity workflows.
- Familiarity with threat modeling techniques and security-focused development methodologies.
- Experience collaborating with geographically distributed engineering teams.