Job Description
AEM is the global leader in innovative mission critical weather and water monitoring and intelligence solutions. Their family of innovators offers world-class hydrometeorological technologies and services, including sensors, dataloggers, telemetry, and advanced analytics and software. Their technology and services enable the agencies they serve to be more resilient, to protect communities and infrastructure, and to respond to the climate challenge.
AEM is seeking a senior firmware developer to join our team! As a senior firmware engineer at AEM, you will be responsible for leading the development of firmware for our environmental monitoring products. You will also play a critical role in ensuring the firmware is designed for reuse across multiple products and platforms, where possible.
Job Responsibilities:
- Under minimal supervision, the Senior Firmware Engineer will architect, design and lead the development of firmware for embedded systems of various complexities (bare-metal, RTOS) with a focus on code reusability.
- Conduct research and evaluation of new technologies in embedded firmware development.
- Develop and implement best practices for code reuse and manage the reuse library.
- Develop and maintain documentation on the build status of the code.
- Responsible for mentoring and coaching less experienced firmware engineers.
- Bachelor’s Degree in computer science, electrical engineering, or closely related fields.
- A minimum of 10+ years relevant experience in embedded systems development.
- Proven track record developing processor based embedded systems.
- Excellent written and verbal communications skills, excelling in working withing and across functional teams.
- Experience with system level and architecture design of embedded systems is a must.
- Ability to architect embedded firmware, from high level task scheduling to low level HALs.
- Knowledge and hands-on experience of RTOS is a must.
- Must have experience on multi-threading system.
- Experience in structured design, OOD, code reusability, and best practices for embedded systems.
- Must be experienced with the following interfaces/protocols - UART, SPI, USB, Ethernet, Wifi, Bluetooth/BLE.
- Must be able to read and understand schematics and be capable of debugging new designs.
- Ability to troubleshoot product failures on PCBs, power supplies and electromechanical assemblies.
- Extensive experience of firmware code reviews, test and validation methodologies.
- Experience with unit testing and test-driven development (Devops experience configuring and maintaining Jenkins is highly desirable).
- Experience with low power data collection, storage, and scheduled transmission designs
- Experience with sensor protocols (SDI-12, 4-20 mA loops, etc)
- Experience with any of the following is highly desirable: Kotlin, Contiki OS, Embedded Linux
Additional Information:
- Must be eligible to work in the U.S. or Canada without company sponsorship, now or in the future, for employment-based work authorization. F-1 visa holders with Optional Practical Training (OPT) who will require H-1B status, TNs, or current H-1B visa holders will not be considered. H1-B and green card sponsorship is not available for this position.
US Benefits include: Medical, Dental, Vision, Life Insurance, Short-Term & Long-Term Disability & 401k match of up to 3%.
US Compensation Range: $90,000-$125,000
AEM is an Equal Opportunity Employer.