Principal Software Engineer
About the role
The Principal Software Engineer on the emPower team will lead the design and evolution of systems that coordinate physical devices, cloud services, mobile and web applications, automation engines, partner integrations, and data pipelines. This role requires hands-on technical leadership, guiding major design decisions, and influencing architecture beyond a single project or codebase.
Responsibilities
- Provide hands-on technical leadership for systems spanning IoT device control, smart home automation, energy, HVAC, water, and connected-device experiences.
- Lead architecture and design for major software components, services, APIs, data flows, and integration patterns.
- Evolving existing monolithic systems into more modular, scalable, reliable, and maintainable systems.
- Partner with product, firmware, platform, operations, and application teams to turn ambiguous needs into clear technical direction.
- Mentor engineers at multiple levels and help raise the technical bar through design reviews, code reviews, technical guidance, and reusable patterns.
- Drive cross-team collaboration and execution across multiple technical domains.
- Evaluate new technologies, frameworks, and methodologies where they can materially improve product capabilities or engineering outcomes.
- Reason across the full product stack, including backend services, databases, APIs, web and mobile experiences, device integrations, automation logic, and operational tooling.
- Bring your ideas. We want our engineers to collaborate on product development, not blindly build to a spec.
Requirements
- Bachelor’s degree in Computer Science, Computer Engineering, a related field, or equivalent professional experience.
- 15+ years of professional software development experience.
- Proven experience designing, building, and delivering complex software systems.
- Strong object-oriented programming skills; experience with C#/.NET or a similar object-oriented language is required; direct C# and .NET experience would be a major plus.
- Significant database design, performance, and development experience.
- Experience leading technical direction across teams and influencing architecture beyond a single project or codebase.
- Experience mentoring engineers and helping develop people, practices, and reusable technical solutions.
- Able to select appropriate frameworks, architecture patterns, and technical approaches, then educate teams and drive adoption.
- Strong analytical skills and a practical problem-solving mindset.
- Able to lead and influence across teams without relying solely on reporting authority.
- Able to reason across the full product stack, including backend services, data stores, APIs, device integrations, and web/mobile user experiences.
- Strong understanding of object-oriented design, software development lifecycles, and long-term maintainability concerns.
- Excellent communication skills, including the ability to explain technical tradeoffs to engineers, product owners, and business stakeholders.
Qualifications
- Experience with IoT, smart home, energy management, HVAC, water, automation, or connected-device systems.
- Experience working with physical systems, hardware devices, firmware teams, or embedded-device integrations.
- Experience with event-driven systems, device telemetry, automation/rules engines, or distributed systems.
- Experience in modernizing monolithic systems or decomposing systems into modular services.
- Experience designing systems where cloud software interacts with deployed physical devices and must account for latency, reliability, compatibility, and operational visibility.
Skills
- Strong object-oriented programming skills.
- Experience with C#/.NET or a similar object-oriented language.
- Significant database design, performance, and development experience.
- Experience leading technical direction across teams and influencing architecture beyond a single project or codebase.
- Experience mentoring engineers and helping develop people, practices, and reusable technical solutions.
- Able to select appropriate frameworks, architecture patterns, and technical approaches, then educate teams and drive adoption.
- Strong analytical skills and a practical problem-solving mindset.
- Able to lead and influence across teams without relying solely on reporting authority.
- Able to reason across the full product stack, including backend services, data stores, APIs, device integrations, and web/mobile user experiences.
- Strong understanding of object-oriented design, software development lifecycles, and long-term maintainability concerns.
- Excellent communication skills, including the ability to explain technical tradeoffs to engineers, product owners, and business stakeholders.
Benefits
Alarm.com offers a comprehensive benefits package including medical plans with company subsidies, a Health Savings Account (HSA) with a company contribution, and a 401(k) with an employer match. Employees also receive paid vacation that increases with tenure, paid holidays, wellness time, and paid maternity and bonding leave. Alarm.com provides company-paid disability and life insurance, fostering a collaborative and casual work environment. The company is committed to diversity and inclusion, providing equal opportunities for all candidates.