Sunrun
Sr. Software Engineer
Sunrun, Lehi, Utah, United States, 84043
Everything we do at Sunrun is driven by a determination to transform the way we power our lives. We know that starts at the individual employee level. We strive to foster an environment you can thrive in through our commitment to diversity, inclusion and belonging.OverviewWe are looking for a Sr. Software Engineer with data experience. As a Sr. Software Engineer, you’ll help with technical direction for all grid services engineering solutions at Sunrun and will also lead the way in transforming our systems to self-healing, reliable and reactive systems. On this team, you will build out data pipelines to ingest and process IOT data from our 950K+ solar and storage systems. This data is used across our company to ensure system uptime, performance analysis and insights for our customers.
ResponsibilitiesTechnical Leadership: Help establish development and architectural standards within the team, promoting technical excellence and best practices.Collaboration: Work closely with Product Management, DevOps, and other team members to develop applications that are easily testable and perform well under diverse network conditions.Data Availability: Ensure consumers have access to the data they need for informed decision-making, focusing on data availability and reliability.Best Practice Adherence: Champion the adherence to best-practice development methodologies throughout the software development process.Data Pipelines: Build and maintain data pipelines to efficiently process and manage data.Algorithm and Software Component Design: Design and code scalable and secure algorithms, data structures, and software components.Documentation: Maintain clear and comprehensive documentation for code, systems, and processes.Code Reviews: Lead design and code reviews to ensure high-quality code and knowledge sharing within the team.Automated Testing: Facilitate automated testing to enable rapid innovation and ensure the stability of applications.Mentorship: Mentor and help build skills across the team through standards setting, code reviews, and pair programming.Performance Tuning: Optimize production applications to maximize efficiency and performance.Metrics and Analysis: Develop ongoing metrics, analysis, and dashboards to guide important decisions and monitor system performance.QualificationsEducation: A Bachelor's or Master's degree in Computer Science or a related field is preferred.Experience: A minimum of 5 years of hands-on experience in developing complex enterprise applications with Java, JavaScript, TypeScript, Node.JS, Kotlin, and Python.Leadership: Strong leadership skills with the ability to mentor and guide team members.Experience working on data-intensive and highly scalable systems is a strong plus.Cloud Platforms: Extensive experience with AWS cloud platform or GCP.Database Knowledge: Proficiency in both relational and NoSQL databases.Cloud Services: Familiarity with various cloud services and serverless architectures.Enterprise Environment: Prior experience working in complex enterprise environments and developing complex programs.API Development: Strong expertise in REST API architecture and development.Git Proficiency: Knowledge of Git, including version control, branching, merging/rebasing, and pull requests.SQL and Procedural Languages: Ability to write SQL queries and procedural code for data handling.Automation: A focus on automation, including CI/CD practices and test automation.Agile/SCRUM: Experience with Agile/SCRUM software development methodologies.Security Practices: Strong understanding of security practices and data protection.
#J-18808-Ljbffr
ResponsibilitiesTechnical Leadership: Help establish development and architectural standards within the team, promoting technical excellence and best practices.Collaboration: Work closely with Product Management, DevOps, and other team members to develop applications that are easily testable and perform well under diverse network conditions.Data Availability: Ensure consumers have access to the data they need for informed decision-making, focusing on data availability and reliability.Best Practice Adherence: Champion the adherence to best-practice development methodologies throughout the software development process.Data Pipelines: Build and maintain data pipelines to efficiently process and manage data.Algorithm and Software Component Design: Design and code scalable and secure algorithms, data structures, and software components.Documentation: Maintain clear and comprehensive documentation for code, systems, and processes.Code Reviews: Lead design and code reviews to ensure high-quality code and knowledge sharing within the team.Automated Testing: Facilitate automated testing to enable rapid innovation and ensure the stability of applications.Mentorship: Mentor and help build skills across the team through standards setting, code reviews, and pair programming.Performance Tuning: Optimize production applications to maximize efficiency and performance.Metrics and Analysis: Develop ongoing metrics, analysis, and dashboards to guide important decisions and monitor system performance.QualificationsEducation: A Bachelor's or Master's degree in Computer Science or a related field is preferred.Experience: A minimum of 5 years of hands-on experience in developing complex enterprise applications with Java, JavaScript, TypeScript, Node.JS, Kotlin, and Python.Leadership: Strong leadership skills with the ability to mentor and guide team members.Experience working on data-intensive and highly scalable systems is a strong plus.Cloud Platforms: Extensive experience with AWS cloud platform or GCP.Database Knowledge: Proficiency in both relational and NoSQL databases.Cloud Services: Familiarity with various cloud services and serverless architectures.Enterprise Environment: Prior experience working in complex enterprise environments and developing complex programs.API Development: Strong expertise in REST API architecture and development.Git Proficiency: Knowledge of Git, including version control, branching, merging/rebasing, and pull requests.SQL and Procedural Languages: Ability to write SQL queries and procedural code for data handling.Automation: A focus on automation, including CI/CD practices and test automation.Agile/SCRUM: Experience with Agile/SCRUM software development methodologies.Security Practices: Strong understanding of security practices and data protection.
#J-18808-Ljbffr