Dukosi is a leading-edge technology company developing revolutionary technologies that dramatically improve the performance, safety, and efficiency of battery systems, and enable a more sustainable battery value chain. Our unique cell monitoring platform based on chip‑on‑cell technology and proprietary contactless communication protocol is transforming battery systems for electric vehicles (EV), industrial transportation and stationary energy storage markets. Our environmental purpose is at the heart of our business and drives our search for new ideas and approaches to improve the technologies that can help transition to net‑zero emissions and a sustainable clean energy economy.
The Principal Software Engineer leads the development and delivery of embedded software for Dukosi products, owning technical direction, architecture, and execution across complex, multidisciplinary systems.
This role combines deep technical expertise with hands‑on delivery leadership, ensuring software is developed to the highest standards of quality, safety and performance, and successfully delivered into production. It serves as the technical lead for software development activities within a product or major subsystem, influencing design decisions, development practices and cross‑functional alignment.
This role is primarily a technical leadership position; however, candidates with experience in people’s leadership or an interest in developing into a management role are highly desirable.
Key Duties
Technical Leadership & Delivery
* Lead the end‑to‑end development of embedded software for Dukosi products, from concept through to production and support
* Own the technical delivery of major software subsystems, ensuring alignment with product requirements, quality and schedule
* Provide technical leadership to a team of engineers, guiding design, implementation and problem‑solving activities
* Act as the primary technical point of contact for software within cross‑functional project teams
* Contribute to planning, estimation and technical risk management
Architecture & System Design
* Define software architecture and contribute to system‑level design, including HW/SW partitioning and interface definition
* Ensure robust integration across embedded firmware, ASIC, system software and tools
* Drive design decisions that balance performance, scalability, safety and maintainability
* Support system‑level trade‑offs and architectural decisions across the product
Software Development & Quality
* Contribute directly to implementation of critical software components (hands‑on development)
* Ensure adherence to high standards of software quality, including coding standards (e.g. MISRA), testing and documentation
* Support debugging and resolution of complex system‑level issues across hardware and software boundaries
* Contribute to definition and execution of verification and validation strategies
Process & Continuous Improvement
* Contribute to and improve software development processes, including CI/CD, testing and code quality practices
* Support adoption of structured development approaches aligned with industry standards (e.g. ASPICE, ISO 26262, ISO 21434)
* Drive improvements in efficiency, quality and team effectiveness
Collaboration & Mentoring
* Mentor and support engineers, providing technical guidance and fostering development
* Collaborate with hardware, systems, validation and applications teams to refine requirements and deliver integrated solutions
* Promote best practices in software engineering across the team
Experience
* 10+ years of experience in embedded C software development
* Proven track record of delivering complex embedded software systems into production
* Strong experience working at both module and system level in multidisciplinary environments
* Demonstrated experience leading technical work across projects or teams, including guiding or coordinating engineers
* Experience developing low‑level embedded software (e.g. drivers, RTOS or bare‑metal systems)
* Experience with embedded toolchains (e.g. IAR or equivalent), debugging tools and hardware interfaces
Desired Skills
* Strong programming skills in C/C++ (embedded), with additional experience in Python or similar
* Strong understanding of embedded architectures, real‑time systems and hardware interfaces (SPI, I²C, UART, etc.)
* Ability to design and reason about complex systems spanning hardware and software
* Strong debugging and problem‑solving skills across system boundaries
* Ability to balance hands‑on development with technical leadership responsibilities
* Experience with modern development practices (version control, CI/CD, automated testing)
* Ability to support and develop engineers through mentoring, coaching and feedback
* Experience balancing technical leadership with team coordination responsibilities
* Excellent communication skills and ability to influence across teams
#J-18808-Ljbffr