We're hiring world-class software engineering talent to help our infrastructure keep up with daunting growth rates. We are literally working to change the world by revolutionizing the way people use energy.
Want to work on massively scalable consumer systems? Re-invent how consumers use energy? Have a measurable impact on one of humanity’s biggest challenges? Come to Sunrun. You'll work alongside passionate engineers engaged in the design and development of a product that is changing the world.
As a Senior Software Engineer, you’ll help lead technical direction for all customer facing applications at Sunrun and will also lead the way in transforming large portions of our stack to Serverless.
This position will be on one of several teams that build Sunrun’s software for rooftop solar, as such you will be responsible for:
- Embodying Sunrun’s corporate values of human centricity, integrity, curiosity, passion, courage
- Promoting high quality communication and collaboration on our cross functional team.
- Building a deep and nuanced understanding of the residential solar domain and how Sunrun’s
business model is differentiated in the industry.
- Designing and writing software optimized for readability, maintainability and testability.
- Understanding when or when not use industry standard design patterns or practices.
- Applying a systems thinking mindset to your work.
- Maintaining operational stability of software systems from development through to production.
Technical Skills Needed:
- Candidates are expected to be able to apply the following skills on day 1, and thus should have
strong applicable experience:
- 5+ years experience developing complex, distributed, stateful software systems, particularly with
Java or Node.js. (Preference to candidates who have both)
- Familiarity with microservices architecture and common patterns (ideally with heavy emphasis in
either AWS or GCP)
- Working with severless and/or containerized cloud infrastructure.
- Experience with REST API architecture and development
- Designing and implementing transactional data models with SQL & NoSQL datastores
- Applying the practices of continuous integration and continuous delivery.
- Maintaining deployment pipelines that work with infrastructure as code tools, in particular Jenkins
- Experience with building performant backend applications (ideal candidate would have familiarity
with APM and monitoring tools)
- Working with git, including branching, merging/rebasing, and pull requests.
- Familiarity with distributed systems and federated authentication systems
- Driving the development process with test automation.
- Applying high quality security practices.
- Writing code that manages customer data.
Bonus Technical Skills
- Candidates will not need to apply these skills on day 1, but they may need to learn them over time
with Sunrun support. Practical knowledge and experience in the following areas is a bonus:
- Strong experience in developing and maintaining complex applications in Java (especially JEE
experience will be given significant preference)
- Maven build experience
- Familiarity with Docker, Serverless architectures like AWS Lambda, and/or DynamoDB, ECS,
EC2, S3, SQS, Kinesis, CloudWatch, CloudFormation, Athena, Aurora, RDS, SageMaker.
- Experience with API Tooling such as Swagger / OpenAPI
- Experience in sunsetting / migrating large legacy applications to modern stacks
- Familiarity with algorithms and data structures
- Experience at all levels of the testing pyramid (unit, integration, and system tests
- BS/MS in Computer Science, Engineering or Math is preferred