Back

Senior Firmware Engineer

Remote
9 days ago
Full time role

Job Description

On behalf of Agrology, we are looking for a Senior Firmware Engineer that will assume ownership of embedded firmware development and lifecycle management for Agrology’s suite of environmental monitoring and sensing devices.

Agrology leverages a suite of sensors, artificial intelligence, and machine learning capabilities to optimize high-value crop management and minimize climate risk. Their software and hardware-as-a-service model collects data and provides predictive insights that empower growers to be proactive in resisting and adapting to climate-related threats such as fire, extreme weather, pests, disease, and drought.

About the Role

This role is ideal for a mid-career to senior level Firmware Engineer who has comprehensive experience developing MCU firmware. Your role will encompass the following key areas:

  • Full ownership and life cycle management of embedded MCU code from development to test and release

  • Close collaboration with the engineering team to implement new features and integrate new sensor technologies   

  • Writing comprehensive, secure, and efficient MCU code for multiple IoT devices

  • Updating existing code base for FUOTA and porting development environment

  • Testing and evaluating MEMS sensor solutions via development kits and evaluation boards

  • Assisting Hardware Engineering with PCBA bring-up, system debugging and troubleshooting

  • Obtaining expert knowledge of LPWAN protocols and keeping abreast of updates and regional parameter changes

  • Developing software/firmware workflows, development processes, and best practices

Knowledge, Skills, & Experience

Required competencies:

  • BS/MS in Computer Science, Computer Engineering, Electrical Engineering, or related STEM field

  • 5+ years demonstrated embedded firmware development for 32-64bit ARM Cortex MCUs

  • Extensive experience with C/C++ for bare metal or RTOS implementations

  • Previous experience developing and implementing board level communication drivers such as I2C, UART, SPI, and SDI-12

  • Experience with GCC, in-circuit debuggers/emulators, and embedded IDEs (IAR, Kiel, etc.)

  • Familiarity with common hardware development platforms (RPi, Arduino, Particle, Espressif)

  • Experience with GitHub automation, version control, and bug tracking tools

  • Technical writing skills and experience authoring formal engineering documentation