Staff Software Engineer - Embedded
Alarm.com is a rapidly expanding technology company developing innovative cloud and device solutions across a wide range of cutting-edge technologies that provide a unified, connected service to millions of residential and commercial properties in the US and abroad.
About the role
We are looking for a talented and passionate Staff Embedded Software Engineer for the Device Engineering team to help us define the future of the Internet-of-Things for residential and commercial properties by creating and integrating devices that connect with our robust cloud using next-gen communication stacks. As a Staff engineer you will act as a technical leader and subject-matter expert, architecting software systems, driving technical decisions across teams, and mentoring engineers across a diverse set of technological backgrounds to design devices, build and manufacture hardware, architect and implement software, and collaborate in an agile and fast-paced environment.
Requirements
- Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, or a related technical field.
- 10+ years of professional software engineering experience, with a strong focus on native/embedded systems development.
- Experience developing and working with a large complex C++ codebase.
- Expert-level proficiency in C++ (C++11/14), including modern language features, templates, and memory management.
- Expertise in highly efficient design and implementation for (disk, RAM and compute) constrained devices.
- Experience with C++ in bare-metal and RTOS-based environments (FreeRTOS, Zephyr, ThreadX, or similar).
- Expertise in implementing large complex systems.
- Expertise in CMake, Makefile and other build systems.
- Expertise in cross-compilation.
- Expertise in threading, processes and other Linux systems knowledge.
- Expertise in asynchronous and messaging-based designs (e.g., protobuf/nanopb).
- Expertise in IP networking and networking software development.
- Experience in building Linux kernels, device drivers, kernel modules, U-Boot, etc.
- Experience with static and dynamic analysis tools.
- Hands-on experience with wireless communication protocols relevant to IoT and security devices, such as Wi-Fi, Bluetooth/BLE, Zigbee, Z-Wave, 802.15.4, LoRa, or cellular (LTE-M/NB-IoT).
- Proficiency with Git and CI/CD pipelines adapted for embedded environments.
Responsibilities
- Drive technical decision-making across teams, including evaluating trade-offs and building consensus around architectural approaches.
- Analyze the architecture of a large existing codebase.
- Analyze & architect C++ code for various use cases, such as monolithic vs modular design, static vs dynamic memory allocation, etc.
- Implement software patterns such as state machines, event-driven design, and publish/subscribe models across large codebases.
- Drive cross-platform software design that supports multiple hardware variants or product SKUs from a shared codebase.
- Create and own technical design documents, architecture decision records (ADRs), and system-level specifications.
- Translate complex technical constraints and firmware requirements into a clear set of tasks and communicate with product managers, hardware engineers, and other stakeholders.
- Proactively identify systemic risks, technical debt, and architectural shortcomings, and champion long-term remediation plans.
Nice to Have
- Master's degree in Computer Engineering, Electrical Engineering, Computer Science, or a related technical field.
- Experience with porting glibc, musl or bionic.
- Experience with formal software development processes such as Agile/Scrum adapted for hardware-dependent teams.
- Functional knowledge of security standards and protocols, such as TLS/SSL, OpenSSH, ECDSA/ECDH, AES256, HMAC, SHA256.
- Experience with designing firmware for video pipeline systems, image signal processing, or streaming protocols (RTSP, H.264/H.265).
- Experience with Android and AOSP.
- AI-aided design and software architecture.
- Contributions to open-source embedded projects.
Please note that sponsorship of new applicants for employment authorization, or any other immigration-related support, is not available for this position at this time.
Why work for Alarm.com
- Collaborate with outstanding people: We hire only the best. Our standards are high and our employees enjoy working alongside other high achievers.
- Make an immediate impact: New employees can expect to be given real responsibility for bringing new technologies to the marketplace. You are empowered to perform as soon as you join the Alarm.com team!
- Gain well rounded experience: Alarm.com offers a diverse and dynamic environment where you will get the chance to work directly with executives and develop expertise across multiple areas of the business.
- Focus on fun: Alarm.com places high value on our team culture. We even have a committee dedicated to hosting a stand-out holiday party, happy hours, and other fun corporate events.
Alarm.com values working together and collaborating in person. Our employees work from the office 4 days a week.
Company Info
Alarm.com is the leading cloud-based platform for smart security and the Internet of Things. More than 7.6 million home and business owners depend on our solutions every day to make their properties safer, smarter, and more efficient. And every day, we’re innovating new technologies in rapidly evolving spaces including AI, video analytics, facial recognition, machine learning, energy analytics, and more. We’re seeking those who are passionate about creating change through technology and who want to make a lasting impact on the world around them. For more information, please visit www.alarm.com.
Benefits
- Competitive pay and benefits inclusive of subsidized medical plan options, an HSA with generous company contribution, a 401(k) with employer match.
- Paid holidays, wellness time, and vacation increasing with tenure.
- Paid maternity and bonding leave, company-paid disability and life insurance, FSAs, well-being resources and activities.
- Casual dress work environment.
Pay
The base salary range of this opportunity is $144,250—$169,126.82 USD and is determined within a range based on factors including qualifications, location and experience. This allows opportunity for growth and development within the role. The base salary offered is part of a total compensation package.
Schedule
Employees work from the office 4 days a week.