Staff Software EngineerMost engineers optimize for the feature in front of them. Staff engineers optimize for the system that must keep delivering features two years from now - and they know the difference between a design that's clean on a whiteboard and one that holds up under real traffic, real teams, and real change.
We're scaling Alarm.com's customer experience platform through a significant architectural transition, and we need someone who has done this kind of work before - who knows how legacy systems accrue complexity, how to carve the right seams, and how to bring a team along for the journey without breaking what's already in production.
THE ROLEAlarm.com is one of the leading IoT platforms in North America. Millions of homeowners and businesses rely on our software to secure, monitor, and automate their properties - and keeping that experience reliable, fast, and consistent at scale is a serious engineering challenge.
This position is on the Customer Experience (CX) team - a full-stack group embedded at the core of Alarm.com's mobile and web apps. CX owns the moments that matter most to customers: getting them up and running on the platform, giving them the tools to manage their accounts, and finding ongoing ways to make the overall experience smarter and more intuitive. The systems that back those experiences are growing in complexity, and we're actively working through an architectural evolution that requires strong technical leadership from within the team.
As a Staff Software Engineer, you'll define how the team builds - not just what it ships. That means setting the architectural patterns the team builds against, driving the decomposition of complex monolithic systems into maintainable services, and making sure the quality bar doesn't slip as the pace picks up. You'll also be a mentor and technical anchor: the engineer that others bring their hardest problems to, and trust to give them a straight answer.
This is a hands-on role. You'll still write code, lead design sessions, and stay close to production. The difference is that your decisions ripple outward - they shape how the whole team works.
KEY RESPONSIBILITIES- Define the architectural patterns and technical standards for the CX team - your decisions become the baseline that others build against
- Lead the decomposition of monolithic systems into well-scoped, independently deployable services, with a clear migration strategy that keeps production stable throughout
- Design systems that absorb change - architectures that remain sound as requirements evolve and scale increases, not just ones that work on day one
- Drive high-leverage technical decisions: data modeling, API contracts, service boundaries, event-driven patterns, and infrastructure choices
- Identify architectural drift and technical debt before they threaten delivery, and build the case for addressing them
- Set and maintain standards for testing, observability, and deployment across the team's systems
- Conduct code and design reviews that raise the team's technical floor - teaching through feedback, not just approving or rejecting
- Collaborate with engineering managers and product managers to sequence technical investment alongside product priorities
- Stay close to the work: write production code, prototype solutions, and maintain enough hands-on involvement to lead with credibility
- Model effective use of AI tools across the team - identifying where they provide real leverage and helping the team build good instincts for when and how to apply them
- Other duties as assigned
REQUIREMENTS- Bachelor's in Computer Science, Computer Engineering, a related field, or equivalent work experience
- 7+ years of professional software development experience, with a demonstrated progression into technical leadership
- Deep, hands-on experience in systems design and backend architecture - you can show specific examples of systems you've designed, the tradeoffs you made, and how those decisions held up over time
- Experience designing and operating high-scale, high-availability services - systems where latency, throughput, and reliability SLAs are real constraints, not theoretical ones
- Meaningful experience with distributed systems: service decomposition, inter-service communication, data consistency, and failure isolation
- Strong object-oriented programming skills; C# or Java experience is a plus
- Deep SQL expertise - schema design for scale, query optimization, index strategy, and understanding how database bottlenecks surface at the application level
- Proven ability to lead technical direction in a collaborative environment - you know how to build alignment on architectural decisions, not just make them
Don't check every box? That's okay - we'd still encourage you to apply. Strong engineers come from a lot of different paths, and we care more about depth of thinking and patterns of impact than a perfect resume match.
NICE TO HAVES- Direct experience leading or significantly contributing to a monolith-to-microservices migration - including the organizational and process dimensions, not just the technical ones
- Experience with event-driven architecture and messaging systems at scale (Kafka or similar)
- Familiarity with the customer experience domain: onboarding flows, account management systems, session management, or notification infrastructure
- Experience with Android (Kotlin/Java), iOS (Swift), or a front-end web framework - enough to engage meaningfully on client-side design decisions
- Experience building platforms or shared services that other engineering teams build against
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.
The base salary range of this opportunity is listed below 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.
Base Salary Range
$150,000-$165,000 USD