Nuvation Energy is looking for a talented, innovative Senior Embedded Software Developer, Advanced C++, who successfully combines architecture skills, deep technical expertise, continuous integration/validation experience, and project leadership. This is a full-time position in our Waterloo Office.
The ideal candidate has demonstrated experience working with multi-discipline teams, has sound knowledge of software engineering practices, and is comfortable in a highly collaborative environment. Proven experience is a must, but so are technical creativity and the ability to learn. In this role you will be a critical member and leader in Nuvation’s engineering group. If you are looking for constant challenges on a wide variety of design problems, this is the job for you.
Nuvation is committed to putting our employee health and safety first by following provincial guidelines safe workplaces. Most of our employees work from home with only a handful onsite for essential work.
The nature of this role requires you to reside local to the Waterloo Region. You will spend most workdays remote with the occasional office visits to interact with hardware systems.
WHAT DOES NUVATION ENERGY DO?
Nuvation Energy is committed to the adoption of energy storage in every aspect of power generation and consumption. Our fourth-generation battery management system (BMS) represents over a decade of product innovation and is currently used in over 100 energy storage projects worldwide. Our BMS has been used to electrify RVs, planes, and ships. It’s been used to power EV charging stations, buildings, and islands.
In addition to offering a superior BMS, our engineering team provides a range of energy storage system development services, including remote and on-site system integration support for our battery management systems.
You will be working on the system software that includes:
- Real-time execution over multiple processors
- Control and data aggregation of multiple battery cells (100s to 1000s)
- Interfacing with third party controllers/equipment and adhering to industry standards (SunSpec Energy Storage Model)
- Modelling, simulation, implementation and verification of advanced algorithms
WHO IS NUVATION ENERGY?
At Nuvation, we are engineers to the core – it is our culture and we engage in it as a team sport. We enjoy gnarly challenges and see creative opportunities, where others see problems. We specialize in the ridiculous and emphatically reject the limitations of conventional wisdom.
We are huge proponents of ‘dogfooding’ – i.e. using what we build. In our spare-time we stop engineering for fun and money, and start engineering for fun alone. We built e-Rex (an electric car), BESSIE (an EV charging station), a Robot Bartender, and other arguably useful inventions that require an incredible amount of engineering expertise to make them work!
We are fanatical pragmatists who revere logic, process, repeatability, and methodology. You will be working with highly competent team members who are wired to respond to challenges with innovation. We’re very comfortable skating on the bleeding-edge of technology.
Our business fuels our culture, and our culture fuels our business. We love the work that we do and enjoy working with each other every day.
If this sounds like an environment where you can thrive, come join us!
- Engineering Execution – Actively contributing to the delivery of our Engineering Services. All levels of technical activity will be involved, ranging from design and development to in-lab bring-up. This will be your primary activity – creating new products for Nuvation and our customers, bringing into the world products that never existed before.
- Technical Development – Developing your technical skills, knowledge and leadership through a work environment that provides mentoring and open collaboration.
- Customer Interaction – Ensuring project success by working directly with team members to provide timely and accurate project updates to clients. Providing pre-sales and post-sales technical resources to support our Sales Account Managers.
- System Architecture – Identify and define architecture level solutions that meet the technical and non-technical requirements of the system/product.
- Technical Leadership – Leading, defining, and evolving software development methodologies and resource.
QUALIFICATIONS & REQUIREMENTS
- Extensive experience with advanced C++ 14/17/20 design and development
- Advanced algorithms research, simulation, implementation and validation RTOS experience and/or working on bare metal systems
- Debugging multi-threaded / multi-processor systems and using tools such as GDB for remote debugging
- Working with one or more network protocols ( Modbus TCP/RTU, UDP, TCP/IP, DHCP,HTTP, mDNS)
- Writing effective unit tests, ideally within a dual-targeted test-driven development flow
- Advanced python design and development (applied to our testing infrastructure)
- Familiar with a Continuous Integration (CI) process and test development. Nuvation uses Gitlab as our CI platform which includes Hardware-in-the-Loop and Battery-in-the-Loop test systems
- Experience with software development best-practice, in areas like:
- Design documentation – figuring out the work to be done before implementation
- Design implementation – coding, unit testing, peer reviews
- Design validation – unit testing, system testing, integration, and final releases
- Experiences with planning projects and generating cost estimates for Requests for Proposals and for Change Orders
- Experience working with stakeholders to determine infrastructure and operational impacts, changes and schedules to meet both product and business architectural needs
- Experience guiding development in designing reusable software components in compliance with standards and industry best practices
- Experience defining and documenting relevant software patterns and design mechanisms to be used to implement the underlying components
- Experience reviewing and approving designs created by the development team
- Experience with structured software development methodologies such as Agile
- Experience with key software areas such as networking, system interfaces, communication protocols, sensors, device drivers, etc.
- University degree or College Diploma in Electrical/Electronics, Mechatronics or Computer Science, or equivalent experience
- Experience with software/hardware safety certifications (UL 1998/991)
- Experience with static and dynamic software analyzers
- Experience working with power management and battery systems
- Experience working with web systems
- Experience with encryption, security and authentication
- Design experience in a complementary discipline
GENERAL SKILLS & CHARACTERISTICS TO BE SUCCESSFUL AT NUVATION
All Nuvation employees require a common set of general skills & characteristics – your capability in these areas will enable you to be successful at Nuvation. We take these skills and characteristics seriously – being a Nuvation employee requires more than just experience and role-specific skills.
- You want to learn, and you do so quickly
- You are effective at multi-tasking and switching gears by prioritizing, focusing, and adapting to the multiple concurrent tasks/projects at hand
- You are proficient at estimation and critical thinking
- You are organized, independent, and self-managing
- You have strong written and verbal communication
- You desire to work and collaborate with people and teams – you make your colleagues better and you grow from their contributions
- You focus on results, and with quality You are passionate and creative – with a willingness to go beyond the normal
- You are hands-on and practical
Nuvation offers competitive salaries with health, dental, vision, and disability benefits. All positions have opportunities for variety, innovation, and success. We have a fast-paced, yet relaxed work environment, and a unique corporate culture that will support and encourage you to perform at your personal best for your colleagues and our customers. We promise you respect, teamwork, and appreciation for a job well done.