Software Engineer II
Alarm.com · Tysons Corner, VA · 1 mo ago
Engineering$88k–$123k/yrFull-time
We need to output only HTML fragment, using for section headings: About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule. We must include sections only if posting has real specific content. We need to extract content.
Let's parse the posting.
First paragraph: description of team, etc. That's "About the role" maybe.
Then "WHY WORK AT ALARM.COM?" bullet points: Open Collaborative Environment, Wide Technology Exposure, Bring Your Full Self, Supportive Team, In-person Experience. Those are benefits? Could be "Benefits" but they are more about culture. However we have a Benefits section for actual benefits like medical, 401k etc later. So we could put those under "About the role" or maybe "Why work at Alarm.com" as a section? Not in allowed headings. We could incorporate into "About the role" or "Benefits"? The instruction: Use headings only for those listed. So we need to map content to those headings.
We have sections:
- About the role: description of team, what you'll do, etc.
- Responsibilities: list of duties: "Develop full stack software for a wide variety of platforms and technologies. Take part in the entire project life cycle, from requirements development to deployment with heavy cross-team collaboration Engage in the research, evaluation, and application of new technologies and methodologies to solve challenging project goals Write coherent, organized code. Ideal candidates must be comfortable working on a complicated codebase with high levels of abstraction Exercise good judgment. Know when to work quickly, and when to build a robust solution Work hard and be flexible: we have quick development cycles, evolving requirements, and lots of cross-team collaboration Bring your ideas! We want our engineers to collaborate on product development, not blindly build to a spec". That's under "WHAT CAN YOU DO FOR ALARM.COM?" which is responsibilities.
- Requirements: "WHAT DO YOU NEED?" list of required qualifications.
- Qualifications: maybe "We would love if you have some of the below (but it is fine if you don’t):" list of nice-to-have.
- Skills: maybe combine required and nice? But we already have Requirements and Qualifications. Could treat Requirements as required, Qualifications as nice-to-have. Skills maybe not needed if content overlaps. But we need to include sections only if posting has real specific content. We have content for Requirements and Qualifications. For Skills maybe we could extract specific skills like "Solid frontend engineering skills with modern JavaScript/TypeScript frameworks..." but that's already in Requirements. Could create Skills section summarizing technical skills: frontend, backend, OOP, DB, toolchain, testing, etc. But that would duplicate. Better to not create Skills if it would be redundant. However we need to follow instruction: Prefer a few substantive sections over many thin ones. So we can combine Requirements and Qualifications into one? But we have headings for both. Could put required under Requirements, nice-to-have under Qualifications. That seems appropriate.
- Benefits: we have "Company Benefits" paragraph describing medical, HSA, 401k, vacation, etc. Also "WHY WORK AT ALARM.COM?" includes culture aspects; but we can put those under Benefits? Might be okay but they are not typical benefits. However we have actual benefits details, so we can create Benefits section with that content.
- Pay: we have base salary range: $88,300—$122,550 USD. So we can create Pay section.
- Schedule: we have "In-person Experience: com values working together and collaborating in person. You will be working from the office 4 days a week" also later "Alarm.com values working together and collaborating in person. Our employees work from the office 4 days a week." So schedule: 4 days a week in office. So we can create Schedule section.
- About the role: we need to include the initial description: "Our Home Automation Experience (HAX) team owns the full home automation domain at Alarm.com including devices, device groups, rules, schedules, scenes, and automation-related notifications, for both customers and dealers, across web, mobile, and the backend services that make it all work. Alarm.com is a smart-home-as-a-service platform — our products reach end customers through a network of professional security and smart-home dealers who install, configure, and support our systems, which means HAX builds for two distinct audiences with very different needs. If 'intuitive, accessible, reliable home automation' is the kind of problem you want to spend the next several years on, this is a good place to do it. As a Software Engineer II on HAX, you'll support the delivery of high-impact features end to end, from partnering with Product Management and Quality Engineering, collaborating with your peer engineers, to being involved in and owning technical designs and feature implementations. You'll move across the stack as the work demands: frontend, backend, data, infrastructure. Alarm.com is one of the few places you can build consumer products that ship at a consumer scale across this kind of technology surface (wireless, software, hardware/device) without changing companies. Engineers here go deep in their area and stay curious about everything else."
That's good.
Now we need to remove boilerplate: cookie/navigation/legal/EEO/equal-opportunity/scam-warning, duplicated lines, application instructions. Also remove "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." That's maybe not boilerplate but it's a note about sponsorship; could be considered legal? It's about immigration. Might be considered boilerplate? Not sure. The instruction says remove cookie/navigation/legal/EEO/equal-opportunity/scam-warning boilerplate. This is about sponsorship, maybe legal. Safer to remove it.
Also remove "Company Info" paragraph? That's about company description; could be considered part of About the role? Might be okay to keep as part of About the role? But we already have About the role covering team. The company info is generic; could be considered boilerplate? It's not navigation/legal/EEO. It's descriptive. Might keep but could be considered redundant. However we need to preserve ALL substantive information; not invent or summarize away detail. The company info is substantive about Alarm.com. Could be placed under About the role or maybe a separate section? Not in headings. Could incorporate into About the role as extra context. But we must not repeat job title as heading. Already fine.
We also need to remove duplicated lines: there are repeated lines about in-person experience.
Now we need to format using
for section headings: About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule. We must include sections only if posting has real specific content. We need to extract content.
Let's parse the posting.
First paragraph: description of team, etc. That's "About the role" maybe.
Then "WHY WORK AT ALARM.COM?" bullet points: Open Collaborative Environment, Wide Technology Exposure, Bring Your Full Self, Supportive Team, In-person Experience. Those are benefits? Could be "Benefits" but they are more about culture. However we have a Benefits section for actual benefits like medical, 401k etc later. So we could put those under "About the role" or maybe "Why work at Alarm.com" as a section? Not in allowed headings. We could incorporate into "About the role" or "Benefits"? The instruction: Use headings only for those listed. So we need to map content to those headings.
We have sections:
- About the role: description of team, what you'll do, etc.
- Responsibilities: list of duties: "Develop full stack software for a wide variety of platforms and technologies. Take part in the entire project life cycle, from requirements development to deployment with heavy cross-team collaboration Engage in the research, evaluation, and application of new technologies and methodologies to solve challenging project goals Write coherent, organized code. Ideal candidates must be comfortable working on a complicated codebase with high levels of abstraction Exercise good judgment. Know when to work quickly, and when to build a robust solution Work hard and be flexible: we have quick development cycles, evolving requirements, and lots of cross-team collaboration Bring your ideas! We want our engineers to collaborate on product development, not blindly build to a spec". That's under "WHAT CAN YOU DO FOR ALARM.COM?" which is responsibilities.
- Requirements: "WHAT DO YOU NEED?" list of required qualifications.
- Qualifications: maybe "We would love if you have some of the below (but it is fine if you don’t):" list of nice-to-have.
- Skills: maybe combine required and nice? But we already have Requirements and Qualifications. Could treat Requirements as required, Qualifications as nice-to-have. Skills maybe not needed if content overlaps. But we need to include sections only if posting has real specific content. We have content for Requirements and Qualifications. For Skills maybe we could extract specific skills like "Solid frontend engineering skills with modern JavaScript/TypeScript frameworks..." but that's already in Requirements. Could create Skills section summarizing technical skills: frontend, backend, OOP, DB, toolchain, testing, etc. But that would duplicate. Better to not create Skills if it would be redundant. However we need to follow instruction: Prefer a few substantive sections over many thin ones. So we can combine Requirements and Qualifications into one? But we have headings for both. Could put required under Requirements, nice-to-have under Qualifications. That seems appropriate.
- Benefits: we have "Company Benefits" paragraph describing medical, HSA, 401k, vacation, etc. Also "WHY WORK AT ALARM.COM?" includes culture aspects; but we can put those under Benefits? Might be okay but they are not typical benefits. However we have actual benefits details, so we can create Benefits section with that content.
- Pay: we have base salary range: $88,300—$122,550 USD. So we can create Pay section.
- Schedule: we have "In-person Experience: com values working together and collaborating in person. You will be working from the office 4 days a week" also later "Alarm.com values working together and collaborating in person. Our employees work from the office 4 days a week." So schedule: 4 days a week in office. So we can create Schedule section.
- About the role: we need to include the initial description: "Our Home Automation Experience (HAX) team owns the full home automation domain at Alarm.com including devices, device groups, rules, schedules, scenes, and automation-related notifications, for both customers and dealers, across web, mobile, and the backend services that make it all work. Alarm.com is a smart-home-as-a-service platform — our products reach end customers through a network of professional security and smart-home dealers who install, configure, and support our systems, which means HAX builds for two distinct audiences with very different needs. If 'intuitive, accessible, reliable home automation' is the kind of problem you want to spend the next several years on, this is a good place to do it. As a Software Engineer II on HAX, you'll support the delivery of high-impact features end to end, from partnering with Product Management and Quality Engineering, collaborating with your peer engineers, to being involved in and owning technical designs and feature implementations. You'll move across the stack as the work demands: frontend, backend, data, infrastructure. Alarm.com is one of the few places you can build consumer products that ship at a consumer scale across this kind of technology surface (wireless, software, hardware/device) without changing companies. Engineers here go deep in their area and stay curious about everything else."
That's good.
Now we need to remove boilerplate: cookie/navigation/legal/EEO/equal-opportunity/scam-warning, duplicated lines, application instructions. Also remove "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." That's maybe not boilerplate but it's a note about sponsorship; could be considered legal? It's about immigration. Might be considered boilerplate? Not sure. The instruction says remove cookie/navigation/legal/EEO/equal-opportunity/scam-warning boilerplate. This is about sponsorship, maybe legal. Safer to remove it.
Also remove "Company Info" paragraph? That's about company description; could be considered part of About the role? Might be okay to keep as part of About the role? But we already have About the role covering team. The company info is generic; could be considered boilerplate? It's not navigation/legal/EEO. It's descriptive. Might keep but could be considered redundant. However we need to preserve ALL substantive information; not invent or summarize away detail. The company info is substantive about Alarm.com. Could be placed under About the role or maybe a separate section? Not in headings. Could incorporate into About the role as extra context. But we must not repeat job title as heading. Already fine.
We also need to remove duplicated lines: there are repeated lines about in-person experience.
Now we need to format using for each section heading, then content: use
for prose,
- for lists.
We need to decide what goes into each section.
Let's outline:
About the role
... (the description)
Responsibilities
- Develop full stack software for a wide variety of platforms and technologies.
- Take part in the entire project life cycle, from requirements development to deployment with heavy cross-team collaboration.
- Engage in the research, evaluation, and application of new technologies and methodologies to solve challenging project goals.
- Write coherent, organized code.
- Exercise good judgment: know when to work quickly and when to build a robust solution.
- Work hard and be flexible: we have quick development cycles, evolving requirements, and lots of cross-team collaboration.
- Bring your ideas: we want our engineers to collaborate on product development, not blindly build to a spec.
Requirements
- Bachelor’s in Computer Science, Computer Engineering, a related field or equivalent work experience
- 2+ years of professional software development experience
- Solid frontend engineering skills with modern JavaScript/TypeScript frameworks (for example, React, Ember, Vue, or Angular)
- Solid backend engineering skills building and maintaining HTTP APIs/services (REST and/or GraphQL)
- Solid knowledge of object-oriented design, SOLID principles, and common design patterns, with a track record of applying them to real architectural decisions (Experience with C#, .NET Core is a plus)
- Solid database fundamentals including schema design, query optimization, indexing
- Fluency with the day-to-day toolchain of a modern engineer — version control (Git workflows), CI/CD, package managers, structured data formats (JSON, YAML), and observability tooling
- Demonstrated testing depth across unit, integration, and end-to-end test layers
- Experience providing feedback to peers and influencing code quality through design and code reviews
- Treats engineering as a craft that pursues mastery through deliberate practice, post-incident learning, and reflection on past decisions; comfortable revisiting and revising prior architectural choices when new information arrives
- Proven ability to communicate and collaborate across product, design, and QA and drive technical decisions through delivery
- Experience scoping and decomposing ambiguous problems into shippable increments
Qualifications
- Experience working with enterprise-scale microservices architecture
- Familiarity with event-driven/distributed system design and distributed event streaming platforms (Kafka)
- Experience using AI-assisted development tools effectively while maintaining code quality and safety
- Familiarity with cloud-native infrastructure and containerized deployments (Docker + Kubernetes)
- Exposure to legacy-to-modern framework migrations
- Working knowledge of application security fundamentals (auth, authorization, input validation, secrets handling)
Benefits
- Medical plans with company subsidies
- Health Savings Account (HSA) with a company contribution
- 401(k) with employer match
- Paid vacation that increases with tenure
- Paid holidays
- Wellness time
- Paid maternity and bonding leave
- Company-paid disability and life insurance
- Collaborative and casual work environment
- Open collaborative environment with focus on teamwork
- Wide technology exposure to IoT and SaaS stack (C# .NET, SQL Server, Kafka, Ember.js, React, Node.js, Python, Kubernetes, Azure, Redis, native iOS/Android)
- Opportunity to bring your full self and unique experiences
- Supportive team with coffee chats, technical spotlights, team-building events, pair programming rotations
- In-person collaboration: work from the office 4 days a week