SUNNOVA CATALYST

dealership
phone

The purpose of this website is to display what I built while at Sunnova because it was an innovative business, and I enjoyed my time there. I also remember when I was teaching myself how to develop mobile apps, there was not a lot of documentation out there about how apps in big companies are put together. I would like to share the wisdom I gained from this engagement to those who are embarking on the steep and isolating learning curve of mobile app development (it’s overwhelming, I know). I also wanted to teach myself the three.js and Green Sock Animation Platform (GSAP) libraries to create 3D animations.

solar panels in the desert

Sunnova’s main service offering is financing + installation for solar panel systems, and they operate a franchise business model where solar-panel-dealerships receive commissioning checks from Sunnova when they successfully install solar panel systems. Sunnova and dealerships use a mobile app I helped build in 2023 called Catalyst (available on iOS and Android) to facilitate the communication between Sunnova and Dealership employees. After dealerships install Sunnova-approved equipment on properties, they submit photos of the installed equipment using the Catalyst app. Sunnova then sends dealerships commissioning checks after their engineers verify that the equipment was installed correctly. Throughout this process, consumers also follow along in an ‘install wizard’ in the consumer facing app (available on iOS and Android) (after the underwriting process), and once their equipment is installed, customers can use the customer-facing app to monitor and customize their residential home energy systems.

Solar Home
Customers

As of 2023, Sunnova had 348k+ customers, and approximately 500 systems were installed daily through the Sunnova dealership network (before interest rates increased; now, I'm not sure of the current rate).

Customers

IPO
Locations

Sunnova operates in 46 US States and is expanding outside the US as well. They have a large presence in Puerto Rico already (assisted rebuilding electrical grid infrastructure after Hurricane Maria in 2017), and they are attempting to expand into the German market. They also have remote employees all over the globe.

Locations

Founding
Founding

John Berger started Sunnova in Houston in 2012 and a lot of the senior staff are from the traditional Houston oil and gas industry, banking professionals, and many former consultants. I am very grateful for the time I was able to spend learning from these professionals.

Founding

IPO
IPO

Sunnova had an Initial Public Offering in 2019 with Bank of America, J.P. Morgan, and Goldman Sachs as the underwriters (14,000,000 shares of its common stock at $12.00 per share = $168 million market capitalization).

Initial Public Offering

Install
Dealerships

There are 1,300 dealerships in Sunnova's network, which the Catalyst app was built to support.

Dealerships

Improvement
App History

The Sunnova consumer-facing app was launched in 2023. The Sunnova Catalyst app has been designed twice now-- the first time with Xamarin for mobile apps and Ionic for web apps. The most recent mobile and web apps were built in a single TypeScript codebase for React Native and React for web.

App History

Salesforce
Salesforce

Salesforce

Salesforce used Sunnova as a connected data automation case study at their Dreamforce 2023 conference, and I was told that Sunnova had the largest Salesforce instance in the southern US. I worked on the development of the Mulesoft data flows mentioned in this video below that enable Sunnova to generate quotes within 15 minutes for customers who want solar equipment installed on their homes.

Daily Installs
Microgrids

Microgrids

Microgrids are extremely important to Sunnova's current strategy. A solar panel Microgrid is a localized energy system that use solar panels to generate electricity, incorporates batteries for storage, and distributes power within a specific area. Sunnova is... (in my own words) essentially Enron reincarnated, except with solar power instead of gas pipelines. They recently acquired a homebuilding company called SunStreet and approximately 250,000 homes were added to Sunnova's network.

DOE
D.o.E

Department of Energy

In 2023 the Department of Energy approved $3 billion worth of financing as a backstop for Sunnova in case customers stop paying for their solar systems. The goal of this financing is to provide lower-income areas in the US with access to solar power, and the funding is a part of Project Hestia.

Moving Arrow

Site Survey

Before Sunnova can install energy equipment, property specifications are required. Some examples are roof pitch, attic and roof rafter specs, subpanel and main breaker info, and which electrical utility company is used. To accomplish this information discovery, Sunnova has a feature in their Catalyst app called "site survey," which allows solar sales consultants to submit customer property data to Sunnova's Salesforce instance for case management. The survey prompt types supported are; photo, number, long-text, short-text, multiple selection, boolean, and some questions can be marked as "does not apply." Below are some example screens from the site survey portion of the app.

measuring the slope/pitch of a roof
rafters in a roof
sub panels
power lines connecting to a house
checking account check purchaser

Commissioning Package

Once a site-survey has been; submitted, approved, and a cusomter wants to proceed- Sunnova dealers start installing equipment on properties.

Sunnova primarily offered solar panel installations in its infancy

However, they also started installing solar-panel-adjacent-technology too. They currently install:

storage batteries, battery electric vehicle chargers, and connections to electric utility companies for energy transferring.

After solar panel energy systems are installed, solar panel dealerships use the Catalyst mobile app to submit proof of the solar equipment installations so that they can:

receive commissioning checks from Sunnova.

dealer submitting CP

The gallery below displays the core process dealership employees go through when submitting a commissioning package through the Catalyst app to Sunnova corporate for their engineers to review.

Architecture Desktop View Architecture Mobile View

At a high level, the Catalyst app comprises two main features called site survey and commissioning package. Both of these features are essentially surveys that dealership employees use to submit information to Sunnova about a property. The codebase is divided into two main directories: backend and frontend, and the app architecture follows the MVVM (Model-View-ViewModel) pattern. Here’s how the structure is organized:

Frontend Directory:

  • View: The view layer files are written in JavaScript. They're responsible for displaying the user interfaces.

  • View-model: The view-model files are written in TypeScript. They use the Sequelize library as the Object-Relational Mapper (ORM) to connect the user interfaces to the SQL database. The functions written in the view-model files are called on in the view layer of the app.

  • Package Managers: There are ~100 NPM libraries imported and used in the frontend of the Catalyst app. Some example packages are: Expo Google Fonts for access to Google fonts, Expo Image Picker to access the image gallery from a user's device, React Redux to manage state in the app,HEIC 2 Any to convert images on iOS/macOS to JPEG before submitting them, Expo Haptics to provide vibration feedback when commissioning packages were submitted correctly,Expo Clipboard to access the users' clipboard.

  • Testing:: Unit tests written with the Jest.js framework are used to ensure that the user interface (UI) looks correct for the mobile app. The Cypress framework is used to test the UI of the web apps.

Backend Directory:

  • Model: The model files are responsible for defining the data structure and business logic. It is written in TypeScript (with interfaces as the data structure) and uses Sequelize to manage interactions with the SQL database. The model defines tables, fields, and relationships, and includes methods for data operations such as retrieving, inserting, updating, and deleting data.

  • Migrations manage the evolution of the database schema. They are SQL files that define changes such as adding, modifying, or deleting tables and columns. These migration files run using the Flyway database-migration-tool.

  • Testing: Contract tests are written in JavaScript to verify API endpoints are working as expected.

    Data

  • Data-Transferring: Mulesoft (a Salesforce owned product) is used to connect data populated in the SQL databases from user interactions (i.e.; creating a commissioning package for a property) from the Catalyst apps to the Salesforce environments.

  • Data-Backups: Informatica is used to process extract transform and loads (ETL) jobs from the mainframe Oracle database to PostgreSQL tables.

  • Data-Access: Docker is used by developers to view the content inside the tables inside the PostgreSQL databases.

Cloud Infrastructure:

  • Authentication Salesforce is at the root of Sunnova's authentication-process. Using the Salesforce Experience Cloud feature in three capacities to authenticate both Sunnova's corporate employees and dealership employees; (1) as a login screen for the Catalyst mobile app used by dealership franchise employees, as a login screen for two Node.js web-apps hosted on AWS servers called (2)dealer portal (same functionality as the mobile app), and (3) the Engineering Review portal.

  • Administration: Heroku (owned by Salesforce) is a user-friendly way to interact with content in AWS databases/servers. The Catalyst platform uses Heroku to connect to six servers running node.js applications six databases in AWS. The servers use AWS Elastic Compute Cloud (EC2), and they are called: dev, QA, and prod for both the mobile app and then the same naming convention for the desktop applications. Three of the databases (called dev, QA, and prod) hosted data using AWS Relataional Database Service (RDS) for the SQL databases storing login information, survey prompt responses, and links to the photos uploaded. The last three databases (called dev, QA, and prod) use AWS Simple Storage Service (S3) for photo storage of images the dealership employees were uploading in the app of the properties they're working on.

  • Continous Intergration (CI) / Deployment (CD): GitHub Actions pipelines are used to run through the automated test suite before submitting app updates to Expo.

  • Build Process: Expo is used to automate the submission process to the Apple App Store and Google Play Store after all the tests have passed in the CI/CD pipeline.