Embedded Firmware EngineerOctopus Energy

London, UK 26-07-2023
ClimateTech
Open Source
CleanTech
Help us make a big green dent in the universe. We're on a mission to drive the global renewable energy revolution, and we need loads more people to help us make our vision a reality.

We are looking for an Embedded Firmware Engineer with experience in bare metal programming for both proprietary and open source software for a range of IoT devices that use various wired (e.g ethernet, Modbus, CAN, RS232) and wireless interfaces (e.g. wifi, Zigbee, BLE, Zwave) for connectivity to other devices and the internet. 

Working alongside the hardware engineers and the platform team, the candidate will be responsible for developing firmware, taking it into volume production and maintaining it in the field by providing updates as required.

Responsibilities:

    • Write well structured, testable, efficient and maintainable code
    • Deliver high quality C, C++, Python code within complex multi-threaded applications in real-time operating system (FreeRTOS) 
    • Develop software for communication with wired industrial communication protocols (e.g. CAN, Modbus, Ethernet/IP), Internet protocols (e.g. HTTP, FTP), and wireless (e.g. Wi-Fi, Bluetooth, Zigbee) devices.
    • Develop firmware for 32-bit microcontroller based electronics devices communicating to other peripherals through serial UART, I2C, SPI, etc. 
    • Define and implement MQTT pipe and topic structure for connectivity to AWS and for IoT data collection
    • Specify, design and implement architecture, power management, functionality and behaviours of embedded subsystems. 
    • Hands on hardware board bring-up and design validation, system debugging and code optimisation. 
    • Build and test production images, OTA update packages
    • Work with the platform team to implement and continuously improve OTA update procedures
    • Work with git based repositories

Requirements:

    • Proficiency in C, C++, embedded firmware development for real time operation 
    • Experience with scripting languages (e.g. Python, Bash, Node.js, JS, Perl)
    • Working with networking and serial protocols (e.g. Ethernet, CAN, RS232) and RF systems (wifi, Bluetooth, BLE, Zigbee)
    • Experience with FreeRTOS and other microcontroller operating systems
    • Working experience with cloud technologies e.g. AWS 
    • Embedded security principles (e.g. secure boot, FW signing)
    • Experience with OTA update and configuration tools such as Mender.
    • Knowledge of containerization and container management e.g Docker
    • Experience of reading schematics and data sheets to assist in software and hardware debugging.
    • Strong build, debug and test skills, comfortable with using test equipment (DMMs, oscilloscopes, logic analysers) and software debug tools
    • Experience in QA/QC, issue tracking using tools (e.g github, Jira) and documentation
    • Ability to work flexibly across projects to meet challenging, customer-driven deadlines
    • B.S Degree in Computer Science, Electronics Engineering or similar
If this sounds like you then we'd love to hear from you.

Studies have shown that some groups of people, like women, are less likely to apply to a role unless they meet 100% of the job requirements. Whoever you are, if you like one of our jobs, we encourage you to apply as you might just be the candidate we hire. Across Octopus, we're looking for genuinely decent people who are honest and empathetic. Our people are our strongest asset and the unique skills and perspectives people bring to the team are the driving force of our success. As an equal opportunity employer, we do not discriminate on the basis of any protected attribute. Our commitment is to provide equal opportunities, an inclusive work environment, and fairness for everyone.


c

Applications are now closed