Sr. Software Engineer

Sunrun Inc. San Francisco , CA 94118

Posted 1 week ago


Sr. Software Engineer - Backend

We're looking for a seasoned Sr. Software Engineer to help 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 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.

Sunrun and will also lead the way in transforming large portions of our stack to Serverless.


Essential Responsibilities

  • Help establish the standards for the team in areas of technical excellence.

  • Work collaboratively with Product Management and our UX designers to develop applications that can be easily tested and perform well under a variety of network conditions.

  • Champion adherence 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.


  • 4+ years experience designing and coding enterprise level applications

  • Strong experience developing complex enterprise applications with Java, or JavaScript with Node.js.

  • Spring Boot / Spring Cloud / Spring 5 experience

  • Maven/Gradle build experience

  • Experience with REST API architecture and development especially using Swagger or Apigee.

  • Strong knowledge of Git including version control, branching, merging/rebasing, and pull requests.

  • Solid understanding of MVC architecture and frameworks.

  • Strong focus on automation including Continuous Integration / Deployment especially using Groovy or Jenkins pipelines.

  • Familiarity with distributed systems and federated authentication systems.

  • Good security practices and experience writing code that manages customer data.

  • Impeccable communication and team skills with shared ownership of code and other deliverables.

Bonus Technical Skills

  • Algorithmic development, data structures and scientific computing

  • Knowledge of Computational Geometry and Linear Algebra.

  • Familiarity with Docker, Serverless architectures like AWS Lambda, and/or DynamoDB, ECS, EC2, S3, SQS, Kinesis, CloudWatch, CloudFormation, Athena, Aurora, RDS, SageMaker.


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


This description indicates the general nature and level of the qualifications and duties required of employees in this job classification, as well as the essential functions a person must be able to perform to do this job. It is not designed to be a comprehensive inventory of all duties and qualifications required of employees assigned to this job. Sunrun Inc. and its subsidiaries are equal opportunity employers and make employment decisions on the basis of merit and business need. We hire without consideration to race, color, religion, citizenship, political activity or affiliation, marital status, age, national origin, ancestry, disability, veteran status, sexual orientation, gender identity, gender expression, sex or gender, or any other basis protected by law.

icon no score

See how you match
to the job

Find your dream job anywhere
with the LiveCareer app.
Mobile App Icon
Download the
LiveCareer app and find
your dream job anywhere
App Store Icon Google Play Icon

Boost your job search productivity with our
free Chrome Extension!

lc_apply_tool GET EXTENSION

Similar Jobs

Want to see jobs matched to your resume? Upload One Now! Remove
Sr Software Engineer

Planet Labs

Posted 1 week ago

VIEW JOBS 3/8/2019 12:00:00 AM 2019-06-06T00:00 Welcome to Planet. We believe in using space to help life on Earth. Planet designs, builds, and operates the largest constellation of imaging satellites in history. This constellation delivers an unprecedented dataset of empirical information via a revolutionary cloud-based platform to decision-makers in commercial, environmental, and humanitarian sectors. We are both a space company and data company all rolled into one. Customers and users across the globe use Planet's data and machine learning-powered analytics to develop new technologies, drive revenue, power research, and solve our world's toughest challenges. As we control every component of hardware design, manufacturing, data processing, and software engineering, our office is a truly inspiring mix of experts from a variety of domains. We have a people-centric approach toward culture and community and we are iterating in a way that puts our team members first and prepares our company for growth. Join Planet and be a part of our mission to change the way people see the world. The Role: Planet's Search team is developing systems to store and access imagery from our constellation of satellites. These systems are primarily responsible for providing external customer access to the continuous feed of imagery we receive from the satellites. This role will be responsible for the infrastructure and software making up our search, storage and indexing layer providing access to imagery for our consumers. Our tech stack is Go, Python, Elasticsearch, BigTable, Postgres, and Kubernetes running on Google's Cloud. We believe strongly in minimizing operational toil through software engineering. Your contributions will enable any number of new techniques to understand our changing world. The Search team is highly distributed and you will thrive in an environment of remote work and asynchronous communication. You're expected to have strong written communication skills and be able to develop working relationships with coworkers in locations across several time zones. Responsibilities: * Build services in Go and Python to provide schema-management, publishing and query APIs. * Work with stakeholders in product and engineering to identify new capabilities to optimize workloads and support new initiatives. Design new features in a disciplined and sustainable way * Write high-quality, maintainable, highly-available, well-documented production code * Evaluate system risks and improve reliability via code, process, documentation, architecture and other improvements * Own operation of services by measuring performance, creating alerts, runbooks, and responding to incidents and performance anomalies * Manage underlying persistence layers in Bigtable and indexing in Elasticsearch. * Participate in an on-call rotation in support of our team's services. Minimal Qualifications: * Experience building services that leverage cloud-based infrastructure and tooling such as AWS or GCP * Experience working with a distributed team across multiple time zones * History of working with monitoring tools like Nagios, New Relic and Graphite (or equivalent) * Experience using Configuration Management Tools (Ansible preferred or Puppet/Chef) in a production environment * Comfortable with using Docker containers in a production environment * Deep understanding of the Linux operating system * Experience with SQL databases (Postgres or MySQL) and NoSQL databases (e.g. Bigtable, Redis, HBase, etc.), and understand when to use each * Experience with a large shared codebase and Continuous Integration and Deployment workflows and tooling * Solid grasp of database internals. You've seen both good and bad indexes on databases and know what questions to ask to distinguish between the two. We expect you'll have a good idea of how things like indexing, query planning and replication work in your favorite database. * Comfortable working in a Linux operational environment. Experience using and troubleshooting networking APIs and other system calls. While this is a software engineering team, we do largely manage our own operations (with the exception of Kubernetes control/worker pools, CI tools and the like), including participating in on-call rotation. * Comfortable with distributed systems concepts, reasoning about concurrency and making consistency tradeoffs. Preferred Qualifications: * Experience working with and building services around large-scale data storage systems * Familiarity with geospatial concepts, and how they are applied in popular open source software like GEOS/GDAL. * Experience with containerized build and deployment processes and container orchestration systems like Kubernetes. Education & Experience * Bachelor or Master degree in Information Systems, Computer Science, Engineering or equivalent job-related experience with 4+ years experience as a Software Engineer working on data platforms (batch/stream processing, high-qps and/or large-scale data store services). * Excellent interpersonal and communication skills, written and oral Some press about us: Our CEO, Will Marshall's TED Talk "Tiny Satellites ushering in the New Space Revolution" Bloomberg Businessweek "The All-Seeing Eye in the Sky video" Bloomberg Businessweek video "Planet And Rocket Lab Create Mission Patch To Honor Women In Aerospace" —Planet Blog Join Us: Planet is headquartered in San Francisco, California, Earth. If you are feeling inspired, check out our website and apply. Be sure to include a cover letter to let us know why you think you'd be a good fit and feel free to mention anyone you have previously worked with at Planet. We are committed to building a diverse team and encourage applications from people of all backgrounds. Planet Labs San Francisco CA

Sr. Software Engineer

Sunrun Inc.