Staff Software Engineer at Sunrun
Denver, CO, US
Staff Software Engineer - Data Engineering
We're looking for a top-tier Staff Software Engineer with a potential to be a technical lead to assist our team build massively scalable consumer systems for clean energy.
 
About Sunrun
Sunrun is the #1 residential solar company in the country and our mission is to bring clean solar power service affordably to every house in America. We help people upgrade their home to solar energy without the big upfront costs.
 
About Sunrun Software Engineering
We're hiring elite software engineering talent to help our infrastructure keep up with market growth rates. We are truly working to change the world by revolutionizing the way people use energy. We are committed to monthly training to continue learning and development throughout Technology.
 
Do you want to work on scalable consumer systems? Re-invent how consumers use energy? Have a measurable impact on one of humanity’s biggest challenges? Come join Sunrun! You'll work alongside hardworking engineers engaged in the design and development of a product that is changing the world.

Responsibilities

As a Staff Software Engineer, you’ll help lead technical direction for all data engineering solutions at Sunrun and will also own the way in redefining our systems to best in class experiences.

 

  • You will aid in the growth of the team by establishing the development and architectural standards in areas of technical excellence.
  • Work collaboratively with Product Management, DevOps, and other software developers to develop applications that can be easily tested and perform well under a variety of network conditions.
  • Champion consistency to best-practice development methodologies.
  • Design and code appropriate, scalable, and secure algorithms, data structures, and software components.
  • Lead design and code reviews.
  • Facilitate automated testing so all teams can innovate at a rapid pace.
  • Mentor and build skills across the team through effective standards setting, code reviews, and pairing.
  • Tune production applications to maximize efficiency.
  • Demonstrated technical leadership skills with ability to conduct code reviews and architect solutions.

Qualifications

Technical Skills Needed

  • 10+ years experience designing and coding enterprise level applications
  • Strong experience developing sophisticated enterprise applications with NodeJS (Javascript) and/or Java.
  • Experience with REST API architecture and development especially using Swagger or Apigee.
  • Solid understanding of Git including version control, branching, merging/rebasing, and pull requests.
  • Validated understanding of MVC and MVVM patterns, architectures, and frameworks.
  • Strong focus on automation including Continuous Integration / Deployment with writing unit and integration tests.
  • Experience with NodeJS development and build tooling (especially npm, yarn, mocha, chaijs, and eslint).
  • Experience with the Kotlin and/or Python languages.
  • Good security practices and experience writing code that handles customer data.
  • Impeccable communication and team skills with shared ownership of code and other work.
  • Willingness to work with and learn new technologies
  • Experience architecting solutions in GCP, specifically using: Cloud functions, Composer, Cloud pub/sub, Data flow and Stackdriver.
  • Familiarity with managed cloud services (e.g. GCP, AWS, Azure) and their associated offerings.
  • Familiarity with real-time data processing.

Bonus Technical Skills

  • Familiarity with distributed systems and federated authentication systems.
  • Familiarity with Docker and Serverless architectures like GCP Cloud Functions, AWS Lambda, GCP Datastore, DynamoDB, GCP Dataflow, ECS, S3, GCP Pubsub, SQS, CloudFormation, Terraform, and/or other similar cloud services.
  • Experience in machine learning (especially TensorFlow and XGBoost), deep learning, computer vision, and/or natural language processing.
  • Experience with Maven/Gradle build systems.
  • Experience with Groovy / Jenkins CICD pipelines.
  • Familiarity with team development tooling (especially with Jira and Github)
  • Understanding of BFF (Backend-for-Frontend) patterns.
  • Experience with development of self-healing, reliable and reactive systems.

Education

  • BS/MS in Computer Science, Engineering or Math is preferred.