Senior Embedded Software Engineer
Plano, Texas
About Caban
Caban Systems, a leader in the design and manufacture of software-enabled energy storage and management systems for the telecommunications industry, delivers modern infrastructure solutions to its customers, while substantially reducing operational expenses and increasing uptime.
We deploy end-to-end turnkey solutions with a three-part system solution, including lithium-ion energy storage systems, cloud-based remote monitoring software, and Energy-as-a-Service (EaaS) offering for mobile sites, fixed networks and fiber nodes. Our energy management system is designed to supply primary and backup power for reliable connectivity, increased transparency and a significant reduction in emissions.
We are looking for a talented senior embedded software engineer to help us commercialize our energy storage and data platforms. We are scaling energy storage solutions and cloud-based data services for our telecommunications customers. We have several positions open in our Texas facility.
Responsibilities
- Work on energy storage systems for use in the telecommunications market
- Engineer energy storage products including algorithms, architecture, firmware implementation and validation
- Enhance and debug new and existing real-time software in C and C++ in RTOS environments for for 32-bit ARM® Cortex® processors
- Create and implement product requirements to enhance product performance
- Take ownership of the battery management system (BMS) software
- Work closely with hardware engineers to optimize performance
- Provide system-system interface using various protocols: ModBus, CAN and RS-232
- Work closely with gateway/edge team to implement OTA update strategy
- Use of JIRA and bitbucket to track issues and develop collaboratively
- Standardize, automate, and document development and production environments
Requirements
- Bachelor of Science in Electrical Engineering, Computer Science or related field
- 5+ years of embedded software development experience
- Possess expert software fundamentals including architectural design, algorithm development, data structures, code modularity, and maintainability
- Strong C/C++ experience for microcontrollers
- Experience with Python, Cython, GCC, Make and shell scripting
- Multi-threaded processing, multi-processor communication & synchronization, task scheduling
- Knowledge of interface protocols: I2C, SPI, CAN, Modbus, etc.
- Experience working with ARM® Cortex® processors (even better STM32)
- Experience with battery systems and/or solar controllers
- Experience developing and releasing firmware for safety-critical applications
- Thorough understanding of CI/CD pipelines, unit testing, and automated testing
- Ability to debug complex system level issues and drive solutions spanning multiple hardware and software subsystems
- Ability to collaborate and communicate complex technical concepts
- Above average knowledge of sensors, ADCs, DACs and ability to review electrical (PCB) schematics
- Experience with lithium-ion battery technologies and power systems (BMS, State-of-Charge, DC and AC charging products) is a bonus.
All qualified candidates will receive consideration for employment without regard to race, color, religion, sex, gender identity, sexual orientation, national origin, disability, or protected veteran status.