The Lead Software Engineer will report to the Engineering Manager of the Core Architecture and Technology team and will be responsible for evaluating, selecting, and implementing technology and architecture that is appropriate for the desired customer experience utilized by thousands of home automation systems. This position is primarily responsible for development of our distributed and horizontally scaled back-end. For example, this role will write RESTful APIs using the latest best practices with supporting libraries and frameworks, test automation, API management and documentation, Continuous Integration/Continuous Deployment (CI/CD) pipelines, all in a world-class cloud IoT environment. This position will act as a mentor for the team, and therefore requires a motivated self-starter as part of a global team who can manage working in a fast-paced environment and manage multiple projects simultaneously. The Lead Software Engineer will work cross functionally and should be able to influence other team members without direct authority. This position will be required to work effectively, have proven experience managing priorities and working collaboratively with team members. The successful individual will demonstrate intellectual curiosity, accountability, attention to detail and business acumen.
JOB DUTIES:
Develop horizontally scaled, reliable, and performant server-side applications
Evaluate and select technology and architecture that is appropriate for the desired customer experience
Establish patterns, procedures and practices that enable the highest quality standards
Define, socialize, monitor and enforce operational quality standards, such as scalability, performance, monitoring, error reporting, etc.
Own a large cross-functional area or multiple complex and high-value areas
Lead breaking deliverables, epics, and/or product requirements into implementable work
Participate in peer reviews of developed software and unit tests
Participate in the production and non-production deployment process
YOU MUST HAVE:
10+ years’ experience designing, implementing and supporting modern, enterprise-scale web applications
Experience with distributed, horizontally scaled software systems
Experience with strongly typed, C-based languages, such as Golang, C#, or Java
Experience working with document databases like MongoDB and relational databases like PostgreSQL
Knowledge of source code management systems such as Git, Mercurial, or SVN
Experience in SDLC – System Architecture, Design and Implementation with Continuous Integration/Continuous Deployments (CI/CD) utilizing Code Pipeline and GitHub Actions
WE VALUE:
Experience working with Linux / Unix operating systems
Experience with AWS cloud components like lambda functions, EC2, Docker containerization with Kubernetes leveraging EKS, Fargate ECR/ECS, Kinesis, API Gateway, S3, IAM, Route53, ALB, Redis, and RDS
Experience utilizing monitoring tools such as New Relic, Datadog, Splunk, OpenTelemetry, Prometheus and AWS CloudWatch
Experience defining and understanding SLIs, SLOs, and SLAs
Experience with Agile software development with tools like JIRA/LeanKit/etc.
#LI-HYBRID
#LI-MH2