Flock Safety is the leading safety technology platform, helping communities thrive by taking a proactive approach to crime prevention and security. The role involves developing high-quality MCU firmware for solar-powered devices and collaborating with stakeholders to ensure software and firmware quality.
Responsibilities:
- Develop high-quality MCU firmware for existing and next-generation platforms
- Work with key internal stakeholders and external vendors to ensure deliverables meet our development and design bar
- Develop customizations in the drivers
- Collaborate cross-functionally to deliver quality software and firmware
- Learn about the firmware software development lifecycle and tools, get your development environment set up, and your build server up and running
- Learn about different MCU-based and Android-based devices that our team is working on
- Gradually ramp up on each product, deliver a small bug fix or an improvement in the code base
- Continue making improvements to device firmware
- Familiarize yourself with firmware-common library, and how it is integrated into existing projects and it’s current roadmap
- Make valuable contributions to our firmware-common library, help with its integration into our MCU-based products, identify gaps and needs in the library and collaborate with partners to establish its roadmap
- Deliver larger-scope fixes and improvements for MCU-based devices and on the Android host side
Requirements:
- A Bachelors, Masters, or Ph.D. in Electrical Engineering, Computer Engineering, Computer Science, or related field with 8+ years experience
- Proven track record of working with a large fleet of connected devices, a good understanding of different phases of their lifecycle and related challenges
- Development experience within embedded systems/firmware design at multiple stages of the product life cycle (prototyping, pre-production engineering validation, release and scaling)
- Experience with MCU firmware development bare-metal and RTOS-based
- Experience with device bring-up within MCU bare metal, RTOS, Linux
- Experience with Android system architecture (HAL, Android Linux Kernel, Android Build System, etc)
- Hands-on experience developing, testing, and troubleshooting systems using the Controller Area Network (CAN) protocol
- Proficient in C and C++
- Comfortable working in a Linux-based development environment, including custom tooling, containers, Gerrit/Git, etc
- Experience with ARM Cortex Microcontrollers and more specifically, with ST MCU and their development ecosystem is a big plus
- Experience with FreeRTOS or Zephyr is a plus
- Experience with Qualcomm chipset devices is a plus
- Experience with battery-powered/power constrained devices is a plus
- Strong knowledge of Linux internals (process scheduler, memory management, concurrency, synchronization, memory allocation, file system, networking, storage, subsystem architecture)
- Experience developing Linux Kernel drivers for common peripheral bus technologies, including SPI, I2C, UART, is a big plus
- Experience with Kotlin and Android apps development is a plus